@farris/ui-vue 1.7.0-beta.4 → 1.7.0

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 (563) hide show
  1. package/components/accordion/index.esm.js +61 -312
  2. package/components/accordion/index.umd.cjs +1 -1
  3. package/components/avatar/index.esm.js +56 -1481
  4. package/components/avatar/index.umd.cjs +1 -1
  5. package/components/binding-selector/index.esm.js +8 -752
  6. package/components/binding-selector/index.umd.cjs +1 -1
  7. package/components/button-edit/index.esm.js +358 -351
  8. package/components/button-edit/index.umd.cjs +1 -1
  9. package/components/button-group/index.esm.js +110 -266
  10. package/components/button-group/index.umd.cjs +1 -1
  11. package/components/calendar/index.esm.js +1371 -1284
  12. package/components/calendar/index.umd.cjs +30 -30
  13. package/components/code-editor/index.esm.js +169 -237
  14. package/components/code-editor/index.umd.cjs +3 -3
  15. package/components/collection-property-editor/index.esm.js +382 -351
  16. package/components/collection-property-editor/index.umd.cjs +2 -2
  17. package/components/color-picker/index.esm.js +502 -812
  18. package/components/color-picker/index.umd.cjs +1 -1
  19. package/components/combo-list/index.esm.js +197 -183
  20. package/components/combo-list/index.umd.cjs +1 -1
  21. package/components/combo-tree/index.esm.js +199 -364
  22. package/components/combo-tree/index.umd.cjs +1 -1
  23. package/components/comment/index.esm.js +1501 -1465
  24. package/components/comment/index.umd.cjs +6 -6
  25. package/components/common/index.esm.js +136 -100
  26. package/components/common/index.umd.cjs +1 -1
  27. package/components/component/index.css +1 -1
  28. package/components/component/index.esm.js +2662 -3647
  29. package/components/component/index.umd.cjs +1 -8
  30. package/components/condition/index.esm.js +492 -2449
  31. package/components/condition/index.umd.cjs +1 -8
  32. package/components/content-container/index.esm.js +252 -241
  33. package/components/content-container/index.umd.cjs +1 -1
  34. package/components/data-grid/index.esm.js +505 -409
  35. package/components/data-grid/index.umd.cjs +1 -1
  36. package/components/data-view/index.esm.js +3326 -3258
  37. package/components/data-view/index.umd.cjs +1 -1
  38. package/components/date-picker/index.esm.js +1709 -1634
  39. package/components/date-picker/index.umd.cjs +1 -1
  40. package/components/designer-canvas/index.css +1 -1
  41. package/components/designer-canvas/index.esm.js +2693 -3021
  42. package/components/designer-canvas/index.umd.cjs +1 -1
  43. package/components/designer-outline/index.esm.js +102 -98
  44. package/components/designer-outline/index.umd.cjs +1 -1
  45. package/components/drawer/index.esm.js +409 -358
  46. package/components/drawer/index.umd.cjs +2 -2
  47. package/components/dropdown/index.esm.js +124 -373
  48. package/components/dropdown/index.umd.cjs +2 -2
  49. package/components/dynamic-form/index.esm.js +760 -573
  50. package/components/dynamic-form/index.umd.cjs +1 -1
  51. package/components/dynamic-resolver/index.esm.js +354 -327
  52. package/components/dynamic-resolver/index.umd.cjs +2 -2
  53. package/components/dynamic-view/index.esm.js +413 -359
  54. package/components/dynamic-view/index.umd.cjs +1 -1
  55. package/components/event-parameter/index.esm.js +1 -1
  56. package/components/event-parameter/index.umd.cjs +1 -1
  57. package/components/events-editor/index.css +1 -1
  58. package/components/events-editor/index.esm.js +1535 -1941
  59. package/components/events-editor/index.umd.cjs +3 -3
  60. package/components/expression-editor/index.css +1 -1
  61. package/components/expression-editor/index.esm.js +2 -7317
  62. package/components/expression-editor/index.umd.cjs +1 -427
  63. package/components/field-selector/index.esm.js +13 -13
  64. package/components/field-selector/index.umd.cjs +1 -1
  65. package/components/fieldset/index.esm.js +140 -123
  66. package/components/fieldset/index.umd.cjs +1 -1
  67. package/components/filter-bar/index.esm.js +1021 -1012
  68. package/components/filter-bar/index.umd.cjs +2 -2
  69. package/components/filter-condition-editor/index.css +1 -1
  70. package/components/filter-condition-editor/index.esm.js +448 -9000
  71. package/components/filter-condition-editor/index.umd.cjs +1 -427
  72. package/components/html-template/index.esm.js +167 -147
  73. package/components/html-template/index.umd.cjs +1 -1
  74. package/components/image/index.esm.js +372 -352
  75. package/components/image/index.umd.cjs +2 -2
  76. package/components/image-cropper/index.esm.js +361 -615
  77. package/components/image-cropper/index.umd.cjs +1 -1
  78. package/components/json-editor/index.esm.js +247 -325
  79. package/components/json-editor/index.umd.cjs +1 -1
  80. package/components/language-textbox/index.esm.js +835 -421
  81. package/components/language-textbox/index.umd.cjs +2 -2
  82. package/components/layout/index.esm.js +163 -549
  83. package/components/layout/index.umd.cjs +1 -1
  84. package/components/list-nav/index.esm.js +39 -836
  85. package/components/list-nav/index.umd.cjs +1 -1
  86. package/components/list-view/index.esm.js +690 -474
  87. package/components/list-view/index.umd.cjs +6 -8
  88. package/components/loading/index.esm.js +128 -97
  89. package/components/loading/index.umd.cjs +2 -2
  90. package/components/locale/index.esm.js +361 -340
  91. package/components/locale/index.umd.cjs +5 -5
  92. package/components/lookup/index.css +1 -1
  93. package/components/lookup/index.esm.js +3396 -3368
  94. package/components/lookup/index.umd.cjs +1 -1
  95. package/components/mapping-editor/index.css +1 -1
  96. package/components/mapping-editor/index.esm.js +1684 -1584
  97. package/components/mapping-editor/index.umd.cjs +1 -1
  98. package/components/menu-lookup/index.esm.js +586 -609
  99. package/components/menu-lookup/index.umd.cjs +6 -6
  100. package/components/message-box/index.css +1 -1
  101. package/components/message-box/index.esm.js +357 -353
  102. package/components/message-box/index.umd.cjs +1 -1
  103. package/components/modal/index.esm.js +325 -318
  104. package/components/modal/index.umd.cjs +1 -1
  105. package/components/nav/index.esm.js +31 -311
  106. package/components/nav/index.umd.cjs +1 -1
  107. package/components/number-range/index.esm.js +189 -1633
  108. package/components/number-range/index.umd.cjs +1 -1
  109. package/components/number-spinner/index.esm.js +195 -175
  110. package/components/number-spinner/index.umd.cjs +1 -1
  111. package/components/order/index.esm.js +761 -1057
  112. package/components/order/index.umd.cjs +7 -9
  113. package/components/page-footer/index.esm.js +48 -331
  114. package/components/page-footer/index.umd.cjs +1 -1
  115. package/components/page-header/index.esm.js +92 -73
  116. package/components/page-header/index.umd.cjs +1 -1
  117. package/components/pagination/index.esm.js +195 -472
  118. package/components/pagination/index.umd.cjs +1 -1
  119. package/components/popover/index.esm.js +77 -76
  120. package/components/popover/index.umd.cjs +1 -1
  121. package/components/progress/index.esm.js +148 -353
  122. package/components/progress/index.umd.cjs +3 -3
  123. package/components/property-editor/index.esm.js +74 -68
  124. package/components/property-editor/index.umd.cjs +1 -1
  125. package/components/property-panel/index.esm.js +872 -1800
  126. package/components/property-panel/index.umd.cjs +5 -12
  127. package/components/query-solution/index.css +1 -1
  128. package/components/query-solution/index.esm.js +4223 -6205
  129. package/components/query-solution/index.umd.cjs +6 -13
  130. package/components/response-layout/index.esm.js +206 -170
  131. package/components/response-layout/index.umd.cjs +1 -1
  132. package/components/response-layout-editor/index.esm.js +1 -1
  133. package/components/response-layout-editor/index.umd.cjs +1 -1
  134. package/components/response-toolbar/index.esm.js +378 -359
  135. package/components/response-toolbar/index.umd.cjs +1 -1
  136. package/components/schema-selector/index.esm.js +2491 -2653
  137. package/components/schema-selector/index.umd.cjs +8 -10
  138. package/components/search-box/index.esm.js +79 -240
  139. package/components/search-box/index.umd.cjs +1 -1
  140. package/components/section/index.esm.js +304 -289
  141. package/components/section/index.umd.cjs +2 -2
  142. package/components/smoke-detector/index.esm.js +8 -179
  143. package/components/smoke-detector/index.umd.cjs +1 -1
  144. package/components/sort-condition-editor/index.esm.js +4 -9421
  145. package/components/sort-condition-editor/index.umd.cjs +1 -427
  146. package/components/splitter/index.esm.js +142 -1171
  147. package/components/splitter/index.umd.cjs +1 -1
  148. package/components/step/index.esm.js +48 -47
  149. package/components/step/index.umd.cjs +1 -1
  150. package/components/tabs/index.esm.js +460 -513
  151. package/components/tabs/index.umd.cjs +1 -1
  152. package/components/text/index.esm.js +73 -217
  153. package/components/text/index.umd.cjs +1 -1
  154. package/components/time-picker/index.esm.js +380 -375
  155. package/components/time-picker/index.umd.cjs +1 -1
  156. package/components/tooltip/index.esm.js +40 -40
  157. package/components/tooltip/index.umd.cjs +1 -1
  158. package/components/transfer/index.esm.js +551 -771
  159. package/components/transfer/index.umd.cjs +6 -8
  160. package/components/tree-grid/index.esm.js +250 -235
  161. package/components/tree-grid/index.umd.cjs +1 -1
  162. package/components/tree-view/index.esm.js +157 -314
  163. package/components/tree-view/index.umd.cjs +1 -1
  164. package/components/uploader/index.esm.js +634 -1125
  165. package/components/uploader/index.umd.cjs +2 -2
  166. package/components/verify-detail/index.esm.js +106 -359
  167. package/components/verify-detail/index.umd.cjs +1 -1
  168. package/components/video/index.esm.js +89 -222
  169. package/components/video/index.umd.cjs +1 -1
  170. package/components/weather/index.esm.js +199 -290
  171. package/components/weather/index.umd.cjs +1 -1
  172. package/designer/accordion/index.esm.js +257 -0
  173. package/designer/accordion/index.umd.cjs +1 -0
  174. package/designer/avatar/index.esm.js +227 -0
  175. package/designer/avatar/index.umd.cjs +1 -0
  176. package/designer/binding-selector/index.esm.js +792 -0
  177. package/designer/binding-selector/index.umd.cjs +1 -0
  178. package/designer/button-edit/index.esm.js +210 -203
  179. package/designer/button-edit/index.umd.cjs +1 -1
  180. package/designer/button-group/index.esm.js +282 -0
  181. package/designer/button-group/index.umd.cjs +1 -0
  182. package/designer/checkbox/index.esm.js +51 -45
  183. package/designer/checkbox/index.umd.cjs +1 -1
  184. package/designer/checkbox-group/index.esm.js +89 -83
  185. package/designer/checkbox-group/index.umd.cjs +1 -1
  186. package/designer/code-editor/index.esm.js +75 -0
  187. package/designer/code-editor/index.umd.cjs +1 -0
  188. package/designer/color-picker/index.esm.js +1096 -0
  189. package/designer/color-picker/index.umd.cjs +1 -0
  190. package/designer/combo-list/index.esm.js +1095 -0
  191. package/designer/combo-list/index.umd.cjs +1 -0
  192. package/designer/combo-tree/index.esm.js +186 -0
  193. package/designer/combo-tree/index.umd.cjs +1 -0
  194. package/designer/component/index.css +1 -0
  195. package/designer/component/index.esm.js +5002 -0
  196. package/designer/component/index.umd.cjs +1 -0
  197. package/designer/condition/index.esm.js +1899 -0
  198. package/designer/condition/index.umd.cjs +1 -0
  199. package/designer/data-grid/index.esm.js +5580 -6213
  200. package/designer/data-grid/index.umd.cjs +10 -17
  201. package/designer/data-view/index.esm.js +212 -191
  202. package/designer/data-view/index.umd.cjs +2 -2
  203. package/designer/date-picker/index.esm.js +621 -607
  204. package/designer/date-picker/index.umd.cjs +1 -1
  205. package/designer/drawer/index.css +1 -1
  206. package/designer/drawer/index.esm.js +869 -620
  207. package/designer/drawer/index.umd.cjs +2 -2
  208. package/designer/dropdown/index.esm.js +261 -0
  209. package/designer/dropdown/index.umd.cjs +1 -0
  210. package/designer/dynamic-form/index.esm.js +1166 -1384
  211. package/designer/dynamic-form/index.umd.cjs +1 -8
  212. package/designer/expression-editor/index.css +1 -0
  213. package/designer/expression-editor/index.esm.js +7006 -0
  214. package/designer/expression-editor/index.umd.cjs +427 -0
  215. package/designer/farris-designer.all.esm.js +10309 -10617
  216. package/designer/farris-designer.all.umd.cjs +17 -19
  217. package/designer/filter-condition-editor/index.css +1 -0
  218. package/designer/filter-condition-editor/index.esm.js +4795 -0
  219. package/designer/filter-condition-editor/index.umd.cjs +1 -0
  220. package/designer/html-template/index.esm.js +718 -0
  221. package/designer/html-template/index.umd.cjs +1 -0
  222. package/designer/image-cropper/index.esm.js +765 -0
  223. package/designer/image-cropper/index.umd.cjs +1 -0
  224. package/designer/index.css +1 -1
  225. package/designer/input-group/index.esm.js +72 -66
  226. package/designer/input-group/index.umd.cjs +1 -1
  227. package/designer/json-editor/index.esm.js +83 -0
  228. package/designer/json-editor/index.umd.cjs +1 -0
  229. package/designer/language-textbox/index.esm.js +783 -0
  230. package/designer/language-textbox/index.umd.cjs +8 -0
  231. package/designer/layout/index.esm.js +430 -0
  232. package/designer/layout/index.umd.cjs +1 -0
  233. package/designer/list-nav/index.esm.js +802 -0
  234. package/designer/list-nav/index.umd.cjs +1 -0
  235. package/designer/list-view/index.esm.js +864 -844
  236. package/designer/list-view/index.umd.cjs +7 -9
  237. package/designer/lookup/index.esm.js +2083 -0
  238. package/designer/lookup/index.umd.cjs +1 -0
  239. package/designer/menu-lookup/index.esm.js +46 -0
  240. package/designer/menu-lookup/index.umd.cjs +1 -0
  241. package/designer/modal/index.esm.js +137 -29
  242. package/designer/modal/index.umd.cjs +1 -1
  243. package/designer/nav/index.esm.js +284 -0
  244. package/designer/nav/index.umd.cjs +1 -0
  245. package/designer/number-range/index.esm.js +1616 -0
  246. package/designer/number-range/index.umd.cjs +1 -0
  247. package/designer/number-spinner/index.esm.js +19 -17
  248. package/designer/number-spinner/index.umd.cjs +1 -1
  249. package/designer/order/index.css +1 -0
  250. package/designer/order/index.esm.js +2196 -0
  251. package/designer/order/index.umd.cjs +18 -0
  252. package/designer/page-footer/index.esm.js +290 -0
  253. package/designer/page-footer/index.umd.cjs +1 -0
  254. package/designer/page-header/index.esm.js +1003 -0
  255. package/designer/page-header/index.umd.cjs +1 -0
  256. package/designer/pagination/index.esm.js +591 -0
  257. package/designer/pagination/index.umd.cjs +1 -0
  258. package/designer/progress/index.esm.js +213 -0
  259. package/designer/progress/index.umd.cjs +1 -0
  260. package/designer/radio-group/index.esm.js +978 -949
  261. package/designer/radio-group/index.umd.cjs +1 -1
  262. package/designer/response-layout-editor/index.esm.js +1 -1
  263. package/designer/response-layout-editor/index.umd.cjs +1 -1
  264. package/designer/response-toolbar/index.esm.js +1471 -1416
  265. package/designer/response-toolbar/index.umd.cjs +1 -1
  266. package/designer/search-box/index.esm.js +245 -0
  267. package/designer/search-box/index.umd.cjs +1 -0
  268. package/designer/section/index.esm.js +83 -78
  269. package/designer/section/index.umd.cjs +1 -1
  270. package/designer/smoke-detector/index.css +1 -0
  271. package/designer/smoke-detector/index.esm.js +178 -0
  272. package/designer/smoke-detector/index.umd.cjs +1 -0
  273. package/designer/sort-condition-editor/index.esm.js +138 -0
  274. package/designer/sort-condition-editor/index.umd.cjs +1 -0
  275. package/designer/splitter/index.esm.js +1120 -0
  276. package/designer/splitter/index.umd.cjs +1 -0
  277. package/designer/step/index.esm.js +226 -0
  278. package/designer/step/index.umd.cjs +1 -0
  279. package/designer/switch/index.esm.js +10 -10
  280. package/designer/switch/index.umd.cjs +1 -1
  281. package/designer/tabs/index.css +1 -1
  282. package/designer/tabs/index.esm.js +2447 -2698
  283. package/designer/tabs/index.umd.cjs +2 -2
  284. package/designer/text/index.esm.js +147 -0
  285. package/designer/text/index.umd.cjs +1 -0
  286. package/designer/time-picker/index.esm.js +101 -100
  287. package/designer/time-picker/index.umd.cjs +1 -1
  288. package/designer/transfer/index.esm.js +254 -0
  289. package/designer/transfer/index.umd.cjs +1 -0
  290. package/designer/tree-grid/index.esm.js +473 -810
  291. package/designer/tree-grid/index.umd.cjs +1 -1
  292. package/designer/tree-view/index.esm.js +313 -0
  293. package/designer/tree-view/index.umd.cjs +1 -0
  294. package/designer/uploader/index.esm.js +1190 -0
  295. package/designer/uploader/index.umd.cjs +2 -0
  296. package/designer/verify-detail/index.esm.js +258 -0
  297. package/designer/verify-detail/index.umd.cjs +1 -0
  298. package/designer/video/index.esm.js +136 -0
  299. package/designer/video/index.umd.cjs +1 -0
  300. package/designer/weather/index.css +1 -0
  301. package/designer/weather/index.esm.js +6244 -0
  302. package/designer/weather/index.umd.cjs +14 -0
  303. package/farris.all.esm.js +69941 -70514
  304. package/farris.all.umd.cjs +117 -117
  305. package/index.css +1 -1
  306. package/locales/filter-bar/ui/en.json +2 -1
  307. package/locales/filter-bar/ui/zh-CHS.json +2 -1
  308. package/locales/filter-bar/ui/zh-CHT.json +2 -1
  309. package/locales/query-solution/ui/en.json +1 -1
  310. package/locales/query-solution/ui/zh-CHS.json +1 -1
  311. package/locales/query-solution/ui/zh-CHT.json +1 -1
  312. package/locales/ui/en.json +3 -2
  313. package/locales/ui/zh-CHS.json +3 -2
  314. package/locales/ui/zh-CHT.json +3 -2
  315. package/package.json +1 -1
  316. package/types/accordion/designer.d.ts +44 -0
  317. package/types/accordion/src/accordion.props.d.ts +0 -1
  318. package/types/accordion/src/components/accordion-item.props.d.ts +0 -1
  319. package/types/avatar/designer.d.ts +29 -0
  320. package/types/avatar/src/avatar.props.d.ts +0 -1
  321. package/types/avatar/src/property-config/avatar.property-config.d.ts +1 -1
  322. package/types/{expression-editor/index.d.ts → binding-selector/designer.d.ts} +6 -6
  323. package/types/binding-selector/index.d.ts +0 -54
  324. package/types/binding-selector/src/binding-selector.props.d.ts +0 -1
  325. package/types/button-group/designer.d.ts +29 -0
  326. package/types/button-group/index.d.ts +15 -0
  327. package/types/button-group/src/button-group.props.d.ts +0 -1
  328. package/types/calendar/src/calendar.props.d.ts +1 -0
  329. package/types/calendar/src/components/month/month-view.component.d.ts +6 -6
  330. package/types/calendar/src/composition/use-calendar-events.d.ts +1 -1
  331. package/types/calendar/src/composition/use-locales.d.ts +1 -0
  332. package/types/calendar/src/property-config/calendar.property-config.d.ts +2 -0
  333. package/types/capsule/src/capsule-item.component.d.ts +6 -6
  334. package/types/checkbox/designer.d.ts +2 -0
  335. package/types/checkbox-group/designer.d.ts +2 -0
  336. package/types/code-editor/designer.d.ts +5 -0
  337. package/types/code-editor/index.d.ts +0 -1
  338. package/types/code-editor/src/code-textbox.component.d.ts +6 -6
  339. package/types/code-editor/src/code-textbox.props.d.ts +0 -2
  340. package/types/color-picker/designer.d.ts +29 -0
  341. package/types/color-picker/index.d.ts +0 -15
  342. package/types/color-picker/src/color-picker.props.d.ts +0 -1
  343. package/types/combo-list/designer.d.ts +29 -0
  344. package/types/combo-list/src/combo-list.props.d.ts +1 -0
  345. package/types/combo-list/src/designer/combo-list.design.props.d.ts +6 -0
  346. package/types/combo-tree/designer.d.ts +5 -0
  347. package/types/combo-tree/src/combo-tree.props.d.ts +0 -1
  348. package/types/combo-tree/src/components/tree-container.component.d.ts +7 -7
  349. package/types/comment/src/comment.props.d.ts +4 -0
  350. package/types/comment/src/designer/comment.design.props.d.ts +4 -0
  351. package/types/common/index.d.ts +1 -0
  352. package/types/common/utils/use-mobile.d.ts +1 -0
  353. package/types/component/designer.d.ts +35 -0
  354. package/types/component/index.d.ts +0 -2
  355. package/types/component/src/component.props.d.ts +0 -8
  356. package/types/component/src/composition/field-tree-builder.d.ts +1 -0
  357. package/types/components.d.ts +2 -6
  358. package/types/condition/designer.d.ts +56 -0
  359. package/types/condition/index.d.ts +0 -55
  360. package/types/content-container/index.d.ts +3 -2
  361. package/types/content-container/src/content-container.props.d.ts +1 -0
  362. package/types/data-grid/designer.d.ts +2 -0
  363. package/types/data-grid/index.d.ts +5 -2
  364. package/types/data-grid/src/data-grid.component.d.ts +2 -1
  365. package/types/data-grid/src/designer/grid-field-editor.props.d.ts +1 -0
  366. package/types/data-view/composition/types.d.ts +7 -1
  367. package/types/data-view/composition/use-mobile.d.ts +3 -0
  368. package/types/data-view/designer/property-config/use-command-option.d.ts +11 -0
  369. package/types/data-view/index.d.ts +1 -0
  370. package/types/designer-canvas/src/composition/designer-canvas-changed.d.ts +3 -3
  371. package/types/designer-canvas/src/composition/dg-control.d.ts +8 -0
  372. package/types/designer-outline/src/designer-outline.component.d.ts +3 -3
  373. package/types/designer-outline/src/types.d.ts +5 -1
  374. package/types/drawer/designer.d.ts +12 -0
  375. package/types/drawer/src/designer/drawer-toolbar.design.props.d.ts +12 -0
  376. package/types/drawer/src/designer/drawer.design.component.d.ts +8 -0
  377. package/types/drawer/src/designer/drawer.design.props.d.ts +4 -0
  378. package/types/drawer/src/schema/schema-mapper.d.ts +1 -0
  379. package/types/drawer/src/schema/schema-resolver.d.ts +1 -0
  380. package/types/dropdown/designer.d.ts +6 -0
  381. package/types/dropdown/index.d.ts +27 -6
  382. package/types/dropdown/src/dropdown.item.component.d.ts +2 -2
  383. package/types/dropdown/src/dropdown.props.d.ts +0 -1
  384. package/types/dynamic-form/designer.d.ts +3 -1
  385. package/types/dynamic-form/index.d.ts +4 -3
  386. package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.component.d.ts +6 -6
  387. package/types/dynamic-form/src/composition/use-input-type-resolver.d.ts +11 -0
  388. package/types/dynamic-resolver/index.d.ts +3 -0
  389. package/types/dynamic-resolver/src/props-resolver.d.ts +2 -0
  390. package/types/dynamic-resolver/src/resolver/property-config/property-config-resolver-design.d.ts +1 -1
  391. package/types/dynamic-resolver/src/resolver/property-config/property-config-resolver.d.ts +1 -1
  392. package/types/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.d.ts +2 -2
  393. package/types/dynamic-resolver/src/resolver/schema/schema-resolver-design.d.ts +1 -1
  394. package/types/dynamic-resolver/src/resolver/schema/schema-resolver.d.ts +1 -1
  395. package/types/dynamic-view/src/components/maps.d.ts +883 -1
  396. package/types/dynamic-view/src/dynamic-view.component.d.ts +1 -1
  397. package/types/dynamic-view/src/types.d.ts +4 -0
  398. package/types/expression-editor/designer.d.ts +9 -0
  399. package/types/field-selector/index.d.ts +2 -1
  400. package/types/fieldset/index.d.ts +3 -2
  401. package/types/fieldset/src/fieldset.props.d.ts +1 -0
  402. package/types/filter-bar/src/composition/types.d.ts +1 -1
  403. package/types/filter-bar/src/composition/use-size.d.ts +2 -2
  404. package/types/filter-bar/src/locale/locale.d.ts +1 -0
  405. package/types/filter-condition-editor/designer.d.ts +10 -0
  406. package/types/filter-condition-editor/index.d.ts +0 -9
  407. package/types/filter-condition-editor/src/components/filter-condition-grid.component.d.ts +12 -12
  408. package/types/filter-condition-editor/src/components/sort-editor-grid.component.d.ts +12 -12
  409. package/types/filter-condition-editor/src/filter-condition-editor.props.d.ts +0 -1
  410. package/types/html-template/designer.d.ts +31 -0
  411. package/types/html-template/src/designer/html-template.design.props.d.ts +9 -0
  412. package/types/html-template/src/html-template.props.d.ts +2 -0
  413. package/types/image-cropper/designer.d.ts +4 -0
  414. package/types/image-cropper/src/image-cropper.props.d.ts +0 -1
  415. package/types/index.d.ts +0 -1
  416. package/types/input-group/designer.d.ts +2 -0
  417. package/types/json-editor/designer.d.ts +5 -0
  418. package/types/json-editor/src/components/editable-combo/editable-combo.component.d.ts +3 -3
  419. package/types/json-editor/src/components/editable-combo/popup-container.component.d.ts +3 -3
  420. package/types/json-editor/src/json-editor.props.d.ts +0 -1
  421. package/types/language-textbox/index.d.ts +6 -6
  422. package/types/language-textbox/src/language-textbox.component.d.ts +2 -2
  423. package/types/language-textbox/src/language-textbox.props.d.ts +1 -0
  424. package/types/layout/index.d.ts +1 -0
  425. package/types/layout/src/components/layout-pane.props.d.ts +0 -1
  426. package/types/layout/src/layout.props.d.ts +0 -1
  427. package/types/list-nav/index.d.ts +24 -5
  428. package/types/list-nav/src/list-nav.props.d.ts +0 -1
  429. package/types/list-view/index.d.ts +1 -0
  430. package/types/list-view/src/composition/use-draggable.d.ts +1 -1
  431. package/types/list-view/src/designer/list-view.design.props.d.ts +1 -0
  432. package/types/list-view/src/list-view-table.props.d.ts +1 -0
  433. package/types/loading/index.d.ts +6 -6
  434. package/types/loading/src/loading.component.d.ts +3 -3
  435. package/types/lookup/index.d.ts +1 -1
  436. package/types/lookup/src/components/popup-container.component.d.ts +6 -6
  437. package/types/lookup/src/lookup.props.d.ts +1 -0
  438. package/types/lookup/src/property-config/external-lookup.property-config.d.ts +1 -0
  439. package/types/lookup/src/property-config/lookup.property-config.d.ts +1 -0
  440. package/types/menu-lookup/designer.d.ts +5 -0
  441. package/types/menu-lookup/src/menu-lookup.props.d.ts +0 -1
  442. package/types/message-box/index.d.ts +6 -6
  443. package/types/message-box/src/message-box.component.d.ts +3 -3
  444. package/types/modal/designer.d.ts +2 -0
  445. package/types/modal/index.d.ts +30 -24
  446. package/types/modal/src/modal.component.d.ts +15 -12
  447. package/types/modal/src/modal.props.d.ts +4 -0
  448. package/types/nav/designer.d.ts +6 -0
  449. package/types/nav/index.d.ts +24 -20
  450. package/types/nav/src/nav.props.d.ts +0 -1
  451. package/types/notify/index.d.ts +3 -3
  452. package/types/notify/src/notify.component.d.ts +2 -2
  453. package/types/number-range/designer.d.ts +29 -0
  454. package/types/number-range/src/number-range.props.d.ts +0 -1
  455. package/types/number-spinner/src/composition/types.d.ts +1 -0
  456. package/types/order/designer.d.ts +6 -0
  457. package/types/order/index.d.ts +36 -5
  458. package/types/order/src/designer/order.design.component.d.ts +1 -1
  459. package/types/order/src/order.props.d.ts +0 -1
  460. package/types/page-footer/designer.d.ts +6 -0
  461. package/types/page-footer/index.d.ts +0 -2
  462. package/types/page-footer/src/page-footer.props.d.ts +0 -1
  463. package/types/page-header/index.d.ts +3 -2
  464. package/types/page-header/src/designer/page-header.design.props.d.ts +20 -0
  465. package/types/page-header/src/page-header.props.d.ts +2 -0
  466. package/types/pagination/designer.d.ts +29 -0
  467. package/types/pagination/index.d.ts +15 -0
  468. package/types/pagination/src/pagination.props.d.ts +0 -1
  469. package/types/popover/index.d.ts +3 -3
  470. package/types/popover/src/composition/use-resize.d.ts +1 -1
  471. package/types/popover/src/popover.component.d.ts +2 -2
  472. package/types/progress/designer.d.ts +29 -0
  473. package/types/progress/src/progress.props.d.ts +0 -1
  474. package/types/property-panel/src/property-panel.component.d.ts +3 -3
  475. package/types/query-solution/index.d.ts +4 -4
  476. package/types/query-solution/src/composition/types.d.ts +8 -2
  477. package/types/query-solution/src/composition/use-header.d.ts +2 -2
  478. package/types/query-solution/src/composition/use-solution-utils.d.ts +1 -1
  479. package/types/query-solution/src/designer/query-solution-config/composition/use-util.d.ts +1 -1
  480. package/types/query-solution/src/designer/query-solution-config/query-solution-config.props.d.ts +1 -0
  481. package/types/query-solution/src/designer/solution-preset-config/solution-preset.props.d.ts +1 -0
  482. package/types/query-solution/src/query-solution.props.d.ts +1 -0
  483. package/types/radio-group/designer.d.ts +4 -1
  484. package/types/radio-group/src/designer/item-collection-editor.props.d.ts +1 -0
  485. package/types/response-layout/index.d.ts +3 -2
  486. package/types/response-layout/src/component/response-layout-item.props.d.ts +1 -0
  487. package/types/response-layout/src/property-config/response-layout-splitter/response-layout-splitter.props.d.ts +1 -0
  488. package/types/response-layout/src/response-layout.props.d.ts +1 -0
  489. package/types/response-toolbar/designer.d.ts +2 -1
  490. package/types/response-toolbar/src/designer/response-toolbar.design.props.d.ts +1 -0
  491. package/types/search-box/designer.d.ts +52 -0
  492. package/types/search-box/index.d.ts +1 -17
  493. package/types/search-box/src/components/search-box-container.component.d.ts +3 -3
  494. package/types/search-box/src/search-box.props.d.ts +0 -1
  495. package/types/section/designer.d.ts +1 -0
  496. package/types/smoke-detector/designer.d.ts +6 -0
  497. package/types/smoke-detector/index.d.ts +0 -2
  498. package/types/smoke-detector/src/smoke-detector.props.d.ts +0 -1
  499. package/types/sort-condition-editor/designer.d.ts +9 -0
  500. package/types/sort-condition-editor/index.d.ts +2 -7
  501. package/types/sort-condition-editor/src/sort-condition-editor.props.d.ts +0 -1
  502. package/types/splitter/designer.d.ts +32 -0
  503. package/types/splitter/index.d.ts +1 -0
  504. package/types/splitter/src/components/splitter-pane.props.d.ts +0 -1
  505. package/types/splitter/src/splitter.props.d.ts +0 -1
  506. package/types/step/designer.d.ts +6 -0
  507. package/types/tabs/designer.d.ts +1 -0
  508. package/types/tabs/index.d.ts +0 -1
  509. package/types/tabs/src/composition/types.d.ts +1 -0
  510. package/types/tabs/src/designer/tab-toolbar-item.props.d.ts +1 -0
  511. package/types/tags/index.d.ts +3 -3
  512. package/types/tags/src/tags.component.d.ts +1 -1
  513. package/types/text/designer.d.ts +6 -0
  514. package/types/text/index.d.ts +24 -20
  515. package/types/text/src/text.props.d.ts +0 -1
  516. package/types/time-picker/src/components/time.component.d.ts +3 -3
  517. package/types/transfer/designer.d.ts +35 -0
  518. package/types/transfer/src/transfer.props.d.ts +0 -1
  519. package/types/tree-view/designer.d.ts +29 -0
  520. package/types/tree-view/src/tree-view.props.d.ts +0 -1
  521. package/types/uploader/designer.d.ts +141 -0
  522. package/types/uploader/index.d.ts +6 -6
  523. package/types/uploader/src/components/upload-progress.component.d.ts +3 -3
  524. package/types/uploader/src/uploader.component.d.ts +3 -3
  525. package/types/uploader/src/uploader.props.d.ts +0 -1
  526. package/types/verify-detail/designer.d.ts +6 -0
  527. package/types/verify-detail/index.d.ts +58 -5
  528. package/types/verify-detail/src/designer/verify-detail.design.component.d.ts +8 -8
  529. package/types/verify-detail/src/verify-detail.props.d.ts +0 -1
  530. package/types/video/designer.d.ts +6 -0
  531. package/types/video/index.d.ts +24 -20
  532. package/types/video/src/video.props.d.ts +0 -1
  533. package/components/sort-condition-editor/index.css +0 -1
  534. package/package.zip +0 -0
  535. package/types/designer-toolbox/index.d.ts +0 -3
  536. package/types/designer-toolbox/src/toolbox.component.d.ts +0 -14
  537. package/types/designer-toolbox/src/toolbox.props.d.ts +0 -29
  538. package/types/designer-toolbox/src/types.d.ts +0 -21
  539. package/types/designer.d.ts +0 -13
  540. package/types/flow-canvas/index.d.ts +0 -3
  541. package/types/flow-canvas/src/components/flow-node-item.component.d.ts +0 -8
  542. package/types/flow-canvas/src/components/flow-node-item.props.d.ts +0 -3
  543. package/types/flow-canvas/src/composition/types.d.ts +0 -42
  544. package/types/flow-canvas/src/composition/use-bezier-curve.d.ts +0 -2
  545. package/types/flow-canvas/src/composition/use-connections.d.ts +0 -2
  546. package/types/flow-canvas/src/composition/use-curve.d.ts +0 -4
  547. package/types/flow-canvas/src/composition/use-drawing-bezier.d.ts +0 -2
  548. package/types/flow-canvas/src/composition/use-drawing.d.ts +0 -4
  549. package/types/flow-canvas/src/flow-canvas.component.d.ts +0 -8
  550. package/types/flow-canvas/src/flow-canvas.props.d.ts +0 -3
  551. package/types/layout/src/designer/layout-pane-use-designer-rules.d.ts +0 -2
  552. package/types/layout/src/designer/layout-pane.design.component.d.ts +0 -8
  553. package/types/layout/src/designer/layout-use-designer-rules.d.ts +0 -2
  554. package/types/layout/src/designer/layout.design.component.d.ts +0 -8
  555. package/types/layout/src/schema/schema-mapper.d.ts +0 -2
  556. package/types/layout/src/schema/schema-resolver.d.ts +0 -2
  557. package/types/list-nav/src/designer/use-designer-rules.d.ts +0 -2
  558. package/types/list-nav/src/property-config/list-nav.property-config.d.ts +0 -8
  559. package/types/list-nav/src/schema/schema-mapper.d.ts +0 -2
  560. package/types/list-nav/src/schema/schema-resolver.d.ts +0 -2
  561. /package/{components → designer}/condition/index.css +0 -0
  562. /package/{components → designer}/uploader/index.css +0 -0
  563. /package/types/{list-nav/src/designer/list-nav.design.component.d.ts → dynamic-form/src/component/form-control/form-control.component.d.ts} +0 -0
@@ -0,0 +1,427 @@
1
+ (function(H,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../../components/common/index.umd.js"),require("../../components/button-edit/index.umd.js"),require("../../components/locale/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("lodash-es"),require("../../components/list-view/index.umd.js"),require("../button-edit/index.umd.js"),require("../../components/designer-canvas/index.umd.js"),require("../../components/combo-list/index.umd.js"),require("../../components/property-panel/index.umd.js"),require("../../components/tree-view/index.umd.js"),require("../../components/tags/index.umd.js"),require("../../components/popover/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../../components/common/index.umd.js","../../components/button-edit/index.umd.js","../../components/locale/index.umd.js","../../components/dynamic-resolver/index.umd.js","lodash-es","../../components/list-view/index.umd.js","../button-edit/index.umd.js","../../components/designer-canvas/index.umd.js","../../components/combo-list/index.umd.js","../../components/property-panel/index.umd.js","../../components/tree-view/index.umd.js","../../components/tags/index.umd.js","../../components/popover/index.umd.js"],t):(H=typeof globalThis<"u"?globalThis:H||self,t(H["expression-editor"]={},H.Vue,H.common,H.FButtonEdit$1,H.locale,H.dynamicResolver,H.LodashES,H.FListView,H.FButtonEditDesign,H.designerCanvas,H.comboList,H.propertyPanel,H.FTreeView,H.FTags,H.FPopover))})(this,function(H,t,U,pe,X,ee,te,Xe,Ke,_e,Te,Je,Ze,Qe,et){"use strict";var ra=Object.defineProperty;var sa=(H,t,U)=>t in H?ra(H,t,{enumerable:!0,configurable:!0,writable:!0,value:U}):H[t]=U;var K=(H,t,U)=>sa(H,typeof t!="symbol"?t+"":t,U);const tt={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}},nt={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}};function at(e){const n=t.ref(-1),a=t.ref(-1),o=t.ref(0),l=t.ref(0),i=t.ref(!1),s=t.ref(!1),r=t.computed(()=>({display:i.value?"block":"none",left:`${o.value}px`,cursor:"e-resize"})),u=t.computed(()=>({display:s.value?"block":"none",top:`${l.value}px`,cursor:"n-resize"})),d=t.computed(()=>{const c={display:s.value||i.value?"block":"none"};return l.value>0&&(c.cursor="n-resize"),c});function g(c,y,p,w){const S=e.value;if(S){const{left:f,right:v,width:k}=S.getBoundingClientRect();let N=c.clientX-f;w==="right"&&(N=v-c.clientX),N>y&&(N=y),N<p&&(N=p),w==="right"&&(N=k-N),o.value=N}}function b(c,y,p,w){const S=e.value;if(S){const{top:f,bottom:v,height:k}=S.getBoundingClientRect();let N=c.clientY-f;w==="bottom"&&(N=v-c.clientY),N>y&&(N=y),N<p&&(N=p),w==="bottom"&&(N=k-N),l.value=N}}function h(){const c=e.value;if(c){const{width:y,height:p}=c.getBoundingClientRect();return{width:y,height:p}}return null}function x(){const c=e.value;return c?Array.from(c.querySelectorAll("[data-position]")).reduce((y,p)=>{const w=p.getAttribute("data-position");return y=Object.assign(y,{[w]:p}),y},{}):null}function C(c,y){const p=h(),w=x();if(p&&w){const S=w==null?void 0:w.right,f=w==null?void 0:w.left;if(c==="left"&&f)return S?p.width-S.clientWidth-y:p.width-y;if(c==="right"&&S)return f?p.width-f.clientWidth-y:p.width-y}}function m(c,y){const p=h(),w=x();if(p&&w){const S=w==null?void 0:w.bottom,f=w==null?void 0:w.top;if(c==="top"&&f)return S?p.height-S.clientHeight-y:p.height-y;if(c==="bottom"&&S)return f?p.height-f.clientHeight-y:p.height-y}}return{horizontalResizeHandleStyle:r,verticalResizeHandleStyle:u,resizeOverlayStyle:d,showHorizontalResizeHandle:i,showVerticalResizeHandle:s,horizontalResizeBarPosition:n,verticalResizeBarPosition:a,verticalResizeHandleOffset:l,horizontalResizeHandleOffset:o,draggingHorizontalResizeHandle:g,draggingVerticalResizeHandle:b,getPanelMaxHeight:m,getPanelMaxWidth:C}}const ne=t.defineComponent({name:"FLayout",props:nt,emits:[],setup(e,n){const a=t.ref(),o=at(a),{horizontalResizeHandleStyle:l,verticalResizeHandleStyle:i,resizeOverlayStyle:s}=o;t.provide("layout",{useResizeHandleComposition:o});const r=t.computed(()=>{const d={"f-layout":!0};return U.getCustomClass(d,e==null?void 0:e.customClass)}),u=t.computed(()=>{const d={};return U.getCustomStyle(d,e==null?void 0:e.customStyle)});return()=>t.createVNode("div",{class:r.value,style:u.value,ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:s.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:l.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:i.value},null)])}}),ot={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}};function lt(e,n,a,o,l){const{horizontalResizeBarPosition:i,horizontalResizeHandleOffset:s,showHorizontalResizeHandle:r,showVerticalResizeHandle:u,verticalResizeBarPosition:d,verticalResizeHandleOffset:g,draggingHorizontalResizeHandle:b,draggingVerticalResizeHandle:h,getPanelMaxHeight:x,getPanelMaxWidth:C}=l;let m="",c,y,p;function w(v){if((m==="left"||m==="right")&&y){const{left:k}=y.getBoundingClientRect(),{width:N}=c.getBoundingClientRect(),I=v.clientX-k;let j=m==="left"?(N||0)+(I-i.value):(N||0)-(I-i.value);j=a.value>0?Math.max(a.value,j):j;const O=C(m,a.value);O!=null&&(j=O>j?j:O),e.value=j}if((m==="top"||m==="bottom")&&y){const{top:k}=y.getBoundingClientRect(),{height:N}=c.getBoundingClientRect(),I=v.clientY-k;let j=m==="top"?(N||0)+(I-d.value):(N||0)-(I-d.value);j=o.value>0?Math.max(o.value,j):j;const O=x(m,o.value);O!=null&&(j=O>j?j:O),n.value=j}s.value=0,g.value=0,i.value=-1,d.value=-1,r.value=!1,u.value=!1,document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",w),document.body.style.userSelect="",m="",c=null,y=null}function S(v,k,N){if(m=k,c=N,r.value=!0,y=v.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),y){const{left:j}=y.getBoundingClientRect(),O=v.clientX-j;s.value=O,i.value=O;const P=C(m,a.value)||0;p=T=>b(T,P,a.value,m),document.addEventListener("mousemove",p),document.addEventListener("mouseup",w),document.body.style.userSelect="none"}}function f(v,k,N){if(m=k,c=N,u.value=!0,y=v.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),y){const{top:j}=y.getBoundingClientRect();g.value=v.clientY-j,d.value=v.clientY-j;const O=x(m,o.value)||0;p=P=>h(P,O,o.value,m),document.addEventListener("mousemove",p),document.addEventListener("mouseup",w),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:S,onClickVerticalResizeBar:f}}const _=t.defineComponent({name:"FLayoutPane",props:ot,emits:[],setup(e,n){const a=t.ref(e.minHeight<=0?100:e.minHeight),o=t.ref(e.minWidth<=0?100:e.minWidth),l=t.ref(e.width<=0?100:e.width),i=t.ref(e.height<=0?100:e.height),s=t.ref(Math.max(a.value,i.value)),r=t.ref(Math.max(o.value,l.value)),u=t.ref(),d=t.ref(e.position),g=t.ref(e.resizable);t.watch(()=>e.resizable,f=>{g.value=f});const b=t.inject("layout"),{useResizeHandleComposition:h}=b,x=lt(r,s,o,a,h),{onClickHorizontalResizeBar:C,onClickVerticalResizeBar:m}=x,c=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":d.value==="left","f-layout-resize-bar-n":d.value==="bottom","f-layout-resize-bar-s":d.value==="top","f-layout-resize-bar-w":d.value==="right"})),y=t.computed(()=>d.value!=="center"&&g.value);function p(f,v){(v==="left"||v==="right")&&C(f,v,u.value),(v==="top"||v==="bottom")&&m(f,v,u.value)}const w=t.computed(()=>{const f={"f-layout-pane":!0,"f-page-content-nav":d.value==="left"||d.value==="right","f-page-content-main":d.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((v,k)=>(v[k]=!0,v),f),f}),S=t.computed(()=>{const f={};return(r.value&&d.value==="left"||d.value==="right")&&(f.width=`${r.value}px`),(s.value&&d.value==="bottom"||d.value==="top")&&(f.height=`${s.value}px`),e.visible||(f.display="none"),f});return()=>t.createVNode("div",{ref:u,class:w.value,style:S.value,"data-position":d.value},[n.slots.default&&n.slots.default(),y.value&&t.createVNode("span",{class:c.value,onMousedown:f=>p(f,d.value)},null)])}});ne.install=e=>{e.component(ne.name,ne),e.component(_.name,_)};const he=new Map([["appearance",ee.resolveAppearance]]),ge={$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 ve(e,n,a){return n}function it(){function e(n,a,o){const l={};return l.beforeOpen=i=>a.call("beforeOpen",n,[i,n],o),l}return{resolve:e}}const se={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}};Object.assign({},se,{readonly:{}}),ee.createPropsResolver(se,ge,he,ve);const Se=ee.getPropsResolverGenerator(se,ge,he,ve),rt=it(),st={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:st,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),l=t.ref([]),i=t.ref(e.separator),s=t.ref(e.width),r=t.ref(e.maxHeight),u=t.computed(()=>e.multiSelect),d=t.ref(e.multiSelect?String(e.selectedValues).split(i.value):[e.selectedValues]),g=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 b=t.computed(()=>{const c={};return s.value!==void 0&&(c.width=`${s.value}px`),r.value!==void 0&&r.value>0&&(c.maxHeight=`${r.value}px`),c});function h(c){a.value.search(c)}function x(c){l.value=c.map(y=>Object.assign({},y)),d.value=c.map(y=>y[e.idField]),n.emit("selectionChange",l.value)}function C(c){if(e.enableHighlightSearch)return;let y=[];const{searchOption:p}=e;typeof p=="function"?y=o.value.filter(w=>p(c,w)):y=o.value.filter(w=>w[e.valueField].indexOf(c)>-1||w[e.textField].indexOf(c)>-1),a.value.updateDataSource(y)}t.watch([()=>e.selectedValues],([c])=>{e.multiSelect?d.value=c.split(i.value):d.value=[c]});function m(c){a.value.activeRowById(c)}return t.onMounted(()=>{var c,y;if(!e.multiSelect){const p=(c=d.value)==null?void 0:c[0];let w=p;const S=o.value.map(f=>f[e.valueField||e.idField]);if(!te.isUndefined(p)&&S.includes(p)){const f=typeof p,v=typeof((y=o.value[0])==null?void 0:y[e.valueField||e.idField]);v==="number"&&f!==v&&(w=Number(p)),v==="boolean"&&f!==v&&(w=p==="true"?!0:p==="false"?!1:p),m(w)}}}),n.expose({search:h,activeRowById:m}),()=>t.createVNode("div",{class:"f-combo-list-container",style:b.value},[t.createVNode(Xe,{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:g.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:d.value,onSelectionUpdate:x,onAfterSearch:C},null)])}});function ut(e){const n=t.ref(""),a=t.ref(e.modelValue),o=t.ref(e.data||[]),l=t.ref(e.editable);function i(m){const c=e.multiSelect?String(m).split(e.separator):[String(m)],y=c.map(S=>[S,!0]),p=new Map(y);return o.value.filter(S=>p.has(String(S[e.valueField]))).sort((S,f)=>{const v=c.indexOf(S[e.valueField]),k=c.indexOf(f[e.valueField]);return v-k})}function s(m){const c=i(m).map(y=>y[e.textField]).join(e.separator);n.value=l.value?c||m:c}function r(m){if(e.multiSelect){const c=m.split(e.separator).map(p=>[p,!0]),y=new Map(c);return o.value.filter(p=>y.has(p[e.textField]))}return o.value.filter(c=>""+c[e.textField]===m)}function u(m){const c={};return c[e.idField]=m,c[e.textField]=m,[c]}function d(m){let c=r(m);const y=c&&c.length>0;return l.value&&!y&&(c=u(m)),c}function g(){const{url:m,method:c="GET",headers:y={"Content-Type":"application/json;charset=utf-8;"},body:p=null}=e.remote;if(!m)return;const w=c.toLowerCase()==="get"?{method:c,headers:y}:{method:c,headers:y,body:p};let S=!1;fetch(new Request(m,w)).then(f=>{var k,N;if(f.status===200)return S=!!((N=(k=f.headers)==null?void 0:k.get("content-type"))!=null&&N.includes("application/json")),S?f.text():f.json();throw f.status===405?new Error(X.LocaleService.getLocaleValue("comboList.remoteError")):new Error(f.statusText)}).then(f=>{f.length&&(o.value=S?JSON.parse(f):f)}).catch(f=>{console.warn(f)})}e.remote&&(e.load?e.load().then(m=>{o.value=m}).catch(m=>{console.log(m)}):g()),t.watch(()=>e.data,()=>{o.value=e.data}),t.watch([o],([m])=>{if(e.modelValue!=null){const c=m.find(y=>y[e.valueField]===e.modelValue);c&&(n.value=c[e.textField])}}),t.watch(()=>e.modelValue,m=>{a.value=m,s(m)});function b(m){o.value=m}function h(){return o.value}function x(){return n.value}function C(){const m=typeof e.beforeOpen=="function";return!e.beforeOpen||!m?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:b,getData:h,getDisplayText:x}})).then(c=>typeof(c==null?void 0:c.canOpen)=="boolean"?c==null?void 0:c.canOpen:!0)}return s(e.modelValue),{dataSource:o,displayText:n,editable:l,modelValue:a,beforeOpenList:C,getItemsByDisplayText:r,getItemsByValue:i,getSelectedItemsByDisplayText:d}}const ae=t.defineComponent({name:"FComboList",props:se,emits:["clear","update:modelValue","change","input"],setup(e,n){const a=t.ref(),o=t.ref(),l=t.ref(e.disabled||e.readonly),i=t.ref(e.enableClear),s=t.ref(e.enableSearch),r=t.ref(e.readonly),{dataSource:u,displayText:d,editable:g,modelValue:b,getItemsByDisplayText:h,getItemsByValue:x,beforeOpenList:C}=ut(e),m=t.ref(e.dropDownIcon);m.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(m.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const c=t.computed(()=>e.multiSelect),y=t.computed(()=>o.value?o.value.elementRef.getBoundingClientRect().width:0);function p(){!c.value&&o.value&&o.value.hidePopup()}function w(B){d.value=B.map(R=>R[e.textField]).join(e.separator)||b.value;let D="";B.length===1?D=B[0][e.valueField]:D=B.map(R=>R[e.valueField]).join(e.separator),b.value!==D&&(b.value=D,n.emit("update:modelValue",b.value),n.emit("change",B,b.value))}function S(){const B=x(b.value);w(B)}function f(){r.value||d.value}function v(B){var D;b.value="",(D=a.value)==null||D.activeRowById(""),n.emit("clear")}function k(B){var D,R;e.enableSearch&&e.enableHighlightSearch&&((D=a.value)==null||D.search(B)),(R=a.value)==null||R.activeRowById(B),n.emit("change",[b.value],b.value)}function N(B){if(e.multiSelect){const D=h(B);e.viewType;const M=D.map(E=>E[e.idField||e.valueField]).join(e.separator);b.value!==M&&(b.value=M,n.emit("update:modelValue",b.value),n.emit("change",D,b.value))}else B!==b.value&&(b.value=B,n.emit("update:modelValue",b.value),n.emit("change",[],B))}function I(){return d.value}function j(B){const{value:D}=B.target;k(D),n.emit("input",D)}function O(){o.value.hidePopup()}function P(B){u.value=B}function T(){return u.value}const V={getDisplayText:I,hidePopup:O,updateDataSource:P,getData:T};return n.expose(V),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([B,D,R,M,E])=>{l.value=B,g.value=D,i.value=R,s.value=M,r.value=E}),()=>t.createVNode(pe,{ref:o,id:e.id,disable:l.value,readonly:r.value,forcePlaceholder:e.forcePlaceholder,editable:g.value,buttonContent:m.value,placeholder:e.placeholder==="请选择"?X.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:i.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:d.value,"onUpdate:modelValue":B=>d.value=B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:v,onClick:f,onChange:N,onBlur:S,onInput:j,beforeOpen:C,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:b.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:s.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?y.value:void 0,onSelectionChange:B=>{w(B),p()}},null)]})}}),dt=Object.assign({},Te.comboListProps,{readonly:{}});ee.createPropsResolver(Te.comboListProps,ge,he,ve);const Ne={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,a)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=a}};class ft extends Je.InputBaseProperty{constructor(n,a){super(n,a)}getCommonEditorProperties(n){var a,o,l;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)&&((l=n.editor)==null?void 0:l.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 i,s;const a=this;let o="";if(((i=n==null?void 0:n.binding)==null?void 0:i.type)==="Form"){const r=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(s=r==null?void 0:r.schemaField)!=null&&s.type&&(o=r.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:Ne,description:"",title:"服务端API",type:"string"},body:{visible:!1,$converter:Ne,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)},(r,u)=>{if(!r||!u.editor)return;const d=this;switch(r.propertyID){case"dataSourceType":{r.propertyValue==="static"?(u.editor.valueField="value",u.editor.textField="name",u.editor.remote=null):r.propertyValue==="dynamic"&&(u.editor.remote={method:"GET"},u.editor.valueField="value",u.editor.textField="name");break}case"data":{!d.checkEnumDataReadonly(u)&&u.formatter&&(u.formatter.data=[...r.propertyValue]);break}case"viewType":r.propertyValue==="tag"&&(u.editor.editable=!1)}})}getGridFieldEdtiorProperties(n,a){var s,r,u,d,g,b;const o=this;let l="";if(((s=n==null?void 0:n.binding)==null?void 0:s.type)==="Form"){const h=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(r=h==null?void 0:h.schemaField)!=null&&r.type&&(l=h.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)||((d=n.editor)==null?void 0:d.dataSourceType)==="static",...o.getItemCollectionEditor(n,(g=n.editor)==null?void 0:g.valueField,(b=n.editor)==null?void 0:b.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:l==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(h,x)=>{if(!h||!x.editor)return;const C=this;switch(h.propertyID){case"dataSourceType":{h.propertyValue==="static"?(x.editor.valueField="value",x.editor.textField="name",x.editor.remote=null):h.propertyValue==="dynamic"&&(x.editor.remote={method:"GET"},x.editor.valueField="value",x.editor.textField="name");break}case"data":{!C.checkEnumDataReadonly(x)&&x.formatter&&(x.formatter.data=[...h.propertyValue]);break}}})}setEditorPropertyRelates(n,a,o){if(!n||!a.editor)return;const l=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(a.editor.valueField="value",a.editor.textField="name",a.editor.remote={});break}case"data":{!l.checkEnumDataReadonly(a)&&a.formatter&&(a.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,a,o){var i;super.changeBindingField(n,a);const l=o;n.editor&&((i=l==null?void 0:l.type)==null?void 0:i.$type)===U.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=l.type.enumValues||[])}getEventPropertyConfig(n,a="card",o,l){const i=this;let s=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];o&&(s=s.concat(o)),this.appendFieldValueChangeEvents(n,s);const r=i.eventsEditorUtils.formProperties(n,i.viewModelId,s);return{title:"事件",hideTitle:!0,properties:i.createBaseEventProperty(r),tabId:"commands",tabName:"交互",setPropertyRelates(g,b){const h=g.propertyValue;delete n[i.viewModelId],h&&(h.setPropertyRelates=this.setPropertyRelates,i.eventsEditorUtils.saveRelatedParameters(n,i.viewModelId,h.events,h)),l&&l(g,b,h);const x=i.designViewModelUtils.getDgViewModel(i.viewModelId);x&&i.designViewModelField&&x.changeField(i.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 mt(e,n){const a=e.schema;function o(l,i){return new ft(l,n).getPropertyConfig(a,i)}return{getPropsConfig:o}}const yt=t.defineComponent({name:"FComboListDesign",props:dt,emits:["clear","update:modelValue","change"],setup(e,n){const a=t.ref(),o=t.inject("designer-host-service"),l=t.inject("design-item-context"),i=mt(l,o),s=_e.useDesignerComponent(a,l,i);return t.onMounted(()=>{a.value.componentInstance=s}),n.expose(s.value),()=>t.createVNode(Ke,{ref:a,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});ae.register=(e,n,a,o,l)=>{e["combo-list"]=ae,n["combo-list"]=Se(l),o["combo-list"]={callbackResolver:rt}},ae.registerDesigner=(e,n,a,o)=>{e["combo-list"]=yt,n["combo-list"]=Se(o)},U.withInstall(ae);const pt={analytical:{name:"数据",items:[{key:"IsNull",name:"是空值",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为空值(null)。检测对象为null返回true,否则返回false
2
+ 【参数】
3
+ 【obj】检测对象
4
+ 【返回值】true或false
5
+ 【示例】
6
+ 【场景】提交单据Order,单据包含编号code字段
7
+ 【需求】判断提交单据的编号是否为null
8
+ 【举例】是空值(Order.code)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNullOrWhiteSpace",name:"是空串",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为null值或空串""。检测对象为null或""返回true,否则返回false
9
+ 【参数】
10
+ 【obj】检测对象
11
+ 【返回值】true或false
12
+ 【示例】
13
+ 【场景】提交单据Order,单据包含编号code字段
14
+ 【需求】判断提交单据的编号是否为null或空串""
15
+ 【举例】是空值(Order.code)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNaN",name:"非数字",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否可以转换成数字(Double)。检测对象不能转为数字返回true,否则返回false
16
+ 【参数】
17
+ 【obj】检测对象
18
+ 【返回值】true或false
19
+ 【示例】
20
+ 【场景】提交单据Order,单据包含单据总额sum字段
21
+ 【需求】判断提交单据的单据总额是否为非数字
22
+ 【举例】非数字(Order.sum)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsNumber",name:"是数字",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否可以转换成数字(Double)。检测对象能转为数字返回true,否则返回false
23
+ 【参数】
24
+ 【obj】检测对象
25
+ 【返回值】true或false
26
+ 【示例】
27
+ 【场景】提交单据Order,单据包含单据总额sum字段
28
+ 【需求】判断提交单据的单据总额是否是数字
29
+ 【举例】是数字(Order.sum)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ExistData",name:"子表有无数据",params:[{key:"table",name:"主表.子表",type:"string"}],description:`【功能】判断子表中有没有数据。有数据返回true,无数据返回false(参数用""包起来)
30
+ 【参数】
31
+ 【table】主表.子表(链式结构)
32
+ 【返回值】true或false
33
+ 【示例】
34
+ 【场景】提交单据Order,单据包含差旅明细子表trips
35
+ 【需求】判断差旅明细子表是否有数据
36
+ 【举例】子表有无数据("Order.trips")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"CountOfChild",name:"子表数据数量",params:[{key:"table",name:"主表.子表",type:"string"}],description:`【功能】返回子表数据的数量(参数用""包起来)
37
+ 【参数】
38
+ 【table】主表.子表(链式结构)
39
+ 【返回值】数量(数值类型)
40
+ 【示例】
41
+ 【场景】提交单据Order,单据包含差旅明细子表trips
42
+ 【需求】获取差旅明细子表的数量
43
+ 【举例】子表数据数量("Order.trips")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"SortChildData",name:"子表数据排序",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表排序字段",type:"string"},{key:"order",name:"排序方式",type:"string"}],description:`【功能】对子表数据进行排序(参数用""包起来)
44
+ 【参数】
45
+ 【table】主表.子表(链式结构)
46
+ 【property】子表字段(字段类型应为数字类型)
47
+ 【order】排序方式("ESC"表示正序从小到大,"DESC"表示倒序从大到小)
48
+ 【返回值】无
49
+ 【示例】
50
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
51
+ 【需求】按照出差费用money字段对差旅明细从小到大排序
52
+ 【举例】子表数据排序("Order.trips","money","ESC")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IncludedInList",name:"是否在列表中",params:[{key:"property",name:"字段",type:"object"},{key:"list",name:"数据列表",type:"list"}],description:`【功能】:判断字段是否在数据列表中存在。字段在列表中存在返回true,不存在返回false。支持判断字符和数字类型
53
+ 【参数】
54
+ 【property】字段
55
+ 【list】数据列表
56
+ 【返回值】true或false
57
+ 【示例】是否在列表中(Order.name,["Zs","Ls"])
58
+ 【示例】是否在列表中(Order.quantity,[100,200])`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"CountByProp",name:"子表列非空数",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】:统计子表某字段不为null的数据数量(参数用""包起来)
59
+ 【参数】
60
+ 【table】主表.子表(链式结构)
61
+ 【property】子表字段
62
+ 【返回值】子表字段不为null的数量(数值类型)
63
+ 【示例】
64
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way字段
65
+ 【需求】统计差旅明细子表trips中出差方式way不为空的数据数量
66
+ 【举例】子表列非空数("Order.trips","way")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"SumByProp",name:"子表字段求和",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求和子表某字段(参数用""包起来)
67
+ 【参数】
68
+ 【table】主表.子表(链式结构)
69
+ 【property】子表字段(数值类型)
70
+ 【返回值】子表某字段的和(数值类型)
71
+ 【示例】
72
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
73
+ 【需求】对差旅明细子表trips的出差费用money字段求和
74
+ 【举例】子表字段求和("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"AvgByProp",name:"子表列平均值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的平均值(参数用""包起来)
75
+ 【参数】
76
+ 【table】主表.子表(链式结构)
77
+ 【property】子表字段(数值类型)
78
+ 【返回值】子表某字段的平均值(数值类型)
79
+ 【示例】
80
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
81
+ 【需求】获取差旅明细子表trips的出差费用money的平均值
82
+ 【举例】子表列平均值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MaxByProp",name:"子表列最大值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的最大值(参数用""包起来)
83
+ 【参数】
84
+ 【table】主表.子表(链式结构)
85
+ 【property】子表字段(数值类型)
86
+ 【返回值】子表某字段的最大值(数值类型)
87
+ 【示例】
88
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
89
+ 【需求】获取差旅明细子表trips的出差费用money的最大值
90
+ 【举例】子表列最大值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MinByProp",name:"子表列最小值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】求子表某字段的最小值(参数用""包起来)
91
+ 【参数】
92
+ 【table】主表.子表(链式结构)
93
+ 【property】子表字段(数值类型)
94
+ 【返回值】子表某字段的最小值(数值类型)
95
+ 【示例】
96
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段
97
+ 【需求】获取差旅明细子表trips的出差费用money的最小值
98
+ 【举例】子表列最小值("Order.trips","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsExistRecord",name:"子表有无等于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段是否存在等于匹配值的数据(参数用""包起来)
99
+ 【参数】
100
+ 【table】主表.子表(链式结构)
101
+ 【property】子表字段
102
+ 【match】匹配值
103
+ 【返回值】true或false
104
+ 【示例】
105
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way
106
+ 【需求】判断差旅明细子表trips是否存在出差方式way等于'火车'的数据
107
+ 【举例】子表有无等于匹配值("Order.trips","way","火车")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"IsContainMatch",name:"子表有无包含匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段是否存在包含匹配值的数据(参数用""包起来)
108
+ 【参数】
109
+ 【table】主表.子表(链式结构)
110
+ 【property】子表字段
111
+ 【match】匹配值
112
+ 【返回值】true或false
113
+ 【示例】
114
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差方式way
115
+ 【需求】判断差旅明细子表trips是否存在出差方式way包含匹配值'飞机'的数据
116
+ 【举例】子表有无包含匹配值("Order.trips","way","飞机")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListGreaterThan",name:"子表有无大于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"double"}],description:`【功能】判断子表某字段是否存在大于匹配值的数据(参数用""包起来)
117
+ 【参数】
118
+ 【table】主表.子表(链式结构)
119
+ 【property】子表字段(数值类型)
120
+ 【match】匹配值
121
+ 【返回值】true或false
122
+ 【示例】
123
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差距离distance
124
+ 【需求】判断差旅明细子表trips是否存在出差距离distance大于1000的数据
125
+ 【举例】子表有无大于匹配值("Order.trips","distance",1000)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListLessThan",name:"子表有无小于匹配值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"double"}],description:`【功能】判断子表某字段是否存在小于匹配值的数据(参数用""包起来)
126
+ 【参数】
127
+ 【table】主表.子表(链式结构)
128
+ 【property】子表字段(数值类型)
129
+ 【match】匹配值
130
+ 【返回值】true或false
131
+ 【示例】
132
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差距离distance
133
+ 【需求】判断差旅明细子表trips是否存在出差距离distance小于10的数据
134
+ 【举例】子表有无小于匹配值("Order.trips","distance",10)`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListStartWith",name:"子表有无以匹配值开头",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段有无开头是匹配值的数据(参数用""包起来)
135
+ 【参数】
136
+ 【table】主表.子表(链式结构)
137
+ 【property】子表字段
138
+ 【match】匹配值
139
+ 【返回值】true或false
140
+ 【示例】
141
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
142
+ 【需求】判断差旅明细子表trips是否存在编号code字段以'0001'开头的数据
143
+ 【举例】子表有无以匹配值开头("Order.trips","code","0001")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"ListEndWith",name:"子表有无以匹配值结尾",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"},{key:"match",name:"匹配值",type:"string"}],description:`【功能】判断子表某字段有无结尾是匹配值的数据(参数用""包起来)
144
+ 【参数】
145
+ 【table】主表.子表(链式结构)
146
+ 【property】子表字段
147
+ 【match】匹配值
148
+ 【返回值】true或false
149
+ 【示例】
150
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
151
+ 【需求】判断差旅明细子表trips是否存在编号code字段以'0002'结尾的数据
152
+ 【举例】子表有无以匹配值结尾("Order.trips","code","0002")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetComputeJsonData",name:"子表字段取JSON串",params:[{key:"table",name:"主表.子表",type:"string"},{key:"property",name:"子表字段",type:"string"}],description:`【功能】判断子表某字段有无结尾是匹配值的数据(参数用""包起来)
153
+ 【参数】
154
+ 【table】主表.子表(链式结构)
155
+ 【property】子表字段
156
+ 【返回值】子表某字段的JSON格式
157
+ 【示例】
158
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含编号code字段
159
+ 【需求】将差旅明细子表trips编号code字段用一个列表统计数据,并返回序列化后的值
160
+ 【举例】子表字段取JSON串("Order.trips","code")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MultiplyChildNumber",name:"子表属性乘积求和",params:[{key:"table",name:"主表.子表",type:"string"},{key:"prop1",name:"属性一",type:"string"},{key:"prop2",name:"属性二",type:"string"}],description:`【功能】对子表的两个数字类型属性,先做乘积,然后求和(参数用""包起来)
161
+ 【参数】
162
+ 【table】主表.子表(链式结构)
163
+ 【prop1】属性一(数值类型)
164
+ 【prop2】属性二(数值类型)
165
+ 【返回值】求和值(数值类型)
166
+ 【示例】
167
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差天数days、出差费用money
168
+ 【需求】获取差旅明细的总费用,即子表出差天数*出差费用的总和
169
+ 【举例】子表属性乘积求和("Order.trips","days","money")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MinValueOfPeriod",name:"时间范围内取最小值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的最小值(参数用""包起来)
170
+ 【参数】
171
+ 【table】主表.子表(链式结构)
172
+ 【timeProp】比较时间字段(字段类型应为时间类型)
173
+ 【valueProp】取值字段(字段类型应为数字类型)
174
+ 【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
175
+ 【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
176
+ 【返回值】时间范围内,子表某字段的最小值
177
+ 【示例】
178
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
179
+ 【需求】获取2022-10-01到2022-10-07时间段内,哪一天的出差费用money最小
180
+ 【举例】时间范围内取最小值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"MaxValueOfPeriod",name:"时间范围内取最大值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的最大值(参数用""包起来)
181
+ 【参数】
182
+ 【table】主表.子表(链式结构)
183
+ 【timeProp】比较时间字段(字段类型应为时间类型)
184
+ 【valueProp】取值字段(字段类型应为数字类型)
185
+ 【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
186
+ 【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
187
+ 【返回值】时间范围内,子表某字段的最大值
188
+ 【示例】
189
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
190
+ 【需求】获取2022-10-01到2022-10-07时间段内,哪一天的出差费用money最大
191
+ 【举例】时间范围内取最大值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"AvgValueOfPeriod",name:"时间范围内取平均值",params:[{key:"table",name:"主表.子表",type:"string"},{key:"timeProp",name:"比较时间字段",type:"string"},{key:"valueProp",name:"取值字段",type:"string"},{key:"startTime",name:"起始时间",type:"string"},{key:"endTime",name:"结束时间",type:"string"}],description:`【功能】在指定时间范围内,取子表某字段的平均值(所有参数用""包起来)
192
+ 【参数】
193
+ 【table】主表.子表(链式结构)
194
+ 【timeProp】比较时间字段(字段类型应为时间类型)
195
+ 【valueProp】取值字段(字段类型应为数字类型)
196
+ 【startTime】起始时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
197
+ 【endTime】结束时间(支持'yyyy-MM-dd' 或 'yyyy-MM-dd hh:mm:ss')
198
+ 【返回值】时间范围内,子表某字段的平均值
199
+ 【示例】
200
+ 【场景】提交单据Order,单据包含差旅明细子表trips,子表包含出差费用money字段,出差日期date字段
201
+ 【需求】获取2022-10-01到2022-10-07时间段内,平均的出差费用money是多少
202
+ 【举例】时间范围内取平均值("Order.trips","date","money","2022-10-01","2022-10-07")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetSessionValue",name:"获取会话变量",params:[{key:"name",name:"名称",type:"string"}],description:`【功能】获取用户会话变量的值
203
+ 【参数】
204
+ 【name】会话变量名
205
+ 【返回值】对象(object)
206
+ 【示例】
207
+ 【举例】获取会话变量("会话变量一")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetContextParameter",name:"获取上下文变量",params:[{key:"name",name:"名称",type:"string"}],description:`【功能】获取上下文变量的值
208
+ 【参数】
209
+ 【name】上下文变量名
210
+ 【返回值】对象(object)
211
+ 【示例】
212
+ 【举例】获取上下文变量("上下文变量一")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetInjectedEntity",name:"根据注入名获取注入对象",params:[{key:"name",name:"注入名",type:"string"}],description:`【功能】获取运行时注入对象的实际对象(参数用""包起来),不支持获取属性
213
+ 【参数】
214
+ 【name】注入名
215
+ 【返回值】对象(object)
216
+ 【示例】
217
+ 【举例】根据注入名获取注入对象("注入名")`,type:"Analytical",keyFront:"DefaultFunction",className:""},{key:"GetChainedPropertyValue",name:"根据属性名获取属性值",params:[{key:"property",name:"属性名",type:"string"}],description:`【功能】:获取运行时注入属性的实际值(参数用""包起来)
218
+ 【参数】
219
+ 【property】属性名
220
+ 【返回值】对象(object)
221
+ 【示例】
222
+ 【举例】根据属性名获取属性值("属性名")`,type:"Analytical",keyFront:"DefaultFunction",className:""}]},datetime:{name:"时间",items:[{key:"DayDifference",name:"天数差",params:[{key:"date1",name:"时间一",type:"obj"},{key:"date2",name:"时间二",type:"obj"}],description:`【功能】计算两个时间的天数差,计算时以年月日为准,自动忽略时分秒。时间一若早于时间二,返回正数;若晚于时间二,返回负数
223
+ 【参数】
224
+ 【date1】时间一
225
+ 【date2】时间二
226
+ 【返回值】两个日期的天数差
227
+ 【示例】
228
+ 【示例一】天数差("2024-01-01","2024-01-11")
229
+ 【返回值】10
230
+ 【示例一】天数差("2024-01-11","2024-01-01")
231
+ 【返回值】-10`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddDays",name:"增加天数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加天数",type:"int"}],description:`【功能】:在指定日期时间上增加指定天数
232
+ 【返回值类型】:日期时间(DateTime)
233
+ 【示例】:增加天数("2019-01-30T10:00:00+08:00",2)【返回值】:2019-02-01T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddYears",name:"增加年数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加年数",type:"int"}],description:`【功能】:在指定日期时间上增加指定年数
234
+ 【返回值类型】:日期时间(DateTime)
235
+ 【示例】:增加年数("2019-01-30T10:00:00+08:00",2)【返回值】:2021-01-30T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DateTimeAddMonths",name:"增加月数",params:[{key:"date",name:"日期时间",type:"string"},{key:"value",name:"增加月数",type:"int"}],description:`【功能】:在指定日期时间上增加指定的月数
236
+ 【返回值类型】:日期时间(DateTime)
237
+ 【示例】:增加月数("2019-01-30T10:00:00+08:00",1)【返回值】:2019-02-28T10:00+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetFirstDayOfMonth",name:"日期所在月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:获取指定日期时间所在月的第一天的日期
238
+ 【返回值类型】:日期时间(DateTime)
239
+ 【示例】:日期所在月第一天("2019-01-30T10:00:00+08:00")【返回值】:2019-01-01`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetLastDayOfMonth",name:"日期所在月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:获取指定日期时间所在月的最后一天的日期
240
+ 【返回值类型】:日期时间(DateTime)
241
+ 【示例】:日期所在月最后一天("2019-01-30T10:00:00+08:00")【返回值】:2019-01-31`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetDateTimeNow",name:"当前日期时间",params:[],description:`【功能】:获取当前的日期时间
242
+ 【返回值类型】:日期时间(DateTime)
243
+ 【示例】:当前日期时间()【返回值】:2019-01-30T12:00:00.000+08:00`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"CompareDate",name:"比较两个时间",params:[{key:"date1",name:"日期时间一",type:"string"},{key:"date2",name:"日期时间二",type:"string"}],description:`【功能】:比较两个时间值,并返回一个整数
244
+ 【返回值类型】:数值(int32)日期1早于日期2,返回-1;日期1等于日期2,返回0;日期1晚于日期2,返回1
245
+ 【示例】:比较两个时间("2019-01-30T10:00:00+08:00","2019-02-01T10:00:00+08:00")【返回值】:-1`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FormatDate",name:"格式化当前日期",params:[{key:"format",name:"格式",type:"string"}],description:`【功能】:使用指定的格式将当前日期时间值转换为其等效的字符串表示形式
246
+ 【返回值类型】:字符串(String)
247
+ 【示例】:格式化当前日期("yyyy-MM-dd HH:mm:ss")【返回值】:"2019-01-30 01:00:00"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FormatDefineDate",name:"格式化指定日期",params:[{key:"format",name:"格式",type:"string"},{key:"date",name:"日期时间",type:"string"}],description:`【功能】:使用指定的格式将指定的日期时间值转换为其等效的字符串表示形式
248
+ 【返回值类型】:字符串(String)
249
+ 【示例】:格式化指定日期("yyyy-MM-dd HH:mm:ss","2019-01-30 01:00:00")【返回值】:"2019-01-30 01:00:00"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Today",name:"今天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的今天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的今天
250
+ 【返回值类型】:字符串(String)
251
+ 【示例】:今天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-30"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Yesterday",name:"昨天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的昨天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的昨天
252
+ 【返回值类型】:字符串(String)
253
+ 【示例】:昨天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-29"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"Tomorrow",name:"明天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的明天,格式为"yyyy-MM-dd"形式,无参数则默认返回当前日期的明天
254
+ 【返回值类型】:字符串(String)
255
+ 【示例】:明天("2019-01-30T10:00:00+08:00")【返回值】:"2019-01-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisYear",name:"本年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年,格式为"yyyy"形式,无参数则默认返回当前日期的本年
256
+ 【返回值类型】:字符串(String)
257
+ 【示例】:本年("2019-01-30T10:00:00+08:00")【返回值】:"2019"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastYear",name:"去年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的去年,格式为"yyyy"形式,无参数则默认返回当前日期的去年
258
+ 【返回值类型】:字符串(String)
259
+ 【示例】:去年("2019-01-30T10:00:00+08:00")【返回值】:"2018"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextYear",name:"明年",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的明年,格式为"yyyy"形式,无参数则默认返回当前日期的明年
260
+ 【返回值类型】:字符串(String)
261
+ 【示例】:明年("2019-01-30T01:00:00+08:00")【返回值】:"2020"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisMonth",name:"本月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月,格式为"MM"形式,无参数则默认返回当前日期的本月
262
+ 【返回值类型】:字符串(String)
263
+ 【示例】:本月("2019-01-30T01:00:00+08:00")【返回值】:"1"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastMonth",name:"上月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月,格式为"MM"形式,无参数则默认返回当前日期的上月
264
+ 【返回值类型】:字符串(String)
265
+ 【示例】:上月("2019-02-30 01:00:00")【返回值】:"1"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextMonth",name:"下月",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月,格式为"MM"形式,无参数则默认返回当前日期的下月
266
+ 【返回值类型】:字符串(String)
267
+ 【示例】:下月("2019-01-30T01:00:00+08:00")【返回值】:"2"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"ThisWeek",name:"本周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期在本年的第几周,格式为"ww"形式,无参数则默认返回当前日期在本年的第几周
268
+ 【返回值类型】:字符串(String)
269
+ 【示例】:本周("2019-01-30T01:00:00+08:00")【返回值】:"5"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastWeek",name:"上周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周,格式为"ww"形式,无参数则默认返回当前日期的上周
270
+ 【返回值类型】:字符串(String)
271
+ 【示例】:上周("2019-01-30T01:00:00+08:00")【返回值】:"4"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"NextWeek",name:"下周",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周,格式为"ww"形式,无参数则默认返回当前日期的下周
272
+ 【返回值类型】:字符串(String)
273
+ 【示例】:下周("2019-01-30T01:00:00+08:00")【返回值】:"6"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"DayOfWeek",name:"星期几",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期是本周的星期几,格式为"n",无参数则默认返回当前日期是本周的星期几
274
+ 【返回值类型】:字符串(String)
275
+ 【示例】:星期几("2019-01-30T01:00:00+08:00")【返回值】:"3"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfWeek",name:"本周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本周第一天
276
+ 【返回值类型】:字符串(String)
277
+ 【示例】:本周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-28"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfWeek",name:"本周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本周第一天
278
+ 【返回值类型】:字符串(String)
279
+ 【示例】:本周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-03"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastWeek",name:"上周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上周第一天
280
+ 【返回值类型】:字符串(String)
281
+ 【示例】:上周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-21"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastWeek",name:"上周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上周最后一天
282
+ 【返回值类型】:字符串(System.String)
283
+ 【示例】:上周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-27"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextWeek",name:"下周第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下周第一天
284
+ 【返回值类型】:字符串(String)
285
+ 【示例】:下周第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-04"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextWeek",name:"下周最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下周最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下周最后一天
286
+ 【返回值类型】:字符串(String)
287
+ 【示例】:下周最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-10"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfMonth",name:"本月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本月第一天
288
+ 【返回值类型】:字符串(String)
289
+ 【示例】:本月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfMonth",name:"本月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本月最后一天
290
+ 【返回值类型】:字符串(String)
291
+ 【示例】:本月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastMonth",name:"上月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上月第一天
292
+ 【返回值类型】:字符串(String)
293
+ 【示例】:上月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastMonth",name:"上月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上月最后一天
294
+ 【返回值类型】:字符串(String)
295
+ 【示例】:上月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextMonth",name:"下月第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下月第一天
296
+ 【返回值类型】:字符串(String)
297
+ 【示例】:下月第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextMonth",name:"下月最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下月最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下月最后一天
298
+ 【返回值类型】:字符串(String)
299
+ 【示例】:下月最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-02-28"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfYear",name:"本年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本年第一天
300
+ 【返回值类型】:字符串(String)
301
+ 【示例】:本年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfYear",name:"本年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的本年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的本年最后一天
302
+ 【返回值类型】:字符串(String)
303
+ 【示例】:本年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2019-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfLastYear",name:"上年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上年第一天
304
+ 【返回值类型】:字符串(String)
305
+ 【示例】:上年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfLastYear",name:"上年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的上年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的上年最后一天
306
+ 【返回值类型】:字符串(String)
307
+ 【示例】:上年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2018-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"FirstDayOfNextYear",name:"下年第一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下年第一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下年第一天
308
+ 【返回值类型】:字符串(String)
309
+ 【示例】:下年第一天("2019-01-30T01:00:00+08:00")【返回值】:"2020-01-01"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"LastDayOfNextYear",name:"下年最后一天",params:[{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定日期的下年最后一天,格式为"yyyy-MM-dd",无参数则默认返回当前日期的下年最后一天
310
+ 【返回值类型】:字符串(String)
311
+ 【示例】:下年最后一天("2019-01-30T01:00:00+08:00")【返回值】:"2020-12-31"`,type:"DateTime",keyFront:"DefaultFunction",className:""},{key:"GetDate",name:"返回指定格式的日期",params:[{key:"format",name:"格式",type:"string"},{key:"date",name:"日期时间",type:"string"}],description:`【功能】:返回指定形式的日期,无参数则默认返回当前日期的指定格式日期
312
+ 【返回值类型】:字符串(String)
313
+ DD:今天 LD:昨天 ND:明天 YY:本年 LY:上年 NY:下年 MM:本月 LM:上月 NM:下月
314
+ WD:星期几 WW:本周 LW:上周 NW:下周 FDW:本周首日 LDW:本周尾日
315
+ FDLW:上周首日 LDLW:上周尾日 FDNW:下周首日 LDNW:下周尾日
316
+ FDM:本月首日 LDM:本月尾日 FDLM:上月首日 LDLM:上月尾日 FDNM:下月首日 LDNM:下月尾日
317
+ FDY:本年首日 LDY:本年尾日 FDLY:上年首日 LDLY:上年尾日 FDNY:下年首日 LDNY:下年尾日
318
+ 【示例】:返回指定格式的日期("LD","2019-01-30T01:00:00+08:00")【返回值】:"2019-01-29"`,type:"DateTime",keyFront:"DefaultFunction",className:""}]},string:{name:"字符",items:[{key:"SubString",name:"取子字符串",params:[{key:"data",name:"字符串",type:"str"},{key:"start",name:"起始位置",type:"int"},{key:"length",name:"长度",type:"int"}],description:`【功能】:从字符串中指定位置开始,截取指定长度的字符串并返回
319
+ 【返回值类型】:字符串(String)
320
+ 【示例】:取子字符串("ABCDEFG",2,3)【返回值】:"CDE"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Length",name:"取字符串长度",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:获取字符串的长度
321
+ 【返回值类型】:数值(Int32)
322
+ 【示例】:取字符串长度("ABCDEF")【返回值】:6`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Contains",name:"是否包含",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串中是否包含目标字符串
323
+ 【返回值类型】:布尔(Boolean)
324
+ 【示例】:是否包含(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotContains",name:"是否不包含",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串中是否不包含目标字符串
325
+ 【返回值类型】:布尔(Boolean)
326
+ 【示例】:是否不包含(salesorder.code,"表达式")【返回值】:true`,type:"String",keyFront:"DefaultFunction",className:""},{key:"StartsWith",name:"开头是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否以目标字符串开头
327
+ 【返回值类型】:布尔(Boolean)
328
+ 【示例】:开头是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotStartsWith",name:"开头不是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否不以目标字符串开头
329
+ 【返回值类型】:布尔(Boolean)
330
+ 【示例】:开头不是(salesorder.code,"表达式")【返回值】:true`,type:"String",keyFront:"DefaultFunction",className:""},{key:"EndsWith",name:"结尾是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否以目标字符串结尾
331
+ 【返回值类型】:布尔(Boolean)
332
+ 【示例】:结尾是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"NotEndsWith",name:"结尾不是",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:判断字符串是否不以目标字符串结尾
333
+ 【返回值类型】:布尔(Boolean)
334
+ 【示例】:结尾不是(salesorder.code,"表达式")【返回值】:false`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Replace",name:"字符串替换",params:[{key:"data",name:"字符串",type:"str"},{key:"oldVal",name:"被替换值",type:"str"},{key:"newVal",name:"替换值",type:"str"}],description:`【功能】:将字符串中的"被替换值"替换为"替换值"
335
+ 【返回值类型】:字符串(String)
336
+ 【示例】:字符串替换("123412","12","00")【返回值】:"003400"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"ToUpper",name:"转大写",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:将字符串转换为大写
337
+ 【返回值类型】:字符串(String)
338
+ 【示例】:转大写("abc")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"ToLower",name:"转小写",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:将字符串转换为小写
339
+ 【返回值类型】:字符串(String)
340
+ 【示例】:转小写("ABC")【返回值】:"abc"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"IndexOf",name:"首个匹配字符索引",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:在字符串中检索目标字符串,找到首个匹配的字符串并返回索引位置(从0开始)。如果未找到则返回-1,如果目标字符串为空则返回0,如果原字符串为null则返回-1
341
+ 【返回值类型】:数值(Int32)
342
+ 【示例】:首个匹配字符索引("12001234012","01")【返回值】:3
343
+ 【示例】:首个匹配字符索引("12002323","34")【返回值】:-1
344
+ 【示例】:首个匹配字符索引("120011","")【返回值】:0`,type:"String",keyFront:"DefaultFunction",className:""},{key:"LastIndexOf",name:"最后匹配字符索引",params:[{key:"data",name:"字符串",type:"str"},{key:"target",name:"目标字符串",type:"str"}],description:`【功能】:在字符串中检索目标字符串,找到最后一个匹配的字符串后返回索引位置(从0开始)。如果未找到则返回-1,如果目标字符串为空串则返回原字符串长度,如果原字符串为null则返回-1
345
+ 【返回值类型】:数值(Int32)
346
+ 【示例】:最后匹配字符索引("12001234012","01")【返回值】:8
347
+ 【示例】:最后匹配字符索引("12002323","34")【返回值】:-1
348
+ 【示例】:最后匹配字符索引("120011","")【返回值】:6`,type:"String",keyFront:"DefaultFunction",className:""},{key:"TrimStart",name:"删除头部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的头部空格并返回
349
+ 【返回值类型】:字符串(String)
350
+ 【示例】:删除头部空格(" ABC")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"TrimEnd",name:"删除尾部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的尾部空格并返回
351
+ 【返回值类型】:字符串(String)
352
+ 【示例】:删除尾部空格("ABC ")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Trim",name:"删除头尾部空格",params:[{key:"data",name:"字符串",type:"str"}],description:`【功能】:删除字符串的头尾部空格并返回
353
+ 【返回值类型】:字符串(String)
354
+ 【示例】:删除头尾部空格(" ABC ")【返回值】:"ABC"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"CreateGuid",name:"唯一标识符",params:[],description:`【功能】:获取唯一标识符Guid
355
+ 【返回值类型】:字符串(String)
356
+ 【示例】:唯一标识符()【返回值】:"7722A793-14DF-49CD-B7E7-DF4987YYD2"`,type:"String",keyFront:"DefaultFunction",className:""},{key:"Add",name:"字符串相加",params:[{key:"str1",name:"第一个字符串",type:"str"},{key:"str2",name:"第二个字符串",type:"str"}],description:`【功能】:将若干字符串拼接成一个新字符串,最多支持10个字符串拼接,最少2个;编辑器中默认插入两个,多个字符串可手动添加
357
+ 【返回值类型】:字符串(String)
358
+ 【示例】:字符串相加("Hello","World")【返回值】:"HelloWord"`,type:"String",keyFront:"DefaultFunction",className:""}]},math:{name:"数字",items:[{key:"NumberThousandSeparator",name:"数字千位分隔",params:[{key:"property",name:"数字类型字段",type:"int32"}],description:`【功能】对数字添加千位分割符,以逗号作为千位分隔符
359
+ 【参数】
360
+ 【property】字段(链式结构)
361
+ 【返回值】字符型
362
+ 【示例】
363
+ 【场景】提交单据Order,单据包含总费用totalCost
364
+ 【需求】优化总费用展示,对总费用添加千位分隔符
365
+ 【举例】数字千位分隔(Order.totalCost)
366
+ 【返回值】1,234,567.89`,type:"Math",keyFront:"DefaultFunction",className:""},{key:"abs",name:"绝对值",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数值的绝对值
367
+ 【返回值类型】:数值(Double)
368
+ 【示例】:绝对值(-1.5)【返回值】:1.5`,type:"Math",keyFront:"Math",className:""},{key:"round",name:"四舍五入",params:[{key:"value1",name:"数值",type:"double"},{key:"value2",name:"小数位数",type:"int32"}],description:`【功能】:根据小数位数精度,对数值四舍五入
369
+ 【value1】:数值
370
+ 【value2】:四舍五入小数位数
371
+ 【返回值类型】:数值(Double)
372
+ 【示例】:四舍五入(1.52,1)【返回值】:1.5`,type:"Math",keyFront:"DefaultFunction",className:""},{key:"random",name:"随机数",params:[],description:`【功能】:随机生成大于等于 0.0 且小于 1.0 的伪随机值
373
+ 【返回值类型】:数值(Double)
374
+ 【示例】:随机数()【返回值】:0.624508349393`,type:"Math",keyFront:"Math",className:""},{key:"sin",name:"正弦",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数字的正弦值
375
+ 【返回值类型】:数值(Double)一个以弧度表示的角
376
+ 【示例】:正弦(1)【返回值】:0.84187098`,type:"Math",keyFront:"Math",className:""},{key:"cos",name:"余弦",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回一个数字的余弦值
377
+ 【返回值类型】:数值(Double)一个以弧度表示的角
378
+ 【示例】:余弦(3)【返回值】:-0.9899924`,type:"Math",keyFront:"Math",className:""},{key:"ceil",name:"向上舍入",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回大于或等于函数参数,并且与之最接近的整数
379
+ 【返回值类型】:数值(Int32)
380
+ 【示例】:向上舍入(3.2)【返回值】:4`,type:"Math",keyFront:"Math",className:""},{key:"floor",name:"向下舍入",params:[{key:"value",name:"数值",type:"double"}],description:`【功能】:返回小于或等于函数参数,并且与之最接近的整数
381
+ 【返回值类型】:数值(Int32)
382
+ 【示例】:向下舍入(3.2)【返回值】:3`,type:"Math",keyFront:"Math",className:""},{key:"bankerRound",name:"银行家舍入",params:[{key:"value1",name:"数值",type:"double"},{key:"value2",name:"小数位数",type:"int32"}],description:`【功能】:使用银行家舍入标准,把指定数字舍入为最接近的数字
383
+ 【value1】:舍入数值
384
+ 【value2】:舍入小数位数
385
+ 【返回值类型】:数值(Double)
386
+ 【示例】:银行家舍入(36.124,2)【返回值】:36.12`,type:"Math",keyFront:"DefaultFunction",className:""}]},translate:{name:"转换",items:[{key:"ToStringX",name:"转字符串",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换为字符串
387
+ 【返回值类型】:字符串(String)
388
+ 【示例】:转字符串(123)【返回值】:"123"`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToDateTime",name:"转日期时间",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成日期时间
389
+ 【返回值类型】:日期时间(OffsetDateTime)
390
+ 【示例】:转日期时间("2019-01-30T10:00:00+08:00")【返回值】: 2019-01-30T10:00+08:00`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToBoolean",name:"转布尔值",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成等效的布尔值
391
+ 【返回值类型】:布尔值(Boolean)
392
+ 【示例】:转布尔值("True")【返回值】:true`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToBigDecimal",name:"转数值",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成十进制数值
393
+ 【返回值类型】:十进制数值(BigDecimal)
394
+ 【示例】:转数值("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToCustomBigDecimal",name:"转自定义精度数值",params:[{key:"obj",name:"转换值",type:"object"},{key:"number",name:"小数位数",type:"int"}],description:`【功能】:将转换值转换成指定精度的十进制数值
395
+ 【返回值类型】:十进制数值(BigDecimal)
396
+ 【示例】:转自定义精度数值("40.2,2")【返回值】:40.20`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToDouble",name:"转双精度浮点数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成双精度浮点数
397
+ 【返回值类型】:双精度浮点数(Double)
398
+ 【示例】:转双精度浮点数("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToFloat",name:"转单精度浮点数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成单精度浮点数
399
+ 【返回值类型】:单精度浮点数(Float)
400
+ 【示例】:转单精度浮点数("40.23")【返回值】:40.23`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToByte",name:"转8位无符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成8位无符号整数
401
+ 【返回值类型】:8位无符号整数(Byte)
402
+ 【示例】:转8位无符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToInt16",name:"转16位有符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成16位有符号整数
403
+ 【返回值类型】:16位有符号整数(Int16)
404
+ 【示例】:转16位有符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToInt32",name:"转32位有符号整数",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成32位有符号整数
405
+ 【返回值类型】:32位有符号整数(Int32)
406
+ 【示例】:转32位有符号整数("10")【返回值】:10`,type:"Translate",keyFront:"DefaultFunction",className:""},{key:"ToChineseMoney",name:"转中文大写金额",params:[{key:"obj",name:"转换值",type:"object"}],description:`【功能】:将转换值转换成中文大写金额
407
+ 【返回值类型】:字符串(String)
408
+ 【示例】:转中文大写金额(40.23)【返回值】:"肆拾元零贰角叁分"`,type:"Translate",keyFront:"DefaultFunction",className:""}]},advanced:{name:"高级",items:[{key:"if",name:`if() {
409
+
410
+ }`,params:[],description:"if条件成立,执行括号中内容",type:"Advanced",keyFront:"",className:""},{key:"if else",name:`if() {
411
+
412
+ } else {
413
+
414
+ }`,params:[],description:"if条件成立,执行括号中内容;否则执行else中内容",type:"Advanced",keyFront:"",className:""},{key:"for",name:`for(;;)
415
+ {
416
+
417
+ }`,params:[],description:"for循环:示例:for(var i=0;i<5;i++){}",type:"Advanced",keyFront:"",className:""},{key:"return",name:"return ;",params:[],description:"返回值",type:"Advanced",keyFront:"",className:""},{key:"var",name:"var ",params:[],description:"变量定义",type:"Advanced",keyFront:"",className:""},{key:"true",name:"true ",params:[],description:"正确",type:"Advanced",keyFront:"",className:""},{key:"false",name:"false ",params:[],description:"错误",type:"Advanced",keyFront:"",className:""}]}};function ht(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function Me(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),a.push.apply(a,o)}return a}function Oe(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?Me(Object(a),!0).forEach(function(o){ht(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Me(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function gt(e,n){if(e==null)return{};var a={},o=Object.keys(e),l,i;for(i=0;i<o.length;i++)l=o[i],!(n.indexOf(l)>=0)&&(a[l]=e[l]);return a}function vt(e,n){if(e==null)return{};var a=gt(e,n),o,l;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(l=0;l<i.length;l++)o=i[l],!(n.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}function bt(e,n){return kt(e)||Ct(e,n)||wt(e,n)||xt()}function kt(e){if(Array.isArray(e))return e}function Ct(e,n){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var a=[],o=!0,l=!1,i=void 0;try{for(var s=e[Symbol.iterator](),r;!(o=(r=s.next()).done)&&(a.push(r.value),!(n&&a.length===n));o=!0);}catch(u){l=!0,i=u}finally{try{!o&&s.return!=null&&s.return()}finally{if(l)throw i}}return a}}function wt(e,n){if(e){if(typeof e=="string")return Ve(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);if(a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set")return Array.from(e);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return Ve(e,n)}}function Ve(e,n){(n==null||n>e.length)&&(n=e.length);for(var a=0,o=new Array(n);a<n;a++)o[a]=e[a];return o}function xt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
418
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ft(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function Be(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),a.push.apply(a,o)}return a}function Ee(e){for(var n=1;n<arguments.length;n++){var a=arguments[n]!=null?arguments[n]:{};n%2?Be(Object(a),!0).forEach(function(o){Ft(e,o,a[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):Be(Object(a)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(a,o))})}return e}function Tt(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return function(o){return n.reduceRight(function(l,i){return i(l)},o)}}function oe(e){return function n(){for(var a=this,o=arguments.length,l=new Array(o),i=0;i<o;i++)l[i]=arguments[i];return l.length>=e.length?e.apply(this,l):function(){for(var s=arguments.length,r=new Array(s),u=0;u<s;u++)r[u]=arguments[u];return n.apply(a,[].concat(l,r))}}}function ce(e){return{}.toString.call(e).includes("Object")}function St(e){return!Object.keys(e).length}function le(e){return typeof e=="function"}function Nt(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function Mt(e,n){return ce(n)||J("changeType"),Object.keys(n).some(function(a){return!Nt(e,a)})&&J("changeField"),n}function Ot(e){le(e)||J("selectorType")}function Vt(e){le(e)||ce(e)||J("handlerType"),ce(e)&&Object.values(e).some(function(n){return!le(n)})&&J("handlersType")}function Bt(e){e||J("initialIsRequired"),ce(e)||J("initialType"),St(e)&&J("initialContent")}function Et(e,n){throw new Error(e[n]||e.default)}var Dt={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},J=oe(Et)(Dt),ue={changes:Mt,selector:Ot,handler:Vt,initial:Bt};function Pt(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};ue.initial(e),ue.handler(n);var a={current:e},o=oe(Lt)(a,n),l=oe(It)(a),i=oe(ue.changes)(e),s=oe(jt)(a);function r(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(g){return g};return ue.selector(d),d(a.current)}function u(d){Tt(o,l,i,s)(d)}return[r,u]}function jt(e,n){return le(n)?n(e.current):n}function It(e,n){return e.current=Ee(Ee({},e.current),n),n}function Lt(e,n,a){return le(n)?n(e.current):Object.keys(a).forEach(function(o){var l;return(l=n[o])===null||l===void 0?void 0:l.call(n,e.current[o])}),a}var Rt={create:Pt},zt={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function Ht(e){return function n(){for(var a=this,o=arguments.length,l=new Array(o),i=0;i<o;i++)l[i]=arguments[i];return l.length>=e.length?e.apply(this,l):function(){for(var s=arguments.length,r=new Array(s),u=0;u<s;u++)r[u]=arguments[u];return n.apply(a,[].concat(l,r))}}}function At(e){return{}.toString.call(e).includes("Object")}function Wt(e){return e||Pe("configIsRequired"),At(e)||Pe("configType"),e.urls?($t(),{paths:{vs:e.urls.monacoBase}}):e}function $t(){console.warn(De.deprecation)}function qt(e,n){throw new Error(e[n]||e.default)}var De={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
419
+ You are using deprecated way of configuration.
420
+
421
+ Instead of using
422
+ monaco.config({ urls: { monacoBase: '...' } })
423
+ use
424
+ monaco.config({ paths: { vs: '...' } })
425
+
426
+ For more please check the link https://github.com/suren-atoyan/monaco-loader#config
427
+ `},Pe=Ht(qt)(De),Yt={config:Wt},Ut=function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return function(l){return a.reduceRight(function(i,s){return s(i)},l)}};function je(e,n){return Object.keys(n).forEach(function(a){n[a]instanceof Object&&e[a]&&Object.assign(n[a],je(e[a],n[a]))}),Oe(Oe({},e),n)}var Gt={type:"cancelation",msg:"operation is manually canceled"};function be(e){var n=!1,a=new Promise(function(o,l){e.then(function(i){return n?l(Gt):o(i)}),e.catch(l)});return a.cancel=function(){return n=!0},a}var Xt=Rt.create({config:zt,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ie=bt(Xt,2),ie=Ie[0],de=Ie[1];function Kt(e){var n=Yt.config(e),a=n.monaco,o=vt(n,["monaco"]);de(function(l){return{config:je(l.config,o),monaco:a}})}function _t(){var e=ie(function(n){var a=n.monaco,o=n.isInitialized,l=n.resolve;return{monaco:a,isInitialized:o,resolve:l}});if(!e.isInitialized){if(de({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),be(ke);if(window.monaco&&window.monaco.editor)return Le(window.monaco),e.resolve(window.monaco),be(ke);Ut(Jt,Qt)(en)}return be(ke)}function Jt(e){return document.body.appendChild(e)}function Zt(e){var n=document.createElement("script");return e&&(n.src=e),n}function Qt(e){var n=ie(function(o){var l=o.config,i=o.reject;return{config:l,reject:i}}),a=Zt("".concat(n.config.paths.vs,"/loader.js"));return a.onload=function(){return e()},a.onerror=n.reject,a}function en(){var e=ie(function(a){var o=a.config,l=a.resolve,i=a.reject;return{config:o,resolve:l,reject:i}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(a){Le(a),e.resolve(a)},function(a){e.reject(a)})}function Le(e){ie().monaco||de({monaco:e})}function tn(){return ie(function(e){var n=e.monaco;return n})}var ke=new Promise(function(e,n){return de({resolve:e,reject:n})}),Ce={config:Kt,init:_t,__getMonacoInstance:tn};const nn=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 l=null;const i=t.ref(e.modelValue);async function s(){return fetch(e.configPath).then(C=>C.json())}async function r(){if(a.value&&!l){const C=await s(),{vsPath:m}=C;Ce.config({paths:{vs:window.location.origin+m}}),Ce.config({"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),Ce.init().then(c=>{o.value=c,l=c.editor.create(a.value,{value:i.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,C=>{i.value=C,l==null||l.setValue(C)});const u=t.ref(),d=new ResizeObserver(C=>{l==null||l.layout();const{width:m,height:c}=C[0].contentRect;u.value={width:`${m-1}px`,height:`${c}px`}});function g(){return l==null?void 0:l.getValue()}function b(C){const m=l.getSelection(),c=new o.value.Range(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn);l.executeEdits("insert-text",[{range:c,text:C,forceMoveMarkers:!0}])}t.onMounted(()=>{r(),a.value&&d.observe(a.value.parentElement)}),t.onBeforeUnmount(()=>{l&&l.dispose(),d&&a.value&&(d.unobserve(a.value),d.disconnect())});function h(C){l.setValue(C)}function x(){h("")}return n.expose({getContent:g,insertText:b,clearText:x,setContent:h}),()=>t.createVNode("div",{class:"expression-code-editor",style:u.value,ref:a},null)}}),an={dataSource:{type:Object,default:{}}},on={data:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:"name"},formatter:{type:Function},customRowStatus:{type:Object,default:null}},ln=t.defineComponent({name:"FEntitiesTree",props:on,emits:["dblclickNode"],setup(e,n){const a=t.ref(e.data),o=t.ref(),l=t.ref();function i(){let b=0;return document.querySelectorAll(".entity-variable .fv-grid-hierarchy-cell").forEach(x=>{x.style.width="auto";const C=x.scrollWidth;C>b&&(b=C)}),b}t.watch(()=>e.data,b=>{var h;a.value=b,(h=o.value)==null||h.updateDataSource(b)});const s={customRowStatus:e.customRowStatus},r=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]);function u({$event:b,node:h}){n.emit("dblclickNode",{$event:b,node:h})}function d(){const b=i();l.value={minWidth:`${b+10}px`}}function g({row:b}){t.nextTick(d)}return t.onMounted(()=>{t.nextTick(d)}),()=>t.createVNode("div",{class:"h-100 f-utils-fill",style:"overflow:auto",id:"entity-tree-view"},[t.createVNode(Ze,{ref:o,fit:!1,rowNumber:{enable:!1},data:a.value,idField:e.idField,columns:r.value,rowOption:s,columnOption:{fitColumns:!0,fitMode:"percentage"},onDblclickNode:u,style:l.value,autoHeight:!0,onExpandNode:g},null)])}}),rn=t.defineComponent({name:"entity-variable",props:an,emits:["variableItemDblClick","entityItemDblClick","fieldClick"],setup(e,n){const a=t.ref("dataEntity"),o=t.ref(e.dataSource),{entities:l,variables:i}=o.value,s=t.ref(""),r=t.ref((l==null?void 0:l.fields)||[]),u=(T,V)=>{T.stopPropagation(),n.emit("fieldClick",{$event:T,item:V.raw})},d=(T,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:D=>u(D,V),onDblclick:D=>D.stopPropagation()},[t.createVNode("span",{class:"f-icon f-icon-new-edit",style:"font-size: 12px;"},null)])])},g=t.ref({}),b=t.ref(),h=t.computed(()=>T=>({"list-group d-flex flex-column":!0,"f-utils-fill":a.value===T,expand:a.value===T,collapse:a.value!==T})),x=t.computed(()=>T=>({"f-icon f-icon-arrow-chevron-up":a.value!==T,"f-icon f-icon-arrow-chevron-down":a.value===T})),C=t.computed(()=>T=>({"functions-type d-flex flex-column":!0,open:g.value[T],closed:!g.value[T]})),m=t.computed(()=>T=>({"f-icon f-icon-arrow-chevron-down":g.value[T],"f-icon f-icon-arrow-chevron-right":!g.value[T]})),c=t.computed(()=>T=>{var V;return{"functions-item pl-2":!0,selected:((V=b.value)==null?void 0:V.key)===T.key}});function y(T,V){T.stopPropagation(),g.value=g.value||{},g.value[V]=!g.value[V]}function p(T,V){T.stopPropagation(),b.value=V}function w(T,V){n.emit("variableItemDblClick",{$event:T,item:V})}function S({$event:T,node:V}){n.emit("entityItemDblClick",{$event:T,item:V.data,entityCode:l==null?void 0:l.entityCode,parentCodes:V.data.parents.join(".")})}function f(){return t.createVNode(ln,{data:r.value,formatter:d,onDblclickNode:S},null)}function v(){if(i)return t.createVNode("ul",{class:"w-100 functions-list"},[Object.keys(i).map(T=>i[T].visible&&t.createVNode("li",{"variable-type":T,class:C.value(T)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:V=>{y(V,T)}},[t.createVNode("span",{class:m.value(T)},null),i[T].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[i[T].items.map(V=>t.createVNode("li",{class:c.value(V),onClick:B=>p(B,V),onDblclick:B=>w(B,V),title:`${V.name} [${V.key}]`},[V.name]))])]))])}function k(T,V){if(T.stopPropagation(),a.value===V){a.value="";return}a.value=V}t.onMounted(()=>{if(i){const T=Object.keys(i)[0];g.value[T]=!0}});function N(T,V){const B=T.children.map(R=>N(R,V)).filter(R=>R!==null);return T.data.name.toLowerCase().includes(V.toLowerCase())||T.data.bindingPath.toLowerCase().includes(V.toLowerCase())?{data:{...T.data},children:T.children}:B.length>0?{data:{...T.data},children:B}:null}function I(T,V){return T.map(B=>N(B,V)).filter(B=>B!==null)}function j(){const T=I((l==null?void 0:l.fields)||[],s.value);r.value=T}function O(){r.value=(l==null?void 0:l.fields)||[]}function P(T){T.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:h.value("dataEntity")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:T=>k(T,"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(pe.FButtonEdit,{class:"m-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入名称或编号,按回车查询",modelValue:s.value,"onUpdate:modelValue":T=>s.value=T,onClickButton:j,onClear:O,onKeyup:P},null)]),f()])]),t.createVNode("li",{class:h.value("variables")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:T=>k(T,"variables")},[t.createTextVNode("变量"),t.createVNode("span",{class:x.value("variables")},null)]),t.createVNode("div",{class:"data-area f-utils-fill"},[v()])])])])}}),sn={functionItems:{type:Array,default:[]},singleExpand:{type:Boolean,default:!0}},cn=t.defineComponent({name:"FExpressionEditor",props:sn,emits:["insertFunction","search"],setup(e,n){const a=t.ref(),o=t.ref(""),l=t.ref(),i=t.ref({}),s=t.ref(""),r="没有与搜索条件匹配的项",u=t.ref(e.functionItems),d=t.computed(()=>f=>e.singleExpand?{"functions-type d-flex flex-column":!0,open:o.value===f,closed:o.value!==f}:{"functions-type d-flex flex-column":!0,open:i.value[f],closed:!i.value[f]}),g=t.computed(()=>f=>e.singleExpand?{"f-icon f-icon-arrow-chevron-down":o.value===f,"f-icon f-icon-arrow-chevron-right":o.value!==f}:{"f-icon f-icon-arrow-chevron-down":i.value[f],"f-icon f-icon-arrow-chevron-right":!i.value[f]}),b=t.computed(()=>f=>{var v;return{"functions-item pl-2":!0,selected:((v=l.value)==null?void 0:v.key)===f.key}}),h=t.ref(Object.keys(u.value));t.watch(()=>e.functionItems,f=>{u.value=f,h.value=Object.keys(u.value),s.value&&(i.value=h.value.reduce((v,k)=>(v[k]=!0,v),{}))});function x(f){f||(f=o.value);const v=a.value.querySelector('li[function-type="'+f+'"] > div.functions-type-name');v&&(a.value.querySelector(".expression-left").scrollTop=0,v.scrollIntoViewIfNeeded?v.scrollIntoViewIfNeeded(!0):v.scrollIntoView({behavior:"smooth",block:"nearest"}))}function C(f){if(e.singleExpand){if(o.value===f){o.value="";return}o.value=f}else i.value=i.value||{},i.value[f]=!i.value[f]}function m(f,v){f.stopPropagation(),l.value=v}function c(f,v){f.stopPropagation(),n.emit("insertFunction",{$event:f,item:v})}t.watch(()=>o.value,(f,v,k)=>{if(f){const N=setTimeout(()=>{x(f)},200);k(()=>clearTimeout(N))}});function y(){n.emit("search",s.value)}function p(){n.emit("search","")}function w(f){f.key==="Enter"&&y()}function S(){return h.value.length?h.value.map(f=>t.createVNode("li",{"function-type":f,class:d.value(f)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:()=>{C(f)}},[t.createVNode("span",{class:g.value(f)},null),u.value[f].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[u.value[f].items.map(v=>{if(v.visible!==!1)return t.createVNode("li",{class:b.value(v),onClick:k=>m(k,v),onDblclick:k=>c(k,v)},[f==="advanced"?v.key:v.name])})])])):t.createVNode("li",{class:"empty-message"},[r])}return t.onMounted(()=>{o.value=h.value[0],i.value=h.value.reduce((f,v)=>(f[v]=o.value===v,f),{})}),()=>t.createVNode("div",{class:"d-flex f-utils-fill flex-column",ref:a},[t.createVNode(ne,{class:"flex-column expression-left"},{default:()=>[t.createVNode(_,{position:"top",minHeight:50,height:50,"custom-class":"position-relative d-flex align-items-center search-bar",resizable:!1},{default:()=>[t.createVNode(pe.FButtonEdit,{class:"w-100 mx-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入函数名称,按回车查询",modelValue:s.value,"onUpdate:modelValue":f=>s.value=f,onClickButton:y,onClear:p,onKeyup:w},null)]}),t.createVNode(_,{position:"center","custom-class":"layout-border"},{default:()=>[t.createVNode("ul",{class:"w-100 functions-list",style:"user-select: none"},[S()])]}),t.createVNode(_,{"custom-class":"position-relative",position:"bottom",minHeight:80},{default:()=>{var f;return[t.createVNode("textarea",{title:"函数说明",class:"h-100 w-100 function-remark p-1",disabled:!0},[(f=l.value)==null?void 0:f.description])]}})]})])}});function un(e){async function n(){return fetch(e.esprimaPath).then(s=>s.json())}async function a(){if(window.esprima==null){const s=await n(),{path:r}=s;return new Promise((u,d)=>{const g=document.createElement("script");g.type="text/javascript",g.src=r+"?v="+Date.now(),g.onload=u,g.onerror=d,document.head.appendChild(g)})}}function o(s){const r=[],u=window.esprima.tokenize(s);for(let h=0;h<u.length;h++)r.push(u[h].value);const d=[];for(let h=0;h<r.length;h++){const x=s.indexOf(r[h]);x!==-1?d.push(s.substring(0,x)):d.push(""),s=s.slice(x+r[h].length),h===r.length-1&&d.push(s)}const g=[],b=r.length;for(let h=0;h<b;h++)d[h]!==""&&g.push(d[h]),r[h]!==""&&g.push(r[h]),h===b-1&&d[h+1]!==""&&g.push(d[h+1]);return g}function l(s,r="key2name"){const u=new Map;if(!s)return u;let g=Object.values(s).map(b=>b.items).flat();for(;g.length>0;){const b=g.filter(h=>h.name===g[0].name);b.length>1?g.filter(h=>h.name===g[0].name).forEach(h=>{r==="key2name"?u.set(h.key,h.key+"_"+h.name):r==="name2key"&&u.set(h.key+"_"+h.name,h.key)}):r==="key2name"?u.set(b[0].key,b[0].name):r==="name2key"&&u.set(b[0].name,b[0].key),g=g.filter(h=>h.name!==g[0].name)}return u}a();async function i(s){return window.esprima?s():await a().then(()=>s())}return{loadEsprima:a,getTokens:o,getVariableMaps:l,runWithEsprima:i}}function dn(e,n,a){const o=t.ref(e.disabledFunctions),{getTokens:l,getVariableMaps:i,runWithEsprima:s}=un(e);function r(){const c=te.cloneDeep(n);if(o.value){let y=Object.keys(c);const{types:p,functions:w}=o.value;return p&&p.length&&(y=y.filter(S=>p.includes(S))),w&&w.length&&Object.values(c).forEach(S=>{S.items.forEach(f=>{w.includes(f.name)&&(f.visible=!1)})}),c}return c}function u(c){const y=n.analytical.items.find(p=>p.key==="GetContextParameter");if(y)return y.name+'("'+c.name+'")'}function d(c){if(!c||c.length===0)return"";const y=p=>{switch(p.type){case"string":return`"${p.name}"`;case"list":return`[${p.name}]`;default:return p.name}};return c.map(y).join(",")}function g(c){let y=c.name;return c.type.toLowerCase()!=="advanced"&&(y+="("+d(c.params)+")"),y}function b(c){return c==null?void 0:c.bindingPath}function h(c){if(!c)return"";const y=l(c),p=i(a,"name2key");for(let S=0;S<y.length;S++){let f=0;if(f===0&&p&&y[S].length>2&&y[S][0]==='"'&&y[S][y[S].length-1]==='"'){const v=y[S].substring(1,y[S].length-1);if(p.has(v)&&y[S-1]==="("&&y[S+1]===")"){const k=p.get(v);k!==void 0&&(y[S]=`"${k}"`,f=1)}}if(f===0){const v=Object.values(n).map(k=>k.items).flat();for(let k=0;k<v.length;k++)if(y[S]===v[k].name){y[S]=v[k].keyFront+"."+v[k].key,f=1;break}}}const w=y.join("");return JSON.stringify({expr:w,sexpr:""})}function x(c,y,p,w){let S="";const f=[];for(const v of y)v.keyFront==="Math"&&f.push(v.key);for(let v=0;v<c.length;v++){if(c[v]==="Math"&&c[v+1]==="."&&!f.includes(c[v+2])){S=S+c[v]+c[v+1]+c[v+2],v=v+2;continue}if(w.includes(c[v])&&c[v+1]==="."){v=v+1;continue}else{let k=0;if(k===0&&c[v].length>2&&c[v][0]==='"'&&c[v][c[v].length-1]==='"'){const N=c[v].substring(1,c[v].length-1);if(p.has(N)&&c[v-1]==="("&&c[v+1]===")"){const I=p.get(N);I!==void 0&&(S=S+`"${I}"`,k=1)}}if(k===0){for(let N=0;N<y.length;N++)if(c[v]===y[N].key&&y[N].type.toLowerCase()!=="advanced"){S=S+y[N].name,k=1;break}}k===0&&(S=S+c[v])}}return S}function C(c){if(!c)return"";const y=l(c),p=i(a,"key2name"),w=Object.values(n).map(f=>f.items).flat();return x(y,w,p,["DefaultFunction","Math","DefaultExtendFunctionProxy"])}async function m(c){return await s(()=>C(c))}return{resetFunctionItems:r,getFieldExpression:b,getFunctionExpression:g,getContextVariableExpression:u,getExpressionCodeValue:h,getExpressionTextValue:m}}function fn(e,n){const a=t.ref([]),o=te.cloneDeep(n.value),l=Object.values(o).map(r=>r.items).flat();function i(r){const u=te.cloneDeep(o);return Object.keys(u).forEach(d=>{const g=u[d].items.filter(b=>r.includes(b.key));g.length>0?u[d].items=g:delete u[d]}),u}function s(r){if(!r){n.value=o;return}const u=l.filter(d=>d.name.toLowerCase().includes(r.toLowerCase())).map(d=>d.key);n.value=i(u)}return{searchResultList:a,filterFunctions:i,onFunctionSearch:s}}const Re=t.defineComponent({name:"FExpressionEditor",props:tt,emits:[],setup(e,n){var O;const a=t.ref(),o=t.ref(e.validateMessage),l=t.ref(e.messageType),i=t.ref(e.modelValue),s=t.ref(),r=[{label:"提示",value:"info"},{label:"警告",value:"warning"},{label:"错误",value:"error"}],{getFunctionExpression:u,getContextVariableExpression:d,resetFunctionItems:g,getFieldExpression:b,getExpressionCodeValue:h,getExpressionTextValue:x}=dn(e,pt,e.variables),C=t.ref(g()),{onFunctionSearch:m}=fn(e,C);function c({$event:P,item:T}){var B;const V=u(T);(B=s.value)==null||B.insertText(V)}function y({$event:P,item:T}){var B;const V=d(T);(B=s.value)==null||B.insertText(V)}function p(P){return P.reduce((T,V)=>{var B;return T.push(V.data),(B=V.children)!=null&&B.length&&T.push(...p(V.children)),T},[])}const w=p(((O=e==null?void 0:e.entities)==null?void 0:O.fields)||[]);function S(P){return P.map(T=>{const V=w.find(B=>B.bindingPath===T);return V&&V.type==="entity"?`${T}[0]`:T}).join(".")}function f({$event:P,item:T,parentCodes:V,entityCode:B}){var M;const D=b(T);V=e.isServerSide?S(T.parents):V;let R=`${V}.${D}`;B===D&&(R=D),(M=s.value)==null||M.insertText(`${R}`)}function v({$event:P,item:T}){var B;const V=b(T);(B=s.value)==null||B.insertText(`${V}`)}function k(){var P;return(P=s.value)==null?void 0:P.getContent()}function N(){var T;const P=(T=s.value)==null?void 0:T.getContent();return{value:h(P),message:o.value,messageType:l.value}}const I=t.ref("");function j(){var P;(P=s.value)==null||P.clearText()}return t.onMounted(async()=>{if(i.value){const P=JSON.parse(i.value),{expr:T}=P;T&&(I.value=await x(T)||"")}}),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(ne,null,{default:()=>[t.createVNode(_,{position:"left",width:248,minWidth:130},{default:()=>[t.createVNode(cn,{functionItems:C.value,singleExpand:e.singleExpand,onInsertFunction:c,onSearch:m},null)]}),t.createVNode(_,{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(nn,{modelValue:I.value,"onUpdate:modelValue":P=>I.value=P,ref:s},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:r,modelValue:l.value,"onUpdate:modelValue":P=>l.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(_,{position:"right",width:258,minWidth:130},{default:()=>[t.createVNode(rn,{dataSource:{entities:e.entities,variables:e.variables},onVariableItemDblClick:y,onEntityItemDblClick:f,onFieldClick:v},null)]})]})])}}),mn={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}},yn={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},pn=t.defineComponent({name:"FOverlay",props:yn,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),l=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function i(r){n.emit("click"),r.preventDefault(),r.stopPropagation()}t.computed(()=>{const r=o.value;if(r){const u=r.getBoundingClientRect(),{left:d,top:g,height:b}=u;return{left:d,top:g+b}}return a.value});const s=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var r,u;return[t.createVNode("div",{class:"overlay-container",onClick:d=>i(d),style:l.value},[t.createVNode("div",{style:s.value},[(u=(r=n.slots).default)==null?void 0:u.call(r)])])]}})}});function hn(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function gn(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),l=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const i=hn(e);return()=>t.createVNode(pn,{"popup-content-position":e.popupPosition,host:e.host,onClick:l,backgroundColor:e.backgroundColor},{default:()=>[i&&i()]})}}),document.body.appendChild(n),a.mount(n),a}class vn{static show(n){return gn(n)}}const bn={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},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},host:{type:Object,default:"body"},isMessager:{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 l=parseInt(o[4],10),i=parseInt(o[5],10);return{x:l,y:i}}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 l=parseInt(o.getPropertyValue("left"),10),i=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(l)?0:l,a.y=isNaN(i)?0:i}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 Z{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new Z(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 Z(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function kn(e,n){const a=t.ref(),o=t.ref(),l=t.ref(),i=t.ref(),s=t.ref(),r=t.ref(),u=t.ref(),d=t.ref(),g=t.ref(),b=t.ref(),h=t.ref(),x=t.ref(e.resizeable),C=t.ref(),m=t.ref(e.draggable),c=t.ref(!1);function y(){const M=o.value||document.body,E=window.getComputedStyle(M);if(!E||!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 $=E.getPropertyValue("position");z.width=M.clientWidth,z.height=M.clientHeight,z.pr=parseInt(E.getPropertyValue("padding-right"),10),z.pb=parseInt(E.getPropertyValue("padding-bottom"),10),z.position=E.getPropertyValue("position"),$==="static"&&(M.style.position="relative"),z.translateX=A.x,z.translateY=A.y,b.value=z}function p(M){if(a.value){i.value=Z.getCurrent(a.value),s.value=W.getCurrent(a.value),r.value=i.value?Z.copy(i.value):null,u.value=s.value?W.copy(s.value):null,y();const E=M.target.getAttribute("type")||"";d.value={n:!!E.match(/n/),s:!!E.match(/s/),w:!!E.match(/w/),e:!!E.match(/e/)}}}function w(){var M,E,A,z;if(a.value){const $=a.value;d.value&&((d.value.n||d.value.s)&&((M=r.value)!=null&&M.height)&&($.style.height=r.value.height+"px"),(d.value.w||d.value.e)&&((E=r.value)!=null&&E.width)&&($.style.width=r.value.width+"px"),u.value&&((A=u.value)!=null&&A.x&&($.style.left=u.value.x+"px"),(z=u.value)!=null&&z.y&&($.style.top=u.value.y+"px")))}}function S(){const M=e.minHeight?e.minHeight:1,E=e.minWidth?e.minWidth:1;r.value&&u.value&&d.value&&i.value&&(r.value.height<M&&(r.value.height=M,d.value.n&&s.value&&(u.value.y=s.value.y+(i.value.height-M))),r.value.width<E&&(r.value.width=E,d.value.w&&s.value&&(u.value.x=s.value.x+(i.value.width-E))),e.maxHeight&&r.value.height>e.maxHeight&&(r.value.height=e.maxHeight,s.value&&d.value.n&&(u.value.y=s.value.y+(i.value.height-e.maxHeight))),e.maxWidth&&r.value.width>e.maxWidth&&(r.value.width=e.maxWidth,d.value.w&&s.value&&(u.value.x=s.value.x+(i.value.width-e.maxWidth))))}function f(){if(o.value){const M=b.value;if(u.value&&r.value&&d.value&&i.value){const E=M.width-M.pr-M.deltaL-M.translateX-u.value.x,A=M.height-M.pb-M.deltaT-M.translateY-u.value.y;d.value.n&&u.value.y+M.translateY<0&&s.value&&(u.value.y=-M.translateY,r.value.height=i.value.height+s.value.y+M.translateY),d.value.w&&u.value.x+M.translateX<0&&s.value&&(u.value.x=-M.translateX,r.value.width=i.value.width+s.value.x+M.translateX),r.value.width>E&&(r.value.width=E),r.value.height>A&&(r.value.height=A)}}}function v(M){if(!l.value||!i.value||!s.value||!d.value)return;M.subtract(l.value);const E=M.x,A=M.y;d.value.n?(u.value.y=s.value.y+A,r.value.height=i.value.height-A):d.value.s&&(r.value.height=i.value.height+A),d.value.e?r.value.width=i.value.width+E:d.value.w&&(r.value.width=i.value.width-E,u.value.x=s.value.x+E),f(),S(),w()}function k(M){if(!g.value)return;const E=W.fromEvent(M);E&&v(E)}function N(){if(a.value){const{width:M,height:E,x:A,y:z}=a.value.getBoundingClientRect(),$=W.getTransformInfo(a.value);return{size:{width:M,height:E},position:{x:A-$.x,y:z-$.y}}}return null}function I(M){if(a.value){const E=N();h.value=E}l.value=void 0,i.value=null,s.value=null,r.value=null,u.value=null,d.value=null,g.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||m.value&&(document.body.click(),M.stopPropagation(),M.preventDefault(),l.value=W.fromEvent(M),g.value=M.target,p(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:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:E=>O(E)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:E=>O(E)},null)])}function T(M=!0){document.body.click();const E=o.value||document.body,A=Z.getCurrent(E),z=a.value;M&&z&&(C.value=N(),C.value.transform=z.style.transform),A&&z&&(r.value=A,r.value.height-=14,r.value.width-=14,z.style.height=r.value.height+"px",z.style.width=r.value.width+"px",z.style.left="7px",z.style.top="7px",z.style.transform="",h.value={size:r.value,position:{x:0,y:0}},m.value=!1,c.value=!0)}function V(){var M,E;if(document.body.click(),C.value){const A={width:C.value.size.width||0,height:C.value.size.height||0},z={x:(window.innerWidth-A.width)/2,y:(window.innerHeight-A.height)/2};(M=r.value)==null||M.set(A),(E=u.value)==null||E.set(z);const $=a.value;$.style.height=A.height+"px",$.style.width=A.width+"px",$.style.left=`${z.x}px`,$.style.top=`${z.y}px`,$.style.transform="",h.value={size:A,position:z},m.value=e.draggable,c.value=!1}}function B(){if(a.value){const M=Z.getCurrent(a.value);if(M){const{width:E,height:A}=M;a.value.style.left=`${(window.innerWidth-E)/2}px`,a.value.style.top=`${(window.innerHeight-A)/2}px`,a.value.style.transform=""}}}function D(){const M=()=>{c.value?T(!1):B(),document.body.click()};return window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}}const R=D();return{renderResizeBar:P,boundingElement:o,resizedEventParam:h,maximize:T,restore:V,allowDrag:m,isMaximized:c,unWindowResizeHandle:R,moveToCenter:B}}function Cn(e,n,a){const o=t.ref(),l=t.ref(e.draggable),i=t.ref(e.lockAxis),s=t.ref(),r=t.ref(),u=t.ref(!1),d=t.ref(new W(0,0)),g=t.ref(new W(0,0)),b=t.ref(new W(0,0)),h=t.ref(new W(0,0));t.watch(()=>a.value,k=>{s.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 C(){var j,O;let k=b.value.x+g.value.x,N=b.value.y+g.value.y;i.value==="x"?(k=((j=d.value)==null?void 0:j.x)||0,b.value.x=0):i.value==="y"&&(N=((O=d.value)==null?void 0:O.y)||0,b.value.y=0);const I=`translate3d(${Math.round(k)}px, ${Math.round(N)}px, 0px)`;o.value&&(o.value.style.transform=I),h.value.x=k,h.value.y=N}function m(){if(!r.value||!o.value)return null;const k=r.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||(b.value.y-=N.top-k.top),I.bottom||(b.value.y-=N.bottom-k.bottom),I.right||(b.value.x-=N.right-k.right),I.left||(b.value.x-=N.left-k.left),C(),I}function c(k){k&&(d.value&&k.subtract(d.value),b.value.set(k),C(),m())}function y(k){u.value&&l.value&&(k.stopPropagation(),k.preventDefault(),c(W.fromEvent(k,s.value)))}function p(){var k;u.value&&(u.value=!1,g.value.add(b.value),b.value.reset(),(k=o.value)==null||k.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",p))}function w(){!u.value&&s.value&&(u.value=!0,s.value.classList.add("ng-dragging"),document.addEventListener("mousemove",y),document.addEventListener("mouseup",p))}function S(){if(o.value){const k=W.getTransformInfo(o.value);g.value.set(k);return}g.value.reset()}function f(k){if(!a.value||k instanceof MouseEvent&&k.button===2)return;const N=k.target||k.srcElement;s.value!==void 0&&N&&!x(N,s.value)||l.value!==!1&&(document.body.click(),k.stopPropagation(),k.preventDefault(),d.value=W.fromEvent(k,o.value),S(),w())}function v(k,N,I){if(l.value&&N){if(k)s.value=k;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)s.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const j=N.querySelector(e.dragHandle);j&&(s.value=j)}}o.value=N,r.value=I,s.value?(s.value.classList.add("ng-draggable"),s.value.addEventListener("mousedown",f)):l.value=!1}}return{registerDraggle:v,resetTranslate:S}}function ze(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 wn(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=ze("Escape",l=>{n.emit("esc",{event:l.event,type:"esc"})}),{remove:o}):null}function xn(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=ze("Enter",l=>{n.emit("enter",{event:l.event,type:"enter"})}),{remove:o}):null}const re=t.defineComponent({name:"FModal",props:bn,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove"],setup(e,n){const a=t.ref(e.width||300),o=t.ref(e.height||200),l=t.ref(e.modelValue),i=t.ref(""),s=t.ref(e.class),r=t.ref(e.fitContent),u=t.ref(e.showHeader),d=t.ref(""),g=t.ref(e.showCloseButton),b=t.ref(e.showMaxButton),h=t.ref(!1),x=t.ref(e.dialogType),C=t.ref(e.src),m=t.ref(""),c=t.ref(e.showButtons),y=t.ref(e.title),p=t.ref(e.containment||null),w=t.ref();y.value==="错误提示"&&(y.value=X.LocaleService.getLocaleValue("messageBox.errorTitle"));const S=t.ref(!1);function f(F,L){const Y=L?"accept":"cancel";Promise.resolve().then(()=>{var q;return(q=e.beforeClose)==null?void 0:q.call(e,{closeType:Y})}).then(q=>{q&&(l.value=!1,n.emit("update:modelValue",!1),L!=null&&n.emit(L?"accept":"cancel"),n.emit("closed",F))})}const v=[{name:"cancel",text:X.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:F=>{f(F,!1)}},{name:"accept",text:X.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:F=>{f(F,!0)}}],k=t.ref(e.buttons&&e.buttons.length?e.buttons:v),N=t.computed(()=>!!d.value),I=t.computed(()=>!!c.value&&!!k.value),j=t.ref(),O=t.ref(),P=t.ref(!1),{renderResizeBar:T,maximize:V,restore:B,boundingElement:D,resizedEventParam:R,allowDrag:M,unWindowResizeHandle:E,moveToCenter:A}=kn(e),{registerDraggle:z}=Cn(e,n,M);function $(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function An(){const F=document.querySelectorAll(".farris-modal").length;(!F||F-1<=0)&&document.body.classList.remove("modal-open"),w.value&&w.value.classList.remove("show")}t.watch(()=>e.title,(F,L)=>{F!==L&&(y.value=F)}),t.watch(()=>e.modelValue,(F,L)=>{F!==L&&(l.value=F,l.value&&e.draggable&&t.nextTick(()=>{O.value&&!p.value&&(p.value=O.value.parentElement,D.value=p.value,z(j.value,O.value,D.value),A())}),F||(p.value&&(p.value=null),An())),l.value?S.value=$():(P.value=!1,M.value=e.draggable)}),t.watch(()=>e.showHeader,(F,L)=>{F!==L&&(u.value=F)}),t.watch(()=>e.showButtons,(F,L)=>{F!==L&&(c.value=F)}),t.watch(()=>R.value,(F,L)=>{const Y=F||{},q=L||{};JSON.stringify(Y)!==JSON.stringify(q)&&n.emit("resize",{newSize:F,oldSize:L,isMaximized:P.value})}),t.watch([()=>e.width,()=>e.height],(F,L)=>{(F[0]!==L[0]||F[1]!==L[1])&&(a.value=F[0]||500,o.value=F[1]||600)}),t.watch(()=>e.class,(F,L)=>{s.value=F});const ye=t.computed(()=>(l.value&&document.body.classList.add("modal-open"),l.value)),Wn=t.computed(()=>{var Y;const F={modal:!0,"farris-modal":!0,fade:!0};F["f-modal-fitContent"]=!!r.value,F.show=!!ye.value;const L=(Y=e.maskClass)==null?void 0:Y.split(" ");return L==null||L.reduce((q,G)=>(q[G]=!0,q),F),F}),$n=t.computed(()=>{var Y;const F={"modal-dialog":!0},L=(Y=s.value)==null?void 0:Y.split(" ");return L==null||L.reduce((q,G)=>(q[G]=!0,q),F),F}),Ye=()=>U.isMobilePhone()&&!e.isMessager,qn=t.computed(()=>{const F=document.documentElement.clientWidth,L=document.documentElement.clientHeight,Y=Math.min(a.value,F),q=r.value?"auto":`${Math.min(o.value,L-10)}px`,G={position:"absolute",top:`${(window.innerHeight-parseInt(q==="auto"?"0":q))/2}px`,left:`${(window.innerWidth-Y)/2}px`,width:`${Y}px`,height:q};return Ye()&&(G.top="0px",G.left="0px",G.width=`${window.innerWidth}px`,G.height=`${window.innerHeight}px`),e.mask||(G.pointerEvents="auto"),G}),Ue=t.ref(U.getMaxZIndex()||1050),Yn=t.computed(()=>{const F={display:"block",overflow:"hidden"};return e.mask||(F.pointerEvents="none",F.backgroundColor="transparent"),S.value&&(F.backgroundColor="transparent"),F.zIndex=Ue.value,F}),Un=t.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value,"is-mobile":Ye()})),Gn=t.computed(()=>{const F={display:u.value?"":"none"};return F["pointer-events"]=M.value?"auto":"none",F}),Xn=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:P.value})),Kn=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":x.value==="iframe","f-utils-fill":!0}));function _n(){return{height:`${e.footerHeight||60}px`}}const Jn=t.computed(()=>{const F={textAlgin:m.value},L=_n();return Object.assign(F,L)});function Ge(F){if(F==null||F.stopPropagation(),P.value){P.value=!1,B();return}V(),P.value=!0}async function Zn(F,L){F.handle&&await F.handle(L,F)&&n.emit("closed",L)}function Qn(F){F.width&&(a.value=F.width),F.height&&(o.value=F.height),F.buttons&&(k.value=F.buttons),F.title&&(y.value=F.title)}let xe=null,Fe=null;t.onBeforeMount(()=>{S.value=$()}),t.onMounted(()=>{O.value&&!p.value&&(p.value=O.value.parentElement,D.value=p.value,z(j.value,O.value,D.value)),ye.value&&document.body.classList.add("modal-open"),xe=wn(e,n),Fe=xn(e,n)}),t.onUnmounted(()=>{E&&E(),xe&&xe.remove(),Fe&&Fe.remove()}),n.expose({modalElementRef:O,updateModalOptions:Qn,close:f,maxDialog:Ge,isMaximized:P});function ea(){return t.createVNode("ul",null,[h.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),b.value&&t.createVNode("li",{onClick:Ge,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:Xn.value},null)]),g.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:F=>f(F,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function ta(){return t.createVNode("div",{class:"modal-footer",style:Jn.value},[k.value&&k.value.map(F=>{const L=t.ref(F.disabled);return t.createVNode("button",{name:F.name,type:"button",disabled:L.value,class:F.class+(F.iconClass?" btn-icontext":""),onClick:Y=>{Zn(F,Y)}},[!!F.iconClass&&t.createVNode("i",{class:F.iconClass},null),F.text])})])}function na(){return t.createVNode("div",{ref:j,class:"modal-header",style:Gn.value},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[N.value&&t.createVNode("span",{class:d.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[y.value])]),t.createVNode("div",{class:"actions"},[ea()])])}function aa(){return n.slots.footerTemplate?n.slots.footerTemplate():I.value&&ta()}function oa(F){if(F.stopPropagation(),e.allowClickMaskToClose){if(F.target!==w.value)return;f(F,!1)}}function la(){var F,L;return t.createVNode("div",{id:i.value,class:$n.value,style:qn.value,ref:O},[t.createVNode("div",{class:Un.value},[u.value&&na(),t.createVNode("div",{class:Kn.value},[(L=(F=n.slots).default)==null?void 0:L.call(F),x.value==="iframe"&&t.createVNode("iframe",{title:i.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:C.value},null)]),aa()]),!r.value&&O.value&&!P.value&&T(O.value)])}function ia(F){return F||"body"}return t.watchEffect(()=>{ye.value&&(Ue.value=U.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:ia(e.host)},{default:()=>[ye.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:w,class:Wn.value,style:Yn.value,onClick:oa},[la()])]})]})}});function He(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Fn(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,l){t.onUnmounted(()=>{document.body.removeChild(n)});const i=t.ref(),s=t.ref(e.class||""),r=t.ref(!!e.showButtons),u=t.ref(!!e.showHeader),d=t.ref(e.showCloseButton==null?!0:e.showCloseButton),g=t.ref(!0),b=t.ref(e.title||""),h=e.acceptCallback||(()=>{}),x=e.rejectCallback||(()=>{}),C=e.closedCallback||(w=>{}),m=e.resizeHandle||(w=>{}),c=e.stopMoveHandle||(w=>{}),y=He(e),p=w=>{g.value=!1,a.unmount(),C(w)};return t.onMounted(()=>{}),l.expose({modalRef:i}),()=>t.createVNode(re,{ref:i,class:s.value,modelValue:g.value,"onUpdate:modelValue":w=>g.value=w,title:b.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":u.value,"show-buttons":r.value,"show-close-button":d.value,"show-max-button":!1,onAccept:h,onCancel:x,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:p,onResize:m,onStopMove:c},{default:()=>[y&&y(a)]})}});return document.body.appendChild(n),a.use(X.LocaleService.i18n),a.mount(n),a}class Tn{constructor(n){K(this,"appContext",null);K(this,"modalRef",t.ref());K(this,"activeModalIndex",t.ref(0));K(this,"modalRefs",{});K(this,"isUseEscCloseModal",t.ref(!1));K(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:l}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),l<a&&(a=l-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return Fn(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)),l=t.ref(!0),i=o.value.acceptCallback||(()=>{}),s=o.value.rejectCallback||(()=>{}),r=o.value.closedCallback||((f,v)=>{}),u=o.value.resizeHandle||(f=>{}),d=n.stopMoveHandle||(f=>{});let g;const b=He(o.value),h=f=>{var k;l.value=!1;const v=(k=f==null?void 0:f.target)==null?void 0:k.classList.contains("modal_close");r(f,this.isUseEscCloseModal.value?"esc":v?"icon":"button")},x=f=>{h(f),g&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),g=null,this.modalRef.value=null,this.modalRefs){const v=Object.keys(this.modalRefs).map(k=>Number(k));v.length>0?this.activeModalIndex.value=Math.max(...v):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},C=f=>{var v;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((v=this.activeModalInstance.value)==null||v.close(f==null?void 0:f.event))},{width:m,height:c}=o.value,y=this.adaptToWindow(m||500,c||320);Object.assign(o.value,y);const p=()=>t.createVNode(re,t.mergeProps({ref:this.modalRef,modelValue:l.value,"onUpdate:modelValue":f=>l.value=f},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:i,onCancel:s,onClosed:x,onResize:u,onEsc:C,onStopMove:d}),{default:()=>[b&&b(this.app)]});return g=(f=>{const v=t.h(p,f);return v.appContext=this.appContext,t.render(v,a),v})({...o.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:f=>{o.value={...o.value,...f},g&&t.render(t.cloneVNode(g,{...o}),a)},destroy:x,modalRef:this.activeModalInstance,close:()=>this.close()}}}const Ae=Symbol("FModalService");re.install=e=>{e.component(re.name,re);const n=new Tn(e);e.provide(Ae,n),e.provide("FModalService",n)};function We(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let l=Promise.resolve(!0);if(o){const i=o(n.value);if(typeof i>"u")return l;typeof i=="boolean"?l=Promise.resolve(i):l=i}return l}return{judgeCanOpen:a}}function Sn(e,n,a,o,l){const i=t.ref(e.buttonBehavior),s=t.ref(e.popupOnInput),r=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:u}=We(e,l),d=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),g=t.inject(Ae,null),b=t.ref();async function h(m){if(await u()&&d.value){const c=!!n.slots.default;if(i.value==="Modal"){const y=e.modalOptions,p=g==null?void 0:g.open({...y,render:()=>n.slots.default&&n.slots.default()});b.value=p==null?void 0:p.modalRef}i.value==="Overlay"&&vn.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),c&&i.value==="Popup"&&o.togglePopup(!0),c&&s.value&&o.hidePopup(),n.emit("clickButton",{origin:m,value:e.modelValue})}}function x(m){n.emit("mouseEnterIcon",m)}function C(m){n.emit("mouseLeaveIcon",m)}return{buttonGroupClass:r,onClickButton:h,onMouseEnterButton:x,onMouseLeaveButton:C,modalRef:b}}function Nn(e,n,a,o,l,i){const s=t.ref(!1),r=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:u,hasClearClass:d}=i;function g(C){s.value=C,d.value=C}t.watch(l,()=>{g(!!l.value)});function b(C){const m=!e.readonly&&!e.disable&&e.editable,c=!e.editable;C.stopPropagation(),(m||c)&&(u(""),l.value="",g(!s.value),n.emit("clear"))}function h(C){if(r.value){if(!a.value){g(!1);return}!e.disable&&!e.readonly&&g(!0)}}function x(C){r.value&&g(!1)}return{enableClearButton:r,showClearButton:s,onClearValue:b,onMouseEnterTextBox:h,onMouseLeaveTextBox:x}}function Mn(e,n,a,o,l){const i=t.computed(()=>e.popupOnInput),s=t.computed(()=>e.popupOnFocus),{shouldPopupContent:r,closeAllPopover:u}=l,d=t.ref(!1),g=t.computed(()=>e.enableTitle?a.value:""),b=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),h=t.computed(()=>e.readonly||!e.editable),x=t.ref(!1),C=t.computed(()=>!e.disable&&x.value),m=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),c=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":C.value,"input-group--has-clear":e.enableClear&&d.value}));function y(O,P=!0){a.value=O,P&&(n.emit("change",O),n.emit("update:modelValue",O))}function p(O){r.value=!1,y(O,!0)}t.watch(()=>e.modelValue,O=>{a.value=O});function w(O){x.value=!1,n.emit("blur",O),O.stopPropagation()}function S(O){n.emit("click",O),u(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&l.togglePopup()}function f(O){!e.disable&&!e.readonly&&(x.value=!0,h.value||(n.emit("focus",O),s.value&&!r.value&&l.popup()))}function v(O){n.emit("input",O);const P=O.target.value;o.value=P,a.value!==P&&y(P,e.updateOn==="change"),i.value&&!r.value&&l.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"&&(i.value||s.value)&&l.hidePopup(),n.emit("keyup",O)}function j(O){const P=O.target.value;O.stopPropagation(),y(P)}return{hasFocusedTextBox:C,isTextBoxReadonly:h,textBoxClass:m,textBoxPlaceholder:b,textBoxTitle:g,inputGroupClass:c,hasClearClass:d,changeTextBoxValue:y,commitValue:p,onBlurTextBox:w,onClickTextBox:S,onFocusTextBox:f,onInput:v,onKeyDownTextBox:N,onKeyUpTextBox:I,onMouseDownTextBox:k,onTextBoxValueChange:j}}const Q="FarrisVue_PopoverInstancesKey";function On(e,n,a,o){const l=t.ref(),i=t.ref(!1),{judgeCanOpen:s}=We(e,o);t.watch(()=>l.value,(x,C)=>{window[Q]=window[Q]||new WeakMap,x?window[Q].set(a.value,x):window[Q].delete(a.value)});function r(){if(window[Q]){const x=window[Q];document.querySelectorAll(".f-button-edit,.v-popover").forEach(C=>{const m=x.get(C);m&&C!==a.value&&!a.value.closest(".popover-fitcontent")&&m.hide()})}}function u(){const x=l.value;x&&x.show(a.value)}async function d(x=!1){if(!!n.slots.default){if(!x&&!i.value&&!await s())return;i.value=!i.value,i.value&&(await t.nextTick(),u())}}async function g(x=!1){if(!!n.slots.default){if(!x&&!await s())return;i.value=!0,await t.nextTick(),u()}}function b(){i.value=!1}function h(){i.value=!0,t.nextTick(()=>{u()})}return{hidePopup:b,showPopup:h,popup:g,shouldPopupContent:i,togglePopup:d,popoverRef:l,closeAllPopover:r}}function Vn(e,n,a){const o=t.ref(),{isTextBoxReadonly:l,textBoxClass:i,textBoxPlaceholder:s,textBoxTitle:r,onBlurTextBox:u,onClickTextBox:d,onFocusTextBox:g,onInput:b,onKeyDownTextBox:h,onKeyUpTextBox:x,onMouseDownTextBox:C,onTextBoxValueChange:m}=a,c=t.ref(e.id),{uuid:y}=U.useGuid(),p=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})),c.value||(c.value="button-edit_"+y(8)),c.value=c.value+"-textbox"});const w=t.ref(!1),S=k=>{k.preventDefault(),w.value=!0},f=k=>{k.preventDefault(),w.value=!1,b(k)};function v(k){w.value||b(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:i.value,style:p.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:s.value,readonly:l.value,tabindex:e.tabIndex,title:r.value,type:e.inputType,value:n.value,onBlur:u,onChange:m,onClick:d,onFocus:g,onInput:v,onKeydown:h,onKeyup:x,onMousedown:C,onCompositionend:f,onCompositionstart:S},null)}function Bn(e,n,a){const o=t.ref(e.separator),l=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:i,onFocusTextBox:s,onBlurTextBox:r,onClickTextBox:u,textBoxPlaceholder:d}=a,g=t.computed(()=>n.value?n.value.split(o.value).map(C=>({name:C,selectable:!0})):[]);function b(C){i(C.map(m=>m.name).join(o.value),!0)}t.watch(()=>e.separator,C=>{o.value=C});const h=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([C,m],[c,y])=>{h.value=!C&&!m});function x(C){u(C)}return()=>t.createVNode(Qe,{tabindex:e.tabIndex,onFocus:s,onBlur:r,id:`${e.id}-tag-editor`,class:"form-control",placeholder:d.value,data:g.value,showClose:!l.value,showInput:!0,disable:l.value,onChange:b,onClick:x},null)}function En(e,n,a,o){const{buttonGroupClass:l,onClickButton:i,onMouseEnterButton:s,onMouseLeaveButton:r}=a,{enableClearButton:u,showClearButton:d,onClearValue:g}=o,b=t.ref(),h=te.debounce(C=>{i(C)},e.buttonBehavior==="Modal"?0:200),x=()=>{n.emit("beforeClearValue")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:l.value},[u.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:g,onMousedown:x},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,d.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:h,onMouseenter:s,onMouseleave:r},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:b,onClick:C=>h(C),onMouseenter:s,onMouseleave:r},null):null]),buttonHandleElement:b}}function Dn(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:l,popoverRef:i}=a,s=()=>{n.emit("shown")};return()=>t.createVNode(et,{id:`${e.id}-popover`,ref:i,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:l,onShown:s,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var r,u;return[(u=(r=n.slots).default)==null?void 0:u.call(r)]}})}const Pn=t.defineComponent({name:"FButtonEdit",props:mn,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue"],setup(e,n){const a=t.ref(),o=t.ref(e.customClass),l=t.ref(e.modelValue),i=On(e,n,a,l),{shouldPopupContent:s,hidePopup:r,showPopup:u,togglePopup:d}=i,g=Sn(e,n,a,i,l),b=t.ref(""),h=Mn(e,n,l,b,i),{hasFocusedTextBox:x,commitValue:C,inputGroupClass:m}=h,c=Nn(e,n,l,x,b,h),{onMouseEnterTextBox:y,onMouseLeaveTextBox:p}=c,w=t.ref(!1),S=t.computed(()=>{const D={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return o.value&&o.value.split(" ").reduce((R,M)=>(R[M]=!0,R),D),D}),f=t.computed(()=>({overflow:e.wrapText?"hidden":""})),v=t.computed(()=>({}));function k(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let D=0;const R=Array.from(a.value.querySelectorAll(".farris-tag-item"));return R&&R.length&&(D=R.map(M=>M.offsetTop).filter(M=>M>20).length),D}const N=t.ref(k());t.onUpdated(()=>{N.value=k()});function I(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[Bn(e,l,h)(),!!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])])]):Vn(e,l,h)}let j=I();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{j=I()});const{renderButtonGroup:O,buttonHandleElement:P}=En(e,n,g,c),T=Dn(e,n,i),V=t.ref(s.value),B={displayText:b,commitValue:C,elementRef:a,hidePopup:r,showPopup:u,popoverRef:i.popoverRef,shouldPopupContent:s,togglePopup:d,openDialog:()=>{P.value&&e.buttonBehavior==="Modal"&&P.value.click()},getModal:()=>{var D;return e.buttonBehavior==="Modal"?(D=g.modalRef.value)==null?void 0:D.value:null},getTextbox:()=>{var D;return(D=a.value)==null?void 0:D.querySelector("input")},forceClosePopup:()=>{V.value=!1,w.value=!0,s.value=!1}};return t.onMounted(()=>{a.value.componentInstance=B,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var D;window.onresize=null,(D=window[Q])==null||D.delete(a.value)}),n.expose(B),t.watch(()=>s.value,async(D,R)=>{if(w.value){V.value=D,w.value=!1;return}if(!D&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const M=await e.beforeClosePopup();V.value=!M,(!M||e.readonly)&&(s.value=!0)}catch(M){console.error("Error in beforeClosePopup:",M),V.value=R,s.value=R}return}V.value=D}),()=>{var D,R;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:S.value,id:e.id?e.id:void 0,style:f.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:m.value,style:v.value,onMouseenter:y,onMouseleave:p},[(R=(D=n.slots).precontent)==null?void 0:R.call(D),j(),O()])]),V.value&&T()])}}}),jn={$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"]},$e={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}},In=ee.createPropsResolver($e,jn),Ln={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}},Rn={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},we=t.defineComponent({name:"Toast",props:Rn,emits:["close","click"],setup:(e,n)=>{const a=t.ref(e.animate),o="fadeOut",l=t.computed(()=>e.options),i=t.ref(!1),s=t.computed(()=>l.value.title&&l.value.message),r=t.computed(()=>!l.value.title&&l.value.message),u=t.computed(()=>{const p={animated:i.value,toast:!0,"toast--only-content":!s.value};return p[e.animate]=!1,p[o]=i.value,p["toasty-type-"+l.value.type]=!0,l.value.theme&&(p[l.value.theme]=!0),p}),d=t.computed(()=>{const S=`f-icon-${l.value&&l.value.type?l.value.type.replace("toasty-type-",""):"default"}`,f={"f-icon":!0};return f[S]=!0,f}),g=t.computed(()=>l.value.title||l.value.message),b=t.computed(()=>e.showCloseButton),h=t.computed(()=>!!l.value.buttons||!!n.slots.default),x=t.computed(()=>X.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function C(p){p.stopPropagation(),p.preventDefault(),i.value=!1,setTimeout(()=>{n.emit("close",l.value)},200)}function m(p,w){}function c(p){return`f-preten-link ${p.customClass?p.customClass:""}`}t.watch(a,()=>{a.value});const y=()=>{var p;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!n.slots.default&&((p=l.value.buttons)==null?void 0:p.map(w=>t.createVNode("span",{class:c(w),onClick:S=>void 0},[w.text]))),n.slots.default&&n.slots.default()])])};return()=>t.createVNode("div",{class:u.value,style:"min-height:44px"},[b.value&&t.createVNode("button",{title:X.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:C},[t.createVNode("span",{class:"f-icon modal_close"},null)]),g.value&&t.createVNode("section",{class:"modal-tips"},[!s.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:d.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[s.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:l.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:l.value.message,style:x.value},null),h.value&&y()]),r.value&&(l.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:l.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[y()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:x.value,innerHTML:l.value.message},null))])])])}}),fe=t.defineComponent({name:"Notify",props:Ln,emits:["close","empty"],setup(e,n){const a=t.computed(()=>({"farris-notify":!0})),o={left:12,right:12,top:20,bottom:12},l=t.ref(),i=t.ref(e.options),s=t.ref(e.showCloseButton),r=t.computed(()=>e.position||"bottom-right"),u=t.computed(()=>e.timeout!=null?e.timeout:3e3),d=t.computed(()=>{const h=e.bottom?e.bottom:o.bottom,x=e.top?e.top:o.top,C={transition:"all 0.2s ease",left:r.value.indexOf("left")>-1?`${e.left?e.left:o.left}px`:"",right:r.value.indexOf("right")>-1?`${e.right?e.right:o.right}px`:"",top:r.value.indexOf("top")>-1?`${x}px`:"",bottom:r.value.indexOf("bottom")>-1?`${h}px`:""};return r.value.indexOf("center")>-1&&(C.left="50%",C.marginLeft="calc(-24rem / 2)",r.value==="center-center"&&(C.top="50%",C.transform="translate(-50%, -50%)")),C});function g(h){n.emit("close")}u.value&&setTimeout(()=>{g()},u.value),n.expose({closeToast:g,container:l,notifyPosition:r});function b(h,x){g()}return()=>t.createVNode("div",{class:a.value,style:d.value,ref:l},[t.createVNode(we,{options:i.value,showCloseButton:s.value,animate:e.animate,onClose:h=>b(h,i.value)},null)])}});class zn{constructor(){K(this,"notifyRefs",[]);K(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,l=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...n}),i=document.createElement("div");i.style.display="contents";const s=t.createApp({setup(){var d;const r=t.ref();function u(){r.value.container.style.transform="scale(0)",setTimeout(()=>{a.updateNotifyPositionForClose(l,r),s.unmount()},220)}if(l.position.indexOf("top")>-1){const g=a.getNotifyInstances(l.position),b=g[g.length-1];if(b){const h=b.value.container.getBoundingClientRect();l.top=h.bottom}}return l.safeHtml&&((d=l.options)!=null&&d.message)&&(l.options.message=a.escapeAllHtml(l.options.message)),t.onUnmounted(()=>{document.body.removeChild(i)}),t.onMounted(()=>{a.updateNotifyPositionForCreate(l,r)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(fe,t.mergeProps({ref:r},l,{onClose:u}),null)]})}});return s.provide("NotifyService",this),document.body.appendChild(i),s.use(X.LocaleService.i18n),s.mount(i),s}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(l=>{const i=l.value.container.getBoundingClientRect();l.value.container.style.bottom=i.height+o-i.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,a]}updateNotifyPositionForClose(n,a){const o=this.notifyRefs.indexOf(a);if(n.position.indexOf("top")>-1){const l=this.getNotifyInstances(n.position),i=l.indexOf(a);l.slice(i+1).forEach(s=>{s.value.container.style.top=s.value.container.offsetTop-s.value.container.offsetHeight+"px"})}o>-1&&this.notifyRefs.splice(o,1)}show(n){return this.createNotifyInstance(n)}buildNotifyProps(n,a){let o="",l="",i,s,r;typeof a=="string"?o=a:a&&(o=a.message||"",l=a.title||"",s=a.position||null,r=a.showCloseButton!=null?a.showCloseButton:null,i=a.timeout!=null?a.timeout:null);const d={options:{type:n,message:o,title:l}};return s!=null&&(d.position=s),r!=null&&(d.showCloseButton=r),i!=null&&(d.timeout=i),d}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");fe.install=e=>{e.component(fe.name,fe),e.component(we.name,we);const n=new zn;e.provide(qe,n),e.provide("FNotifyService",n)};const me=t.defineComponent({name:"f-expression-textbox",props:$e,setup(e,n){const a=t.inject(qe),o=t.inject("FLoadingService"),l='<i class="f-icon f-icon-lookup"></i>',i=t.ref(e.modelValue),s=t.ref(e.entities),r=t.ref(e.variables),u=t.ref(),d=t.ref(e.validateMessage||""),g=t.ref("info");async function b(){const{value:m,message:c,messageType:y}=u.value.getExpressionValue();if(d.value=c,g.value=y,e.beforeSubmit&&typeof e.beforeSubmit=="function"){const p=await e.beforeSubmit({notifyService:a,expressionValue:m});if(typeof p=="boolean"&&!p)return!1;if(typeof p=="object"){const{canClose:w,message:S}=p;if(!w)return S&&(a==null||a.error({message:S})),!1}}if(n.emit("update:modelValue",m),i.value=m,e.onSubmitModal){const p={expression:m,message:c};e.showMessageType&&(p.messageType=g.value);const w=e.onSubmitModal(p);e.onExpressionChanged&&e.onExpressionChanged(w)}return!0}const h={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:m=>{var c;return(c=u.value)==null||c.resetExpression(),!1}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:m=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async m=>await b()}]};async function x(){if(e.beforeOpen)try{o==null||o.show();const m=await e.beforeOpen({notifyService:a});if(m)return s.value=m.entities||{},r.value=m.variables||{},d.value=m.message||"",g.value=m.messageType||"info",o==null||o.clearAll(),!0}catch{return a==null||a.error({message:"获取数据失败!"}),!1}finally{o==null||o.clearAll()}return!0}function C(){if(n.emit("update:modelValue",""),i.value="",e.onSubmitModal){const m=e.onSubmitModal({expression:"",message:""});e.onExpressionChanged&&e.onExpressionChanged(m)}}return t.watch(()=>e.modelValue,m=>{i.value=m}),()=>t.createVNode(Pn,{editable:!1,enableTitle:!0,modelValue:i.value,"onUpdate:modelValue":m=>i.value=m,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:l,buttonBehavior:"Modal",modalOptions:h,beforeOpen:x,onClear:C},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode(Re,{ref:u,validateMessage:d.value,showMessageType:e.showMessageType,messageType:g.value,modelValue:i.value,"onUpdate:modelValue":m=>i.value=m,esprimaPath:e.esprimaPath,showMessage:e.showMessage,entities:s.value,variables:r.value,disabledFunctions:e.disabledFunctions,showDataPanel:e.showDataPanel,singleExpand:e.singleExpand,isServerSide:e.isServerSide},null)])]})}}),Hn={install(e){e.component(me.name,me)},register(e,n,a,o){e["expression-editor"]=me,n["expression-editor"]=In}};H.ExpressionEditor=Re,H.FExpressionTextbox=me,H.default=Hn,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});