@web-utils/component 4.0.15 → 5.0.0-beta01

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 (307) hide show
  1. package/address-input/index.mjs +76 -76
  2. package/affix/index.mjs +71 -78
  3. package/aside-menu/index.mjs +20 -31
  4. package/avatar/index.mjs +94 -82
  5. package/awesome-button/index.mjs +54 -71
  6. package/capsule-tab/index.mjs +27 -32
  7. package/card/index.mjs +86 -71
  8. package/carousel/index.mjs +45 -34
  9. package/chat/index.mjs +440 -276
  10. package/chunk-file-uploader/index.mjs +2 -445
  11. package/chunk-file-uploader/style.css +1 -1
  12. package/chunks/ChunkFileUploader.C3EA0e5t.mjs +114 -0
  13. package/chunks/EditableTree.C_IJBL5b.mjs +648 -0
  14. package/chunks/ElementBaseInfo.DyuFR6fE.mjs +209 -0
  15. package/chunks/ElementDialog.C0IjriTW.mjs +681 -0
  16. package/chunks/ElementForm.ButuYDPA.mjs +627 -0
  17. package/chunks/ElementListeners.Dg3e_dmp.mjs +656 -0
  18. package/chunks/ElementMultiInstance.Dmi79FqA.mjs +290 -0
  19. package/chunks/ElementOtherConfig.C2AddGTp.mjs +51 -0
  20. package/chunks/ElementProperties.CfV8UF7L.mjs +196 -0
  21. package/chunks/ElementTaskConfig.Bn7ycGGn.mjs +446 -0
  22. package/chunks/FlowCondition.C6PdqOAW.mjs +194 -0
  23. package/chunks/FlowDesigner.uJYFfKpR.mjs +5101 -0
  24. package/chunks/FormBlock.BEENc22F.mjs +117 -0
  25. package/chunks/FormCascader.CaM-oEhv.mjs +1226 -0
  26. package/chunks/FormInputTime.Bg3UIP8H.mjs +1773 -0
  27. package/chunks/FormItem.H9OOvNzT.mjs +90 -0
  28. package/chunks/FormItemGroup.D9eRy-cZ.mjs +147 -0
  29. package/chunks/FormSelect.CanodoAI.mjs +1472 -0
  30. package/chunks/FormSwitch.DTqdaFjv.mjs +296 -0
  31. package/chunks/FormTemp.DiI5EfgK.mjs +139 -0
  32. package/chunks/FyCurd.DMj1dMK9.mjs +2622 -0
  33. package/chunks/FyForm.vgR8ujEF.mjs +904 -0
  34. package/chunks/FyFormDesign.DEWT6LsX.mjs +5600 -0
  35. package/chunks/FyUEditor.D_rEYfll.mjs +221 -0
  36. package/chunks/FyUpload.B2QKfTxF.mjs +504 -0
  37. package/chunks/Keyboard.ItiRy7Gb.mjs +379 -0
  38. package/chunks/MonacoEditor.Bd5Kui-Y.mjs +301 -0
  39. package/chunks/PageableTable.Bujb0NUx.mjs +658 -0
  40. package/chunks/RecordVideo.B35_dLty.mjs +116 -0
  41. package/chunks/SignalAndMessage.CYVzlFuL.mjs +198 -0
  42. package/chunks/SplitPane.Dw96M0Yf.mjs +219 -0
  43. package/chunks/TableColumn.DJYkznbJ.mjs +180 -0
  44. package/chunks/TableView.DyIdIxAg.mjs +484 -0
  45. package/chunks/Toolbar.DHuXJAoG.mjs +219 -0
  46. package/chunks/UserTaskListeners.Bp-2qkHs.mjs +599 -0
  47. package/chunks/VueCron.GfjodnyM.mjs +1766 -0
  48. package/chunks/VueTreeSelect.9Ywl-I8e.mjs +1872 -0
  49. package/chunks/_plugin-vue_export-helper.7vrlOII_.mjs +8 -0
  50. package/chunks/checkbox.emIuFmnt.mjs +437 -0
  51. package/chunks/confirmable-mixin.BBil7dto.mjs +1646 -0
  52. package/chunks/core.DJv6Qrae.mjs +51 -0
  53. package/chunks/dataformat.Bfr4nOcA.mjs +144 -0
  54. package/chunks/dic.DgDfnovD.mjs +116 -0
  55. package/chunks/dictionary.5eKjWeAp.mjs +19 -0
  56. package/chunks/dictionary.DxZxP0ej.mjs +87 -0
  57. package/chunks/event.B4iwtUNO.mjs +4 -0
  58. package/chunks/event.eJ-c1Z3a.mjs +224 -0
  59. package/chunks/focus-trap.DT4GnqQI.mjs +211 -0
  60. package/chunks/form-input.D25eDRMq.mjs +34 -0
  61. package/chunks/form-item.CgmUuw_n.mjs +714 -0
  62. package/chunks/form-pick.Axem0gOO.mjs +7 -0
  63. package/chunks/form-validate.B1KPCHqN.mjs +11 -0
  64. package/chunks/icon.CbS8-322.mjs +259 -0
  65. package/chunks/init.DwpukyOB.mjs +115 -0
  66. package/chunks/input.PejnqwSH.mjs +547 -0
  67. package/chunks/install.yLcn5MLL.mjs +84 -0
  68. package/chunks/message.BCmee5N0.mjs +400 -0
  69. package/chunks/overlay.DubSnqma.mjs +122 -0
  70. package/chunks/packages.BGjydzjm.mjs +56 -0
  71. package/chunks/permission.DgEVNWlh.mjs +16 -0
  72. package/chunks/photo-swipe.BB0SJZg9.mjs +55 -0
  73. package/chunks/radio.BotKXqJr.mjs +274 -0
  74. package/chunks/scroll.CzORc5Zk.mjs +28 -0
  75. package/chunks/scrollbar.CAmrlKi9.mjs +345 -0
  76. package/chunks/slot.C6Ozd2e7.mjs +25 -0
  77. package/chunks/style.BmlGmjpO.mjs +325 -0
  78. package/chunks/sub-table-plus-props.B_lLth3j.mjs +28 -0
  79. package/chunks/tab-mixin.u0EZpx3j.mjs +70 -0
  80. package/chunks/tag.DPi-PLbb.mjs +141 -0
  81. package/chunks/teleport._VGEzK4d.mjs +22 -0
  82. package/chunks/tooltip.D50x7Rva.mjs +1926 -0
  83. package/chunks/typescript.DiWBU4nj.mjs +4 -0
  84. package/chunks/use-aria.BW7nWOl1.mjs +17 -0
  85. package/chunks/use-composition.mUaomyno.mjs +47 -0
  86. package/chunks/use-deprecated.BfDSbZS9.mjs +12 -0
  87. package/chunks/use-empty-values.Dy_r78F6.mjs +263 -0
  88. package/chunks/use-form-item.wsRjehHp.mjs +47 -0
  89. package/chunks/use-global-config.C9hs-O_x.mjs +56 -0
  90. package/chunks/use-id.CFO5NeoV.mjs +15 -0
  91. package/chunks/use-size.DxrwTUwf.mjs +18 -0
  92. package/chunks/util.B3sjVZoZ.mjs +103 -0
  93. package/chunks/util.g-WQEec9.mjs +223 -0
  94. package/chunks/utilSelf.ZED4DmCU.mjs +46 -0
  95. package/chunks/utils.Cs2fYBrT.mjs +60 -0
  96. package/chunks/utils.DsGhtCIO.mjs +14 -0
  97. package/chunks/validator.C4-z_t9p.mjs +5 -0
  98. package/chunks/vnode.D_SioRnx.mjs +14 -0
  99. package/code-mirror-editor/index.mjs +89 -88
  100. package/comment/index.mjs +62 -57
  101. package/configComponents.mjs +40 -50
  102. package/confirm-button/index.mjs +34 -46
  103. package/confirmable/index.mjs +7 -17
  104. package/context-menu/index.mjs +195 -174
  105. package/count-up/index.mjs +97 -105
  106. package/custom-scrollbar/index.mjs +91 -98
  107. package/data-box/index.mjs +64 -47
  108. package/data-card/index.mjs +60 -49
  109. package/data-card-text/index.mjs +63 -51
  110. package/data-display/index.mjs +71 -53
  111. package/data-icons/index.mjs +70 -53
  112. package/data-imgtext/index.mjs +67 -46
  113. package/data-operatext/index.mjs +51 -42
  114. package/data-panel/index.mjs +57 -47
  115. package/data-pay/index.mjs +105 -52
  116. package/data-price/index.mjs +48 -42
  117. package/data-progress/index.mjs +67 -48
  118. package/data-rotate/index.mjs +61 -47
  119. package/data-table-picker/index.mjs +119 -74
  120. package/data-tabs/index.mjs +67 -47
  121. package/dialog-form/index.mjs +139 -89
  122. package/dynamic-table/index.mjs +166 -114
  123. package/e-charts/index.mjs +174 -200
  124. package/easy-popup/index.mjs +91 -102
  125. package/editable-progress/index.mjs +112 -85
  126. package/editable-tree/index.mjs +2 -485
  127. package/element-dialog/index.mjs +2 -307
  128. package/element-listeners/style.css +1 -0
  129. package/element-multi-instance/style.css +1 -0
  130. package/ellipsis/index.mjs +124 -148
  131. package/empty-view/index.mjs +48 -65
  132. package/error-view/index.mjs +39 -51
  133. package/flex-column/index.mjs +32 -51
  134. package/flex-item/index.mjs +54 -64
  135. package/flex-row/index.mjs +32 -39
  136. package/flex-scroller/index.mjs +29 -30
  137. package/flow/index.mjs +240 -248
  138. package/flow-designer/index.mjs +2 -5983
  139. package/flow-designer/style.css +1 -1
  140. package/flow-node/index.mjs +56 -64
  141. package/flow-viewer/index.mjs +159 -157
  142. package/form-block/index.mjs +2 -149
  143. package/form-button/index.mjs +35 -47
  144. package/form-card/index.mjs +14 -25
  145. package/form-cascader/index.mjs +2 -116
  146. package/form-checkbox/index.mjs +89 -71
  147. package/form-checkbox-group/index.mjs +161 -116
  148. package/form-date-picker/index.mjs +155 -144
  149. package/form-holder/index.mjs +137 -110
  150. package/form-input/index.mjs +113 -87
  151. package/form-input-cron-expression/index.mjs +97 -79
  152. package/form-input-email/index.mjs +64 -52
  153. package/form-input-id-card/index.mjs +72 -55
  154. package/form-input-phone-number/index.mjs +71 -57
  155. package/form-input-tag/index.mjs +88 -62
  156. package/form-input-time/index.mjs +2 -74
  157. package/form-item/index.mjs +2 -5
  158. package/form-item-config-provider/index.mjs +46 -60
  159. package/form-item-group/index.mjs +2 -160
  160. package/form-radio-group/index.mjs +161 -122
  161. package/form-select/index.mjs +2 -181
  162. package/form-switch/index.mjs +2 -55
  163. package/form-table/index.mjs +131 -85
  164. package/form-table-plus/index.mjs +164 -109
  165. package/form-textarea/index.mjs +90 -57
  166. package/form-tree-select/index.mjs +89 -72
  167. package/form-tree-select-multiple/index.mjs +92 -78
  168. package/form-view/index.mjs +275 -211
  169. package/fy-array/index.mjs +121 -74
  170. package/fy-article/index.mjs +73 -60
  171. package/fy-cascader/index.mjs +113 -91
  172. package/fy-checkbox/index.mjs +96 -66
  173. package/fy-code/index.mjs +48 -50
  174. package/fy-curd/index.mjs +2 -1903
  175. package/fy-date/index.mjs +76 -42
  176. package/fy-draggable/index.mjs +322 -318
  177. package/fy-dynamic/index.mjs +259 -227
  178. package/fy-empty/index.mjs +35 -36
  179. package/fy-form/index.mjs +2 -17
  180. package/fy-form-design/index.mjs +2 -2890
  181. package/fy-form-design/style.css +1 -1
  182. package/fy-from/crud/zh.d.ts +6 -6
  183. package/fy-input/index.mjs +117 -99
  184. package/fy-input-color/index.mjs +77 -56
  185. package/fy-input-icon/index.mjs +129 -85
  186. package/fy-input-map/index.mjs +242 -186
  187. package/fy-input-number/index.mjs +74 -50
  188. package/fy-input-table/index.mjs +160 -109
  189. package/fy-input-tree/index.mjs +259 -182
  190. package/fy-progress/index.mjs +36 -40
  191. package/fy-radio/index.mjs +53 -38
  192. package/fy-rate/index.mjs +86 -71
  193. package/fy-select/index.mjs +223 -140
  194. package/fy-slider/index.mjs +68 -44
  195. package/fy-switch/index.mjs +67 -42
  196. package/fy-tabs/index.mjs +46 -48
  197. package/fy-time/index.mjs +81 -53
  198. package/fy-title/index.mjs +18 -27
  199. package/fy-tree/index.mjs +382 -292
  200. package/fy-u-editor/index.mjs +2 -357
  201. package/fy-upload/index.mjs +2 -423
  202. package/guide-steps/index.mjs +72 -73
  203. package/helper-function.d.ts +2 -30
  204. package/helper-function.mjs +41 -67
  205. package/highlight-j-s/index.mjs +50 -59
  206. package/icon-card/index.mjs +34 -36
  207. package/icon-temp/index.mjs +27 -27
  208. package/iframe-window/index.mjs +39 -33
  209. package/image-cropper/index.mjs +171 -75
  210. package/image-preview/index.mjs +187 -118
  211. package/image-viewer/index.mjs +69 -66
  212. package/index.d.ts +3 -9
  213. package/index.mjs +173 -488
  214. package/input-number-range/index.mjs +78 -59
  215. package/j-s-x-component/index.mjs +13 -15
  216. package/keyboard/index.mjs +2 -369
  217. package/license/index.mjs +106 -115
  218. package/loading-view/index.mjs +39 -51
  219. package/login/index.mjs +252 -125
  220. package/monaco-editor/index.mjs +2 -7
  221. package/name-avatar/index.mjs +61 -53
  222. package/nav-bar/index.mjs +33 -31
  223. package/not-implement/index.mjs +10 -22
  224. package/notice/index.mjs +100 -94
  225. package/package.json +3 -3
  226. package/page/index.mjs +18 -25
  227. package/page-header/index.mjs +27 -33
  228. package/page-index/index.mjs +121 -100
  229. package/page-index-top/index.mjs +79 -79
  230. package/page-skeleton/index.mjs +48 -45
  231. package/page-skeleton-new/index.mjs +79 -50
  232. package/pageable-table/index.mjs +2 -522
  233. package/pageable-view/index.mjs +279 -275
  234. package/photo-swipe/index.d.ts +4 -0
  235. package/photo-swipe/index.mjs +33 -36
  236. package/picker-table-view/index.mjs +224 -126
  237. package/present-view/index.mjs +266 -200
  238. package/queue/index.mjs +45 -53
  239. package/record-video/index.mjs +2 -134
  240. package/resize-observer/index.mjs +43 -46
  241. package/search/index.mjs +116 -109
  242. package/sign/index.mjs +103 -110
  243. package/sign-panel/index.mjs +182 -141
  244. package/skeleton/index.mjs +51 -54
  245. package/skeleton-panel/index.mjs +33 -38
  246. package/split-pane/index.mjs +3 -197
  247. package/stateful/index.mjs +69 -73
  248. package/static-pageable-table/index.mjs +72 -66
  249. package/sub-table/index.mjs +508 -219
  250. package/sub-table-plus/index.mjs +592 -19
  251. package/swiper/index.mjs +128 -121
  252. package/tab/index.mjs +117 -119
  253. package/tab-item/index.mjs +48 -56
  254. package/table-column/index.mjs +2 -5
  255. package/table-view/index.mjs +3 -334
  256. package/tabs-view/index.mjs +109 -106
  257. package/tag-render/index.mjs +79 -69
  258. package/text-ellipsis/index.mjs +94 -78
  259. package/toolbar/index.mjs +2 -255
  260. package/toolbar-button/index.mjs +145 -121
  261. package/verify/index.mjs +58 -64
  262. package/vue-cron/index.mjs +2 -1188
  263. package/vue-qr-code/index.mjs +30 -54
  264. package/vue-quill-editor/index.mjs +123 -99
  265. package/vue-tags-input/index.mjs +348 -431
  266. package/vue-tree-select/index.mjs +2 -2627
  267. package/vue-video-player/index.mjs +135 -136
  268. package/watermark/index.mjs +46 -74
  269. package/web-types.json +197 -975
  270. package/x-input-tag/index.mjs +144 -109
  271. package/chunks/ElementTaskConfig.AvBOzAni.mjs +0 -325
  272. package/chunks/FormItem.Bhsy_O2B.mjs +0 -372
  273. package/chunks/FyForm.DriwCJ7b.mjs +0 -765
  274. package/chunks/MonacoEditor.D31t4FTy.mjs +0 -327
  275. package/chunks/SignalAndMessage.BpjOoKhK.mjs +0 -92
  276. package/chunks/SubTablePlus.BH0IIv3X.mjs +0 -270
  277. package/chunks/TableColumn.BzivvXMF.mjs +0 -337
  278. package/chunks/_plugin-vue2_normalizer.CeySl7Fu.mjs +0 -10
  279. package/chunks/confirmable-mixin.BFZb6pcK.mjs +0 -86
  280. package/chunks/dataformat.DJoNBlmI.mjs +0 -154
  281. package/chunks/dic.BinnDitI.mjs +0 -128
  282. package/chunks/dictionary.DqiP9x2m.mjs +0 -25
  283. package/chunks/event.DSlcqYHL.mjs +0 -236
  284. package/chunks/form-input.BtS_J5a2.mjs +0 -31
  285. package/chunks/form-pick.BFTIVn_i.mjs +0 -11
  286. package/chunks/form-validate.CVarNHKX.mjs +0 -12
  287. package/chunks/helper.BiMLcEEk.mjs +0 -41
  288. package/chunks/index.BmYCjxZQ.mjs +0 -47
  289. package/chunks/index.CIfe3UB3.mjs +0 -16
  290. package/chunks/index.Cn7aq-Et.mjs +0 -184
  291. package/chunks/init.xOlFpTyZ.mjs +0 -122
  292. package/chunks/packages.ByyangTp.mjs +0 -58
  293. package/chunks/permission.CO31YIkD.mjs +0 -16
  294. package/chunks/slot.DXIbhGat.mjs +0 -27
  295. package/chunks/tab-mixin.BNK6dxLN.mjs +0 -81
  296. package/chunks/util.DI42t5GU.mjs +0 -241
  297. package/color-picker/index.mjs +0 -157
  298. package/egd-collapse/index.mjs +0 -62
  299. package/egd-collapse-item/index.mjs +0 -72
  300. package/form-input-number/index.mjs +0 -70
  301. package/form-input-number/style.css +0 -1
  302. package/input-number/index.mjs +0 -233
  303. package/input-number/style.css +0 -1
  304. package/keep-view-alive/index.mjs +0 -117
  305. package/search-popover/index.mjs +0 -118
  306. package/search-popover/style.css +0 -1
  307. /package/{base.css → utils/style.css} +0 -0
@@ -0,0 +1,446 @@
1
+ import { t as e } from "./_plugin-vue_export-helper.7vrlOII_.mjs";
2
+ import { Fragment as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, guardReactiveProps as c, normalizeProps as l, openBlock as u, renderList as d, resolveComponent as f, resolveDynamicComponent as p, vShow as m, withCtx as h, withDirectives as g, withModifiers as _ } from "vue";
3
+ //#region src/components/bpmn-process-designer/components/penal/task/task-components/UserTask.vue
4
+ var v = {
5
+ name: "UserTask",
6
+ props: {
7
+ id: String,
8
+ element: Object,
9
+ bpmnInstances: Object
10
+ },
11
+ data() {
12
+ return {
13
+ defaultTaskForm: {
14
+ assignee: "",
15
+ candidateUsers: [],
16
+ candidateGroups: [],
17
+ dueDate: "",
18
+ followUpDate: "",
19
+ priority: ""
20
+ },
21
+ userTaskForm: {},
22
+ mockData: [
23
+ 1,
24
+ 2,
25
+ 3,
26
+ 4,
27
+ 5,
28
+ 6,
29
+ 7,
30
+ 8,
31
+ 9,
32
+ 10
33
+ ]
34
+ };
35
+ },
36
+ watch: { id: {
37
+ immediate: !0,
38
+ handler() {
39
+ this.$nextTick(() => this.resetTaskForm());
40
+ }
41
+ } },
42
+ methods: {
43
+ resetTaskForm() {
44
+ let { businessObject: e } = this.element;
45
+ for (let t in this.defaultTaskForm) {
46
+ let n;
47
+ n = ["candidateUsers", "candidateGroups"].includes(t) ? e[t] ? e[t].split(",") : [] : e[t] || this.defaultTaskForm[t], this.$set(this.userTaskForm, t, n);
48
+ }
49
+ },
50
+ updateElementTask(e) {
51
+ let t = {};
52
+ e === "candidateUsers" || e === "candidateGroups" ? t[e] = this.userTaskForm[e] && this.userTaskForm[e].length ? this.userTaskForm[e].join() : null : t[e] = this.userTaskForm[e] || null, this.bpmnInstances.modeling.updateProperties(this.element, t);
53
+ }
54
+ }
55
+ }, y = { style: { "margin-top": "16px" } };
56
+ function b(e, r, a, o, c, l) {
57
+ let p = f("ElOption"), m = f("ElSelect"), g = f("ElFormItem"), _ = f("ElInput");
58
+ return u(), i("div", y, [
59
+ s(g, { label: "处理用户" }, {
60
+ default: h(() => [s(m, {
61
+ modelValue: c.userTaskForm.assignee,
62
+ "onUpdate:modelValue": r[0] || (r[0] = (e) => c.userTaskForm.assignee = e),
63
+ onChange: r[1] || (r[1] = (e) => l.updateElementTask("assignee"))
64
+ }, {
65
+ default: h(() => [(u(!0), i(t, null, d(c.mockData, (e) => (u(), n(p, {
66
+ key: `ass-${e}`,
67
+ label: `用户${e}`,
68
+ value: `user${e}`
69
+ }, null, 8, ["label", "value"]))), 128))]),
70
+ _: 1
71
+ }, 8, ["modelValue"])]),
72
+ _: 1
73
+ }),
74
+ s(g, { label: "候选用户" }, {
75
+ default: h(() => [s(m, {
76
+ modelValue: c.userTaskForm.candidateUsers,
77
+ "onUpdate:modelValue": r[2] || (r[2] = (e) => c.userTaskForm.candidateUsers = e),
78
+ multiple: "",
79
+ "collapse-tags": "",
80
+ onChange: r[3] || (r[3] = (e) => l.updateElementTask("candidateUsers"))
81
+ }, {
82
+ default: h(() => [(u(!0), i(t, null, d(c.mockData, (e) => (u(), n(p, {
83
+ key: `user-${e}`,
84
+ label: `用户${e}`,
85
+ value: `user${e}`
86
+ }, null, 8, ["label", "value"]))), 128))]),
87
+ _: 1
88
+ }, 8, ["modelValue"])]),
89
+ _: 1
90
+ }),
91
+ s(g, { label: "候选分组" }, {
92
+ default: h(() => [s(m, {
93
+ modelValue: c.userTaskForm.candidateGroups,
94
+ "onUpdate:modelValue": r[4] || (r[4] = (e) => c.userTaskForm.candidateGroups = e),
95
+ multiple: "",
96
+ "collapse-tags": "",
97
+ onChange: r[5] || (r[5] = (e) => l.updateElementTask("candidateGroups"))
98
+ }, {
99
+ default: h(() => [(u(!0), i(t, null, d(c.mockData, (e) => (u(), n(p, {
100
+ key: `ass-${e}`,
101
+ label: `分组${e}`,
102
+ value: `group${e}`
103
+ }, null, 8, ["label", "value"]))), 128))]),
104
+ _: 1
105
+ }, 8, ["modelValue"])]),
106
+ _: 1
107
+ }),
108
+ s(g, { label: "到期时间" }, {
109
+ default: h(() => [s(_, {
110
+ modelValue: c.userTaskForm.dueDate,
111
+ "onUpdate:modelValue": r[6] || (r[6] = (e) => c.userTaskForm.dueDate = e),
112
+ clearable: "",
113
+ onChange: r[7] || (r[7] = (e) => l.updateElementTask("dueDate"))
114
+ }, null, 8, ["modelValue"])]),
115
+ _: 1
116
+ }),
117
+ s(g, { label: "跟踪时间" }, {
118
+ default: h(() => [s(_, {
119
+ modelValue: c.userTaskForm.followUpDate,
120
+ "onUpdate:modelValue": r[8] || (r[8] = (e) => c.userTaskForm.followUpDate = e),
121
+ clearable: "",
122
+ onChange: r[9] || (r[9] = (e) => l.updateElementTask("followUpDate"))
123
+ }, null, 8, ["modelValue"])]),
124
+ _: 1
125
+ }),
126
+ s(g, { label: "优先级" }, {
127
+ default: h(() => [s(_, {
128
+ modelValue: c.userTaskForm.priority,
129
+ "onUpdate:modelValue": r[10] || (r[10] = (e) => c.userTaskForm.priority = e),
130
+ clearable: "",
131
+ onChange: r[11] || (r[11] = (e) => l.updateElementTask("priority"))
132
+ }, null, 8, ["modelValue"])]),
133
+ _: 1
134
+ })
135
+ ]);
136
+ }
137
+ var x = /* @__PURE__ */ e(v, [["render", b]]), S = {
138
+ name: "ScriptTask",
139
+ props: {
140
+ id: String,
141
+ element: Object,
142
+ bpmnInstances: Object
143
+ },
144
+ data() {
145
+ return {
146
+ defaultTaskForm: {
147
+ scriptFormat: "",
148
+ script: "",
149
+ resource: "",
150
+ resultVariable: ""
151
+ },
152
+ scriptTaskForm: {}
153
+ };
154
+ },
155
+ watch: { id: {
156
+ immediate: !0,
157
+ handler() {
158
+ this.$nextTick(() => this.resetTaskForm());
159
+ }
160
+ } },
161
+ methods: {
162
+ resetTaskForm() {
163
+ for (let t in this.defaultTaskForm) {
164
+ var e;
165
+ let n = ((e = this.element) == null ? void 0 : e.businessObject[t]) || this.defaultTaskForm[t];
166
+ this.$set(this.scriptTaskForm, t, n);
167
+ }
168
+ this.$set(this.scriptTaskForm, "scriptType", this.scriptTaskForm.script ? "inline" : "external");
169
+ },
170
+ updateElementTask() {
171
+ let e = Object.create(null);
172
+ e.scriptFormat = this.scriptTaskForm.scriptFormat || null, e.resultVariable = this.scriptTaskForm.resultVariable || null, this.scriptTaskForm.scriptType === "inline" ? (e.script = this.scriptTaskForm.script || null, e.resource = null) : (e.resource = this.scriptTaskForm.resource || null, e.script = null), this.bpmnInstances.modeling.updateProperties(this.element, e);
173
+ }
174
+ }
175
+ }, C = { style: { "margin-top": "16px" } };
176
+ function w(e, t, n, r, a, o) {
177
+ let c = f("ElInput"), l = f("ElFormItem"), d = f("ElOption"), p = f("ElSelect");
178
+ return u(), i("div", C, [
179
+ s(l, { label: "脚本格式" }, {
180
+ default: h(() => [s(c, {
181
+ modelValue: a.scriptTaskForm.scriptFormat,
182
+ "onUpdate:modelValue": t[0] || (t[0] = (e) => a.scriptTaskForm.scriptFormat = e),
183
+ clearable: "",
184
+ onInput: t[1] || (t[1] = (e) => o.updateElementTask()),
185
+ onChange: t[2] || (t[2] = (e) => o.updateElementTask())
186
+ }, null, 8, ["modelValue"])]),
187
+ _: 1
188
+ }),
189
+ s(l, { label: "脚本类型" }, {
190
+ default: h(() => [s(p, {
191
+ modelValue: a.scriptTaskForm.scriptType,
192
+ "onUpdate:modelValue": t[3] || (t[3] = (e) => a.scriptTaskForm.scriptType = e)
193
+ }, {
194
+ default: h(() => [s(d, {
195
+ label: "内联脚本",
196
+ value: "inline"
197
+ }), s(d, {
198
+ label: "外部资源",
199
+ value: "external"
200
+ })]),
201
+ _: 1
202
+ }, 8, ["modelValue"])]),
203
+ _: 1
204
+ }),
205
+ g(s(l, { label: "脚本" }, {
206
+ default: h(() => [s(c, {
207
+ modelValue: a.scriptTaskForm.script,
208
+ "onUpdate:modelValue": t[4] || (t[4] = (e) => a.scriptTaskForm.script = e),
209
+ type: "textarea",
210
+ resize: "vertical",
211
+ autosize: {
212
+ minRows: 2,
213
+ maxRows: 4
214
+ },
215
+ clearable: "",
216
+ onInput: t[5] || (t[5] = (e) => o.updateElementTask()),
217
+ onChange: t[6] || (t[6] = (e) => o.updateElementTask())
218
+ }, null, 8, ["modelValue"])]),
219
+ _: 1
220
+ }, 512), [[m, a.scriptTaskForm.scriptType === "inline"]]),
221
+ g(s(l, { label: "资源地址" }, {
222
+ default: h(() => [s(c, {
223
+ modelValue: a.scriptTaskForm.resource,
224
+ "onUpdate:modelValue": t[7] || (t[7] = (e) => a.scriptTaskForm.resource = e),
225
+ clearable: "",
226
+ onInput: t[8] || (t[8] = (e) => o.updateElementTask()),
227
+ onChange: t[9] || (t[9] = (e) => o.updateElementTask())
228
+ }, null, 8, ["modelValue"])]),
229
+ _: 1
230
+ }, 512), [[m, a.scriptTaskForm.scriptType === "external"]]),
231
+ s(l, { label: "结果变量" }, {
232
+ default: h(() => [s(c, {
233
+ modelValue: a.scriptTaskForm.resultVariable,
234
+ "onUpdate:modelValue": t[10] || (t[10] = (e) => a.scriptTaskForm.resultVariable = e),
235
+ clearable: "",
236
+ onInput: t[11] || (t[11] = (e) => o.updateElementTask()),
237
+ onChange: t[12] || (t[12] = (e) => o.updateElementTask())
238
+ }, null, 8, ["modelValue"])]),
239
+ _: 1
240
+ })
241
+ ]);
242
+ }
243
+ var T = /* @__PURE__ */ e(S, [["render", w]]), E = {
244
+ name: "ReceiveTask",
245
+ props: {
246
+ id: String,
247
+ element: Object,
248
+ bpmnInstances: Object
249
+ },
250
+ data() {
251
+ return {
252
+ bindMessageId: "",
253
+ newMessageForm: {},
254
+ messageMap: {},
255
+ messageModelVisible: !1
256
+ };
257
+ },
258
+ watch: { id: {
259
+ immediate: !0,
260
+ handler() {
261
+ this.$nextTick(() => this.getBindMessage());
262
+ }
263
+ } },
264
+ created() {
265
+ this.bpmnMessageRefsMap = Object.create(null), this.bpmnRootElements = this.bpmnInstances.modeler.getDefinitions().rootElements, this.bpmnRootElements.filter((e) => e.$type === "bpmn:Message").forEach((e) => {
266
+ this.bpmnMessageRefsMap[e.id] = e, this.$set(this.messageMap, e.id, e.name);
267
+ }), this.$set(this.messageMap, "-1", "无");
268
+ },
269
+ methods: {
270
+ getBindMessage() {
271
+ var e;
272
+ this.bindMessageId = ((e = this.element.businessObject) == null || (e = e.messageRef) == null ? void 0 : e.id) || "-1";
273
+ },
274
+ openMessageModel() {
275
+ this.messageModelVisible = !0, this.newMessageForm = {};
276
+ },
277
+ createNewMessage() {
278
+ if (this.messageMap[this.newMessageForm.id]) {
279
+ this.$message.error("该消息已存在,请修改id后重新保存");
280
+ return;
281
+ }
282
+ let e = this.bpmnInstances.moddle.create("bpmn:Message", this.newMessageForm);
283
+ this.bpmnRootElements.push(e), this.$set(this.messageMap, this.newMessageForm.id, this.newMessageForm.name), this.bpmnMessageRefsMap[this.newMessageForm.id] = e, this.messageModelVisible = !1;
284
+ },
285
+ updateTaskMessage(e) {
286
+ e === "-1" ? this.bpmnInstances.modeling.updateProperties(this.element, { messageRef: null }) : this.bpmnInstances.modeling.updateProperties(this.element, { messageRef: this.bpmnMessageRefsMap[e] });
287
+ }
288
+ }
289
+ }, D = { style: { "margin-top": "16px" } }, O = { style: {
290
+ display: "flex",
291
+ "flex-wrap": "nowrap",
292
+ "align-items": "center",
293
+ "justify-content": "space-between"
294
+ } };
295
+ function k(e, r, c, l, p, m) {
296
+ let g = f("ElOption"), v = f("ElSelect"), y = f("ElButton"), b = f("ElFormItem"), x = f("ElInput"), S = f("ElForm"), C = f("ElementDialog");
297
+ return u(), i("div", D, [s(b, { label: "消息实例" }, {
298
+ default: h(() => [a("div", O, [s(v, {
299
+ modelValue: p.bindMessageId,
300
+ "onUpdate:modelValue": r[0] || (r[0] = (e) => p.bindMessageId = e),
301
+ onChange: m.updateTaskMessage
302
+ }, {
303
+ default: h(() => [(u(!0), i(t, null, d(Object.keys(p.messageMap), (e) => (u(), n(g, {
304
+ key: e,
305
+ value: e,
306
+ label: p.messageMap[e]
307
+ }, null, 8, ["value", "label"]))), 128))]),
308
+ _: 1
309
+ }, 8, ["modelValue", "onChange"]), s(y, {
310
+ size: "mini",
311
+ type: "primary",
312
+ icon: "el-icon-plus",
313
+ style: { "margin-left": "8px" },
314
+ onClick: m.openMessageModel
315
+ }, null, 8, ["onClick"])])]),
316
+ _: 1
317
+ }), s(C, {
318
+ visible: p.messageModelVisible,
319
+ "onUpdate:visible": r[4] || (r[4] = (e) => p.messageModelVisible = e),
320
+ class: "flow-dialog",
321
+ "close-on-click-modal": !1,
322
+ title: "创建新消息",
323
+ width: "400px",
324
+ "append-to-body": "",
325
+ "destroy-on-close": ""
326
+ }, {
327
+ footer: h(() => [s(y, {
328
+ size: "mini",
329
+ type: "primary",
330
+ onClick: m.createNewMessage
331
+ }, {
332
+ default: h(() => [...r[5] || (r[5] = [o("确 认", -1)])]),
333
+ _: 1
334
+ }, 8, ["onClick"])]),
335
+ default: h(() => [s(S, {
336
+ model: p.newMessageForm,
337
+ size: "mini",
338
+ "label-width": "90px",
339
+ onSubmit: r[3] || (r[3] = _(() => {}, ["prevent"]))
340
+ }, {
341
+ default: h(() => [s(b, { label: "消息ID" }, {
342
+ default: h(() => [s(x, {
343
+ modelValue: p.newMessageForm.id,
344
+ "onUpdate:modelValue": r[1] || (r[1] = (e) => p.newMessageForm.id = e),
345
+ clearable: ""
346
+ }, null, 8, ["modelValue"])]),
347
+ _: 1
348
+ }), s(b, { label: "消息名称" }, {
349
+ default: h(() => [s(x, {
350
+ modelValue: p.newMessageForm.name,
351
+ "onUpdate:modelValue": r[2] || (r[2] = (e) => p.newMessageForm.name = e),
352
+ clearable: ""
353
+ }, null, 8, ["modelValue"])]),
354
+ _: 1
355
+ })]),
356
+ _: 1
357
+ }, 8, ["model"])]),
358
+ _: 1
359
+ }, 8, ["visible"])]);
360
+ }
361
+ //#endregion
362
+ //#region src/components/bpmn-process-designer/components/penal/task/ElementTaskConfig.vue
363
+ var A = {
364
+ name: "ElementTaskConfig",
365
+ components: {
366
+ UserTask: x,
367
+ ScriptTask: T,
368
+ ReceiveTask: /* @__PURE__ */ e(E, [["render", k]])
369
+ },
370
+ props: {
371
+ id: String,
372
+ element: Object,
373
+ bpmnInstances: Object,
374
+ type: String
375
+ },
376
+ data() {
377
+ return {
378
+ taskConfigForm: {
379
+ asyncAfter: !1,
380
+ asyncBefore: !1,
381
+ exclusive: !1
382
+ },
383
+ witchTaskComponent: "",
384
+ installedComponent: {
385
+ UserTask: "UserTask",
386
+ ScriptTask: "ScriptTask",
387
+ ReceiveTask: "ReceiveTask"
388
+ }
389
+ };
390
+ },
391
+ watch: {
392
+ id: {
393
+ immediate: !0,
394
+ handler() {
395
+ var e, t, n;
396
+ this.taskConfigForm.asyncBefore = (e = this.element) == null || (e = e.businessObject) == null ? void 0 : e.asyncBefore, this.taskConfigForm.asyncAfter = (t = this.element) == null || (t = t.businessObject) == null ? void 0 : t.asyncAfter, this.taskConfigForm.exclusive = (n = this.element) == null || (n = n.businessObject) == null ? void 0 : n.exclusive;
397
+ }
398
+ },
399
+ type: {
400
+ immediate: !0,
401
+ handler() {
402
+ this.witchTaskComponent = this.installedComponent[this.type];
403
+ }
404
+ }
405
+ },
406
+ methods: { changeTaskAsync() {
407
+ !this.taskConfigForm.asyncBefore && !this.taskConfigForm.asyncAfter && (this.taskConfigForm.exclusive = !1), this.bpmnInstances.modeling.updateProperties(this.element, { ...this.taskConfigForm });
408
+ } }
409
+ }, j = { class: "panel-tab__content" };
410
+ function M(e, t, a, o, d, m) {
411
+ let g = f("ElCheckbox"), v = f("ElFormItem"), y = f("ElForm");
412
+ return u(), i("div", j, [s(y, {
413
+ size: "mini",
414
+ "label-width": "90px",
415
+ onSubmit: t[3] || (t[3] = _(() => {}, ["prevent"]))
416
+ }, {
417
+ default: h(() => [s(v, { label: "异步延续" }, {
418
+ default: h(() => [
419
+ s(g, {
420
+ modelValue: d.taskConfigForm.asyncBefore,
421
+ "onUpdate:modelValue": t[0] || (t[0] = (e) => d.taskConfigForm.asyncBefore = e),
422
+ label: "异步前",
423
+ onChange: m.changeTaskAsync
424
+ }, null, 8, ["modelValue", "onChange"]),
425
+ s(g, {
426
+ modelValue: d.taskConfigForm.asyncAfter,
427
+ "onUpdate:modelValue": t[1] || (t[1] = (e) => d.taskConfigForm.asyncAfter = e),
428
+ label: "异步后",
429
+ onChange: m.changeTaskAsync
430
+ }, null, 8, ["modelValue", "onChange"]),
431
+ d.taskConfigForm.asyncAfter || d.taskConfigForm.asyncBefore ? (u(), n(g, {
432
+ key: 0,
433
+ modelValue: d.taskConfigForm.exclusive,
434
+ "onUpdate:modelValue": t[2] || (t[2] = (e) => d.taskConfigForm.exclusive = e),
435
+ label: "排除",
436
+ onChange: m.changeTaskAsync
437
+ }, null, 8, ["modelValue", "onChange"])) : r("v-if", !0)
438
+ ]),
439
+ _: 1
440
+ }), (u(), n(p(d.witchTaskComponent), l(c(e.$props)), null, 16))]),
441
+ _: 1
442
+ })]);
443
+ }
444
+ var N = /* @__PURE__ */ e(A, [["render", M]]);
445
+ //#endregion
446
+ export { N as default };
@@ -0,0 +1,194 @@
1
+ import { t as e } from "./_plugin-vue_export-helper.7vrlOII_.mjs";
2
+ import { Fragment as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createVNode as a, openBlock as o, resolveComponent as s, withCtx as c, withModifiers as l } from "vue";
3
+ //#region src/components/bpmn-process-designer/components/penal/flow-condition/FlowCondition.vue
4
+ var u = {
5
+ name: "FlowCondition",
6
+ props: {
7
+ id: String,
8
+ element: Object,
9
+ bpmnInstances: Object
10
+ },
11
+ data() {
12
+ return { flowConditionForm: {} };
13
+ },
14
+ watch: { id: {
15
+ immediate: !0,
16
+ async handler() {
17
+ await this.$nextTick(), this.resetFlowCondition();
18
+ }
19
+ } },
20
+ beforeUnmount() {
21
+ this.bpmnElementSource = null, this.bpmnElementSourceRef = null;
22
+ },
23
+ methods: {
24
+ resetFlowCondition() {
25
+ if (this.bpmnElementSource = this.element.source, this.bpmnElementSourceRef = this.element.businessObject.sourceRef, this.bpmnElementSourceRef && this.bpmnElementSourceRef.default && this.bpmnElementSourceRef.default.id === this.element.id) this.flowConditionForm = { type: "default" };
26
+ else if (!this.element.businessObject.conditionExpression) this.flowConditionForm = { type: "normal" };
27
+ else {
28
+ let e = this.element.businessObject.conditionExpression;
29
+ if (this.flowConditionForm = {
30
+ ...e,
31
+ type: "condition"
32
+ }, this.flowConditionForm.resource) {
33
+ this.$set(this.flowConditionForm, "conditionType", "script"), this.$set(this.flowConditionForm, "scriptType", "externalScript");
34
+ return;
35
+ }
36
+ if (e.language) {
37
+ this.$set(this.flowConditionForm, "conditionType", "script"), this.$set(this.flowConditionForm, "scriptType", "inlineScript");
38
+ return;
39
+ }
40
+ this.$set(this.flowConditionForm, "conditionType", "expression");
41
+ }
42
+ },
43
+ updateFlowType(e) {
44
+ if (e === "condition") {
45
+ this.flowConditionRef = this.bpmnInstances.moddle.create("bpmn:FormalExpression"), this.bpmnInstances.modeling.updateProperties(this.element, { conditionExpression: this.flowConditionRef });
46
+ return;
47
+ }
48
+ if (e === "default") {
49
+ this.bpmnInstances.modeling.updateProperties(this.element, { conditionExpression: null }), this.bpmnInstances.modeling.updateProperties(this.bpmnElementSource, { default: this.element });
50
+ return;
51
+ }
52
+ this.bpmnElementSourceRef.default && this.bpmnElementSourceRef.default.id === this.element.id && this.bpmnInstances.modeling.updateProperties(this.bpmnElementSource, { default: null }), this.bpmnInstances.modeling.updateProperties(this.element, { conditionExpression: null });
53
+ },
54
+ updateFlowCondition() {
55
+ let { conditionType: e, scriptType: t, body: n, resource: r, language: i } = this.flowConditionForm, a;
56
+ e === "expression" ? a = this.bpmnInstances.moddle.create("bpmn:FormalExpression", { body: n }) : t === "inlineScript" ? (a = this.bpmnInstances.moddle.create("bpmn:FormalExpression", {
57
+ body: n,
58
+ language: i
59
+ }), this.$set(this.flowConditionForm, "resource", "")) : (this.$set(this.flowConditionForm, "body", ""), a = this.bpmnInstances.moddle.create("bpmn:FormalExpression", {
60
+ resource: r,
61
+ language: i
62
+ })), this.bpmnInstances.modeling.updateProperties(this.element, { conditionExpression: a });
63
+ }
64
+ }
65
+ }, d = { class: "panel-tab__content" };
66
+ function f(e, u, f, p, m, h) {
67
+ let g = s("ElOption"), _ = s("ElSelect"), v = s("ElFormItem"), y = s("ElInput"), b = s("ElForm");
68
+ return o(), i("div", d, [a(b, {
69
+ model: m.flowConditionForm,
70
+ "label-width": "90px",
71
+ size: "mini",
72
+ onSubmit: u[7] || (u[7] = l(() => {}, ["prevent"]))
73
+ }, {
74
+ default: c(() => [
75
+ a(v, { label: "流转类型" }, {
76
+ default: c(() => [a(_, {
77
+ modelValue: m.flowConditionForm.type,
78
+ "onUpdate:modelValue": u[0] || (u[0] = (e) => m.flowConditionForm.type = e),
79
+ onChange: h.updateFlowType
80
+ }, {
81
+ default: c(() => [
82
+ a(g, {
83
+ label: "普通流转路径",
84
+ value: "normal"
85
+ }),
86
+ a(g, {
87
+ label: "默认流转路径",
88
+ value: "default"
89
+ }),
90
+ a(g, {
91
+ label: "条件流转路径",
92
+ value: "condition"
93
+ })
94
+ ]),
95
+ _: 1
96
+ }, 8, ["modelValue", "onChange"])]),
97
+ _: 1
98
+ }),
99
+ m.flowConditionForm.type === "condition" ? (o(), n(v, {
100
+ key: "condition",
101
+ label: "条件格式"
102
+ }, {
103
+ default: c(() => [a(_, {
104
+ modelValue: m.flowConditionForm.conditionType,
105
+ "onUpdate:modelValue": u[1] || (u[1] = (e) => m.flowConditionForm.conditionType = e)
106
+ }, {
107
+ default: c(() => [a(g, {
108
+ label: "表达式",
109
+ value: "expression"
110
+ }), a(g, {
111
+ label: "脚本",
112
+ value: "script"
113
+ })]),
114
+ _: 1
115
+ }, 8, ["modelValue"])]),
116
+ _: 1
117
+ })) : r("v-if", !0),
118
+ m.flowConditionForm.conditionType && m.flowConditionForm.conditionType === "expression" ? (o(), n(v, {
119
+ key: "express",
120
+ label: "表达式"
121
+ }, {
122
+ default: c(() => [a(y, {
123
+ modelValue: m.flowConditionForm.body,
124
+ "onUpdate:modelValue": u[2] || (u[2] = (e) => m.flowConditionForm.body = e),
125
+ clearable: "",
126
+ onChange: h.updateFlowCondition
127
+ }, null, 8, ["modelValue", "onChange"])]),
128
+ _: 1
129
+ })) : r("v-if", !0),
130
+ m.flowConditionForm.conditionType && m.flowConditionForm.conditionType === "script" ? (o(), i(t, { key: 2 }, [
131
+ a(v, {
132
+ key: "language",
133
+ label: "脚本语言"
134
+ }, {
135
+ default: c(() => [a(y, {
136
+ modelValue: m.flowConditionForm.language,
137
+ "onUpdate:modelValue": u[3] || (u[3] = (e) => m.flowConditionForm.language = e),
138
+ clearable: "",
139
+ onChange: h.updateFlowCondition
140
+ }, null, 8, ["modelValue", "onChange"])]),
141
+ _: 1
142
+ }),
143
+ a(v, {
144
+ key: "scriptType",
145
+ label: "脚本类型"
146
+ }, {
147
+ default: c(() => [a(_, {
148
+ modelValue: m.flowConditionForm.scriptType,
149
+ "onUpdate:modelValue": u[4] || (u[4] = (e) => m.flowConditionForm.scriptType = e)
150
+ }, {
151
+ default: c(() => [a(g, {
152
+ label: "内联脚本",
153
+ value: "inlineScript"
154
+ }), a(g, {
155
+ label: "外部脚本",
156
+ value: "externalScript"
157
+ })]),
158
+ _: 1
159
+ }, 8, ["modelValue"])]),
160
+ _: 1
161
+ }),
162
+ m.flowConditionForm.scriptType === "inlineScript" ? (o(), n(v, {
163
+ key: "body",
164
+ label: "脚本"
165
+ }, {
166
+ default: c(() => [a(y, {
167
+ modelValue: m.flowConditionForm.body,
168
+ "onUpdate:modelValue": u[5] || (u[5] = (e) => m.flowConditionForm.body = e),
169
+ type: "textarea",
170
+ clearable: "",
171
+ onChange: h.updateFlowCondition
172
+ }, null, 8, ["modelValue", "onChange"])]),
173
+ _: 1
174
+ })) : r("v-if", !0),
175
+ m.flowConditionForm.scriptType === "externalScript" ? (o(), n(v, {
176
+ key: "resource",
177
+ label: "资源地址"
178
+ }, {
179
+ default: c(() => [a(y, {
180
+ modelValue: m.flowConditionForm.resource,
181
+ "onUpdate:modelValue": u[6] || (u[6] = (e) => m.flowConditionForm.resource = e),
182
+ clearable: "",
183
+ onChange: h.updateFlowCondition
184
+ }, null, 8, ["modelValue", "onChange"])]),
185
+ _: 1
186
+ })) : r("v-if", !0)
187
+ ], 64)) : r("v-if", !0)
188
+ ]),
189
+ _: 1
190
+ }, 8, ["model"])]);
191
+ }
192
+ var p = /* @__PURE__ */ e(u, [["render", f]]);
193
+ //#endregion
194
+ export { p as default };