@web-utils/component 4.0.16 → 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 (314) hide show
  1. package/address-input/index.mjs +76 -74
  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 -69
  8. package/carousel/index.mjs +45 -32
  9. package/chat/index.mjs +441 -266
  10. package/chunk-file-uploader/index.mjs +2 -103
  11. package/chunks/ChunkFileUploader.C3EA0e5t.mjs +114 -0
  12. package/chunks/EditableTree.C_IJBL5b.mjs +648 -0
  13. package/chunks/ElementBaseInfo.DyuFR6fE.mjs +209 -0
  14. package/chunks/ElementDialog.C0IjriTW.mjs +681 -0
  15. package/chunks/ElementForm.ButuYDPA.mjs +627 -0
  16. package/chunks/ElementListeners.Dg3e_dmp.mjs +656 -0
  17. package/chunks/ElementMultiInstance.Dmi79FqA.mjs +290 -0
  18. package/chunks/ElementOtherConfig.C2AddGTp.mjs +51 -0
  19. package/chunks/ElementProperties.CfV8UF7L.mjs +196 -0
  20. package/chunks/ElementTaskConfig.Bn7ycGGn.mjs +446 -0
  21. package/chunks/FlowCondition.C6PdqOAW.mjs +194 -0
  22. package/chunks/FlowDesigner.uJYFfKpR.mjs +5101 -0
  23. package/chunks/FormBlock.BEENc22F.mjs +117 -0
  24. package/chunks/FormCascader.CaM-oEhv.mjs +1226 -0
  25. package/chunks/FormInputTime.Bg3UIP8H.mjs +1773 -0
  26. package/chunks/FormItem.H9OOvNzT.mjs +90 -0
  27. package/chunks/FormItemGroup.D9eRy-cZ.mjs +147 -0
  28. package/chunks/FormSelect.CanodoAI.mjs +1472 -0
  29. package/chunks/FormSwitch.DTqdaFjv.mjs +296 -0
  30. package/chunks/FormTemp.DiI5EfgK.mjs +139 -0
  31. package/chunks/FyCurd.DMj1dMK9.mjs +2622 -0
  32. package/chunks/FyForm.vgR8ujEF.mjs +904 -0
  33. package/chunks/FyFormDesign.DEWT6LsX.mjs +5600 -0
  34. package/chunks/FyUEditor.D_rEYfll.mjs +221 -0
  35. package/chunks/FyUpload.B2QKfTxF.mjs +504 -0
  36. package/chunks/Keyboard.ItiRy7Gb.mjs +379 -0
  37. package/chunks/MonacoEditor.Bd5Kui-Y.mjs +301 -0
  38. package/chunks/PageableTable.Bujb0NUx.mjs +658 -0
  39. package/chunks/RecordVideo.B35_dLty.mjs +116 -0
  40. package/chunks/SignalAndMessage.CYVzlFuL.mjs +198 -0
  41. package/chunks/SplitPane.Dw96M0Yf.mjs +219 -0
  42. package/chunks/TableColumn.DJYkznbJ.mjs +180 -0
  43. package/chunks/TableView.DyIdIxAg.mjs +484 -0
  44. package/chunks/Toolbar.DHuXJAoG.mjs +219 -0
  45. package/chunks/UserTaskListeners.Bp-2qkHs.mjs +599 -0
  46. package/chunks/VueCron.GfjodnyM.mjs +1766 -0
  47. package/chunks/VueTreeSelect.9Ywl-I8e.mjs +1872 -0
  48. package/chunks/_plugin-vue_export-helper.7vrlOII_.mjs +8 -0
  49. package/chunks/checkbox.emIuFmnt.mjs +437 -0
  50. package/chunks/confirmable-mixin.BBil7dto.mjs +1646 -0
  51. package/chunks/core.DJv6Qrae.mjs +51 -0
  52. package/chunks/dataformat.Bfr4nOcA.mjs +144 -0
  53. package/chunks/dic.DgDfnovD.mjs +116 -0
  54. package/chunks/dictionary.5eKjWeAp.mjs +19 -0
  55. package/chunks/dictionary.DxZxP0ej.mjs +87 -0
  56. package/chunks/event.B4iwtUNO.mjs +4 -0
  57. package/chunks/event.eJ-c1Z3a.mjs +224 -0
  58. package/chunks/focus-trap.DT4GnqQI.mjs +211 -0
  59. package/chunks/form-input.D25eDRMq.mjs +34 -0
  60. package/chunks/form-item.CgmUuw_n.mjs +714 -0
  61. package/chunks/form-pick.Axem0gOO.mjs +7 -0
  62. package/chunks/form-validate.B1KPCHqN.mjs +11 -0
  63. package/chunks/icon.CbS8-322.mjs +259 -0
  64. package/chunks/init.DwpukyOB.mjs +115 -0
  65. package/chunks/input.PejnqwSH.mjs +547 -0
  66. package/chunks/install.yLcn5MLL.mjs +84 -0
  67. package/chunks/message.BCmee5N0.mjs +400 -0
  68. package/chunks/overlay.DubSnqma.mjs +122 -0
  69. package/chunks/packages.BGjydzjm.mjs +56 -0
  70. package/chunks/permission.DgEVNWlh.mjs +16 -0
  71. package/chunks/photo-swipe.BB0SJZg9.mjs +55 -0
  72. package/chunks/radio.BotKXqJr.mjs +274 -0
  73. package/chunks/scroll.CzORc5Zk.mjs +28 -0
  74. package/chunks/scrollbar.CAmrlKi9.mjs +345 -0
  75. package/chunks/slot.C6Ozd2e7.mjs +25 -0
  76. package/chunks/style.BmlGmjpO.mjs +325 -0
  77. package/chunks/sub-table-plus-props.B_lLth3j.mjs +28 -0
  78. package/chunks/tab-mixin.u0EZpx3j.mjs +70 -0
  79. package/chunks/tag.DPi-PLbb.mjs +141 -0
  80. package/chunks/teleport._VGEzK4d.mjs +22 -0
  81. package/chunks/tooltip.D50x7Rva.mjs +1926 -0
  82. package/chunks/typescript.DiWBU4nj.mjs +4 -0
  83. package/chunks/use-aria.BW7nWOl1.mjs +17 -0
  84. package/chunks/use-composition.mUaomyno.mjs +47 -0
  85. package/chunks/use-deprecated.BfDSbZS9.mjs +12 -0
  86. package/chunks/use-empty-values.Dy_r78F6.mjs +263 -0
  87. package/chunks/use-form-item.wsRjehHp.mjs +47 -0
  88. package/chunks/use-global-config.C9hs-O_x.mjs +56 -0
  89. package/chunks/use-id.CFO5NeoV.mjs +15 -0
  90. package/chunks/use-size.DxrwTUwf.mjs +18 -0
  91. package/chunks/util.B3sjVZoZ.mjs +103 -0
  92. package/chunks/util.g-WQEec9.mjs +223 -0
  93. package/chunks/utilSelf.ZED4DmCU.mjs +46 -0
  94. package/chunks/utils.Cs2fYBrT.mjs +60 -0
  95. package/chunks/utils.DsGhtCIO.mjs +14 -0
  96. package/chunks/validator.C4-z_t9p.mjs +5 -0
  97. package/chunks/vnode.D_SioRnx.mjs +14 -0
  98. package/code-mirror-editor/index.mjs +89 -88
  99. package/comment/index.mjs +62 -57
  100. package/configComponents.mjs +40 -50
  101. package/confirm-button/index.mjs +34 -46
  102. package/confirmable/index.mjs +7 -17
  103. package/context-menu/index.mjs +195 -174
  104. package/count-up/index.mjs +97 -105
  105. package/custom-scrollbar/index.mjs +91 -98
  106. package/data-box/index.mjs +64 -44
  107. package/data-card/index.mjs +60 -47
  108. package/data-card-text/index.mjs +63 -49
  109. package/data-display/index.mjs +71 -51
  110. package/data-icons/index.mjs +70 -50
  111. package/data-imgtext/index.mjs +67 -43
  112. package/data-operatext/index.mjs +51 -40
  113. package/data-panel/index.mjs +57 -44
  114. package/data-pay/index.mjs +105 -48
  115. package/data-price/index.mjs +48 -40
  116. package/data-progress/index.mjs +67 -44
  117. package/data-rotate/index.mjs +61 -44
  118. package/data-table-picker/index.mjs +119 -71
  119. package/data-tabs/index.mjs +67 -44
  120. package/dialog-form/index.mjs +139 -87
  121. package/dynamic-table/index.mjs +166 -109
  122. package/e-charts/index.mjs +174 -200
  123. package/easy-popup/index.mjs +91 -102
  124. package/editable-progress/index.mjs +112 -83
  125. package/editable-tree/index.mjs +2 -481
  126. package/element-dialog/index.mjs +2 -306
  127. package/ellipsis/index.mjs +124 -148
  128. package/empty-view/index.mjs +48 -65
  129. package/error-view/index.mjs +39 -51
  130. package/flex-column/index.mjs +32 -51
  131. package/flex-item/index.mjs +54 -64
  132. package/flex-row/index.mjs +32 -39
  133. package/flex-scroller/index.mjs +29 -30
  134. package/flow/index.mjs +240 -247
  135. package/flow-designer/index.mjs +2 -4709
  136. package/flow-node/index.mjs +56 -64
  137. package/flow-viewer/index.mjs +159 -157
  138. package/form-block/index.mjs +2 -147
  139. package/form-button/index.mjs +35 -47
  140. package/form-card/index.mjs +14 -25
  141. package/form-cascader/index.mjs +2 -115
  142. package/form-checkbox/index.mjs +89 -70
  143. package/form-checkbox-group/index.mjs +161 -113
  144. package/form-date-picker/index.mjs +155 -142
  145. package/form-holder/index.mjs +137 -109
  146. package/form-input/index.mjs +113 -86
  147. package/form-input-cron-expression/index.mjs +97 -76
  148. package/form-input-email/index.mjs +64 -51
  149. package/form-input-id-card/index.mjs +72 -54
  150. package/form-input-phone-number/index.mjs +71 -56
  151. package/form-input-tag/index.mjs +88 -61
  152. package/form-input-time/index.mjs +2 -73
  153. package/form-item/index.mjs +2 -142
  154. package/form-item-config-provider/index.mjs +46 -60
  155. package/form-item-group/index.mjs +2 -157
  156. package/form-radio-group/index.mjs +161 -121
  157. package/form-select/index.mjs +2 -179
  158. package/form-switch/index.mjs +2 -54
  159. package/form-table/index.mjs +131 -84
  160. package/form-table-plus/index.mjs +164 -108
  161. package/form-textarea/index.mjs +90 -56
  162. package/form-tree-select/index.mjs +89 -71
  163. package/form-tree-select-multiple/index.mjs +92 -77
  164. package/form-view/index.mjs +275 -207
  165. package/fy-array/index.mjs +121 -70
  166. package/fy-article/index.mjs +73 -60
  167. package/fy-cascader/index.mjs +113 -90
  168. package/fy-checkbox/index.mjs +96 -64
  169. package/fy-code/index.mjs +48 -50
  170. package/fy-curd/index.mjs +2 -1879
  171. package/fy-date/index.mjs +76 -41
  172. package/fy-draggable/index.mjs +322 -317
  173. package/fy-dynamic/index.mjs +259 -224
  174. package/fy-empty/index.mjs +35 -36
  175. package/fy-form/index.mjs +2 -640
  176. package/fy-form-design/index.mjs +2 -2852
  177. package/fy-form-design/style.css +1 -1
  178. package/fy-from/crud/zh.d.ts +1 -1
  179. package/fy-input/index.mjs +117 -97
  180. package/fy-input-color/index.mjs +77 -54
  181. package/fy-input-icon/index.mjs +129 -82
  182. package/fy-input-map/index.mjs +242 -183
  183. package/fy-input-number/index.mjs +74 -49
  184. package/fy-input-table/index.mjs +160 -105
  185. package/fy-input-tree/index.mjs +259 -178
  186. package/fy-progress/index.mjs +36 -39
  187. package/fy-radio/index.mjs +53 -37
  188. package/fy-rate/index.mjs +86 -70
  189. package/fy-select/index.mjs +224 -137
  190. package/fy-slider/index.mjs +68 -43
  191. package/fy-switch/index.mjs +67 -41
  192. package/fy-tabs/index.mjs +46 -46
  193. package/fy-time/index.mjs +81 -53
  194. package/fy-title/index.mjs +18 -27
  195. package/fy-tree/index.mjs +382 -286
  196. package/fy-u-editor/index.mjs +2 -357
  197. package/fy-upload/index.mjs +2 -421
  198. package/guide-steps/index.mjs +72 -71
  199. package/helper-function.d.ts +2 -30
  200. package/helper-function.mjs +41 -67
  201. package/highlight-j-s/index.mjs +50 -59
  202. package/icon-card/index.mjs +34 -36
  203. package/icon-temp/index.mjs +27 -27
  204. package/iframe-window/index.mjs +39 -32
  205. package/image-cropper/index.mjs +171 -73
  206. package/image-preview/index.mjs +187 -116
  207. package/image-viewer/index.mjs +69 -66
  208. package/index.d.ts +3 -9
  209. package/index.mjs +174 -489
  210. package/input-number-range/index.mjs +78 -58
  211. package/j-s-x-component/index.mjs +13 -15
  212. package/keyboard/index.mjs +2 -369
  213. package/license/index.mjs +106 -115
  214. package/loading-view/index.mjs +39 -51
  215. package/login/index.mjs +252 -120
  216. package/monaco-editor/index.mjs +2 -7
  217. package/name-avatar/index.mjs +61 -53
  218. package/nav-bar/index.mjs +33 -30
  219. package/not-implement/index.mjs +10 -22
  220. package/notice/index.mjs +100 -93
  221. package/package.json +3 -3
  222. package/page/index.mjs +18 -25
  223. package/page-header/index.mjs +27 -33
  224. package/page-index/index.mjs +121 -99
  225. package/page-index-top/index.mjs +79 -74
  226. package/page-skeleton/index.mjs +47 -44
  227. package/page-skeleton-new/index.mjs +79 -49
  228. package/pageable-table/index.mjs +2 -512
  229. package/pageable-view/index.mjs +279 -274
  230. package/photo-swipe/index.d.ts +4 -0
  231. package/photo-swipe/index.mjs +33 -36
  232. package/picker-table-view/index.mjs +224 -117
  233. package/present-view/index.mjs +266 -196
  234. package/queue/index.mjs +45 -53
  235. package/record-video/index.mjs +2 -134
  236. package/resize-observer/index.mjs +43 -46
  237. package/search/index.mjs +116 -107
  238. package/sign/index.mjs +103 -110
  239. package/sign-panel/index.mjs +182 -141
  240. package/skeleton/index.mjs +51 -54
  241. package/skeleton-panel/index.mjs +33 -37
  242. package/split-pane/index.mjs +3 -196
  243. package/stateful/index.mjs +69 -73
  244. package/static-pageable-table/index.mjs +72 -64
  245. package/sub-table/index.mjs +508 -206
  246. package/sub-table-plus/index.mjs +592 -230
  247. package/swiper/index.mjs +128 -120
  248. package/tab/index.mjs +117 -119
  249. package/tab-item/index.mjs +48 -56
  250. package/table-column/index.mjs +2 -225
  251. package/table-view/index.mjs +3 -326
  252. package/tabs-view/index.mjs +109 -104
  253. package/tag-render/index.mjs +79 -67
  254. package/text-ellipsis/index.mjs +94 -77
  255. package/toolbar/index.mjs +2 -254
  256. package/toolbar-button/index.mjs +145 -120
  257. package/verify/index.mjs +58 -64
  258. package/vue-cron/index.mjs +2 -1180
  259. package/vue-qr-code/index.mjs +30 -54
  260. package/vue-quill-editor/index.mjs +123 -99
  261. package/vue-tags-input/index.mjs +348 -431
  262. package/vue-tree-select/index.mjs +2 -2627
  263. package/vue-video-player/index.mjs +135 -136
  264. package/watermark/index.mjs +46 -74
  265. package/web-types.json +197 -975
  266. package/x-input-tag/index.mjs +144 -106
  267. package/chunks/ElementBaseInfo.ZADwixb5.mjs +0 -125
  268. package/chunks/ElementForm.CQ3PN5qj.mjs +0 -223
  269. package/chunks/ElementListeners.De_PRuIm.mjs +0 -215
  270. package/chunks/ElementMultiInstance.DQo2wuAQ.mjs +0 -181
  271. package/chunks/ElementOtherConfig.B1NfMTYh.mjs +0 -60
  272. package/chunks/ElementProperties.CosfDrlW.mjs +0 -112
  273. package/chunks/ElementTaskConfig.Bko0kgTp.mjs +0 -317
  274. package/chunks/FlowCondition.Y6qEYi1T.mjs +0 -102
  275. package/chunks/FormTemp.BQxO5IQq.mjs +0 -123
  276. package/chunks/MonacoEditor.D31t4FTy.mjs +0 -327
  277. package/chunks/SignalAndMessage.Bb5PFX0N.mjs +0 -85
  278. package/chunks/UserTaskListeners.Bv3BDfEI.mjs +0 -169
  279. package/chunks/_plugin-vue2_normalizer.CeySl7Fu.mjs +0 -10
  280. package/chunks/confirmable-mixin.B2TtLAdk.mjs +0 -86
  281. package/chunks/core.0Exl13Mz.mjs +0 -54
  282. package/chunks/dataformat.CpqOeGBl.mjs +0 -154
  283. package/chunks/dic.Dkl-leRW.mjs +0 -128
  284. package/chunks/dictionary.DGt59Ir7.mjs +0 -68
  285. package/chunks/dictionary.DqiP9x2m.mjs +0 -25
  286. package/chunks/event.9aDS6jcw.mjs +0 -236
  287. package/chunks/form-input.CvFdwlEV.mjs +0 -31
  288. package/chunks/form-item.LWjePsPa.mjs +0 -233
  289. package/chunks/form-pick.BFTIVn_i.mjs +0 -11
  290. package/chunks/form-validate.CVarNHKX.mjs +0 -12
  291. package/chunks/helper.BiMLcEEk.mjs +0 -41
  292. package/chunks/index.9OxHjTIE.mjs +0 -16
  293. package/chunks/index.B2TRddqf.mjs +0 -184
  294. package/chunks/index.BmYCjxZQ.mjs +0 -47
  295. package/chunks/init.DAsXSoLW.mjs +0 -122
  296. package/chunks/packages.ByyangTp.mjs +0 -58
  297. package/chunks/permission.CO31YIkD.mjs +0 -16
  298. package/chunks/slot.DXIbhGat.mjs +0 -27
  299. package/chunks/sub-table-plus-props.BVsD71hT.mjs +0 -30
  300. package/chunks/tab-mixin.BNK6dxLN.mjs +0 -81
  301. package/chunks/util.DqFv_pWg.mjs +0 -241
  302. package/chunks/utilSelf.Csq1766E.mjs +0 -48
  303. package/chunks/utils.DRcxC1Fb.mjs +0 -60
  304. package/color-picker/index.mjs +0 -78
  305. package/egd-collapse/index.mjs +0 -62
  306. package/egd-collapse-item/index.mjs +0 -72
  307. package/form-input-number/index.mjs +0 -69
  308. package/form-input-number/style.css +0 -1
  309. package/input-number/index.mjs +0 -232
  310. package/input-number/style.css +0 -1
  311. package/keep-view-alive/index.mjs +0 -117
  312. package/search-popover/index.mjs +0 -118
  313. package/search-popover/style.css +0 -1
  314. /package/{base.css → utils/style.css} +0 -0
@@ -0,0 +1,648 @@
1
+ import { t as e } from "./_plugin-vue_export-helper.7vrlOII_.mjs";
2
+ import { o as t, s as n } from "./util.B3sjVZoZ.mjs";
3
+ import r, { Fragment as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, mergeProps as d, normalizeClass as f, normalizeStyle as p, openBlock as m, renderSlot as h, resolveComponent as g, toDisplayString as _, toHandlers as v, vShow as y, withCtx as b, withDirectives as x, withModifiers as S } from "vue";
4
+ import { computePosition as C, delay as w, fastClone as T, findTreeChildren as E, hasOwn as D, isFunction as O, isNotEmpty as k, isPlainObject as A, isUndefined as j, isVerticalScrollbarVisible as M, scrollbarWidth as N } from "@web-utils/core";
5
+ import { cloneDeep as P } from "@web-utils/integrations/lodash";
6
+ import { addResizeListener as F, removeResizeListener as I } from "@web-utils/integrations/resize";
7
+ //#region src/util/reactive.js
8
+ function L(e, t) {
9
+ for (let n in t) r.set(e, n, t[n]);
10
+ return e;
11
+ }
12
+ //#endregion
13
+ //#region src/components/EditableTree.vue
14
+ var R = {
15
+ name: "EditableTree",
16
+ props: {
17
+ label: {
18
+ type: String,
19
+ default: "书签"
20
+ },
21
+ addRootNodeLabel: { type: String },
22
+ defaultExpandedKeys: {
23
+ type: Array,
24
+ default: () => []
25
+ },
26
+ newNodeBuilder: {
27
+ type: Function,
28
+ default: (e, t) => ({
29
+ name: e,
30
+ parentId: t.id
31
+ })
32
+ },
33
+ contextMenu: Boolean,
34
+ lazy: {
35
+ type: Boolean,
36
+ default: !0
37
+ },
38
+ expandFirstNode: {
39
+ type: Boolean,
40
+ default: !0
41
+ },
42
+ readonly: Boolean,
43
+ saveApi: { type: Function },
44
+ updateApi: { type: Function },
45
+ deleteApi: { type: Function },
46
+ fetchApi: { type: Function },
47
+ customRootNode: { type: {
48
+ type: Object,
49
+ default: void 0
50
+ } },
51
+ rootNode: { type: Object },
52
+ contextMenuIcon: Boolean,
53
+ contextMenuInline: Boolean,
54
+ treeProps: {
55
+ type: Object,
56
+ default: () => ({
57
+ children: "children",
58
+ label: "name",
59
+ isLeaf: (e) => D(e, "hasChildren") ? !e.hasChildren : D(e, "hasChild") ? !e.hasChild : D(e, "children") && e.children ? e.children.length === 0 : !0
60
+ })
61
+ },
62
+ menuLabel: {
63
+ type: Object,
64
+ default: () => ({
65
+ appendPeer: "添加同级节点",
66
+ appendChild: "添加",
67
+ removeNode: "删除",
68
+ editNode: "修改"
69
+ })
70
+ },
71
+ icon: {
72
+ type: [Function, Boolean],
73
+ default: () => "el-icon-collection-tag"
74
+ },
75
+ confirmButton: {
76
+ type: Boolean,
77
+ default: !0
78
+ },
79
+ addRootNodeButtonStyle: {
80
+ type: String,
81
+ default: "top"
82
+ },
83
+ reserveExpandKey: Boolean,
84
+ nodeKey: {
85
+ type: String,
86
+ default: "id"
87
+ }
88
+ },
89
+ emits: [
90
+ "add-root-node",
91
+ "root-node-loaded",
92
+ "node-loaded",
93
+ "remove-new-node",
94
+ "create-new-node",
95
+ "node-added",
96
+ "node-updated",
97
+ "on-node-click"
98
+ ],
99
+ data() {
100
+ return {
101
+ loading: !1,
102
+ showMenu: !1,
103
+ empty: !0,
104
+ expandedKeys: this.lazy ? [] : this.defaultExpandedKeys,
105
+ treeData: [],
106
+ curNode: {},
107
+ curData: {},
108
+ position: {},
109
+ text: "",
110
+ right: 4,
111
+ treeKey: Date.now()
112
+ };
113
+ },
114
+ computed: {
115
+ defaultOptions() {
116
+ return {
117
+ confirmButtonText: "确定",
118
+ cancelButtonText: "取消",
119
+ closeOnClickModal: !1,
120
+ modal: !0,
121
+ inputErrorMessage: `${this.label}名不能为空!`,
122
+ inputPlaceholder: `请输入${this.label}名...`,
123
+ inputValidator: (e) => e != null && e.trim().length > 0
124
+ };
125
+ },
126
+ innerTreeData() {
127
+ var e;
128
+ return (e = this.$attrs.data) != null && e.length ? this.$attrs.data : this.treeData;
129
+ }
130
+ },
131
+ watch: { defaultExpandedKeys: {
132
+ immediate: !0,
133
+ handler(e) {
134
+ this.expandedKeys = [...e];
135
+ }
136
+ } },
137
+ created() {
138
+ this.tryFetch();
139
+ },
140
+ mounted() {
141
+ F(this.$refs.tree.$el, this.resize), F(this.$refs.treeWrapper, this.resize);
142
+ },
143
+ beforeUnmount() {
144
+ I(this.$refs.tree.$el, this.resize), I(this.$refs.treeWrapper, this.resize);
145
+ },
146
+ methods: {
147
+ filterTreeProperties: n,
148
+ filterTreeEvents: t,
149
+ addExpandKey(e) {
150
+ this.reserveExpandKey && this.expandedKeys.push(e[this.nodeKey]);
151
+ },
152
+ removeExpandKey(e) {
153
+ this.reserveExpandKey && (this.expandedKeys = this.expandedKeys.filter((t) => t !== e[this.nodeKey]));
154
+ },
155
+ resize() {
156
+ M(this.$refs.treeWrapper) ? this.right = 4 + N : this.right = 4;
157
+ },
158
+ async showContextMenu(e, t, n) {
159
+ t.contextmenu === !1 || t.id === -1 || t.id === 0 || t.edit === !0 || this.contextMenu && (this.curNode = n, this.curData = t, this.showMenu = !0, this.$refs.tree.setCurrentKey(t.id), await this.$nextTick(), this.position = C(e, this.$refs.contextMenu), window.addEventListener("click", this.hideContextMenu));
160
+ },
161
+ hideContextMenu() {
162
+ this.showMenu = !1, window.removeEventListener("click", this.hideContextMenu);
163
+ },
164
+ async tryFetch() {
165
+ if (this.lazy === !1 && this.fetchApi) {
166
+ var e;
167
+ let t = await this.fetchApi(((e = this.rootNode) == null ? void 0 : e.id) ?? -1, {});
168
+ if (A(t.data) && (t.data = [t.data]), t.data = t.data || [], this.empty = t.data.length === 0, A(this.customRootNode)) {
169
+ let e = P(this.customRootNode);
170
+ e[this.treeProps.children || "children"] = t.data, this.treeData = [e];
171
+ } else if (O(this.customRootNode)) {
172
+ let e = this.customRootNode(t.data);
173
+ e[this.treeProps.children || "children"] = t.data, this.treeData = A(e) ? [e] : e;
174
+ } else this.treeData = t.data;
175
+ }
176
+ },
177
+ async loadNode(e, t) {
178
+ if (e.level === 0) {
179
+ var n;
180
+ let a = await this.fetchApi(((n = this.rootNode) == null ? void 0 : n.id) ?? -1, e);
181
+ if (this.empty = a.data.length === 0, A(this.customRootNode)) {
182
+ let e = P(this.customRootNode);
183
+ e[this.treeProps.children || "children"] = a.data, t([e]);
184
+ } else if (O(this.customRootNode)) {
185
+ let e = this.customRootNode(a.data);
186
+ e[this.treeProps.children || "children"] = a.data, this.treeData = A(e) ? [e] : e;
187
+ } else t(a.data);
188
+ if (await this.$nextTick(), this.$emit("root-node-loaded", a.data), this.defaultExpandedKeys) {
189
+ var r;
190
+ this.expandedKeys = [a == null || (r = a.data[0]) == null ? void 0 : r.id, ...this.defaultExpandedKeys];
191
+ } else if (this.expandFirstNode) {
192
+ var i;
193
+ this.expandedKeys = [a == null || (i = a.data[0]) == null ? void 0 : i.id];
194
+ }
195
+ } else {
196
+ if (e.leaf || e.data.isTempNode) return t([]);
197
+ let n = await this.fetchApi(e.data.id, e);
198
+ t(n.data), await this.$nextTick(), this.$emit("node-loaded", n.data);
199
+ }
200
+ },
201
+ clear() {
202
+ this.cancelEdit(), this.removeNewNode();
203
+ },
204
+ clearChecked() {
205
+ this.$refs.tree.setCheckedKeys([]);
206
+ },
207
+ removeNewNode() {
208
+ this.newChild && this.newChild.id === -1 && (console.log(this.newChild), this.$refs.tree.remove(this.newChild), this.$emit("remove-new-node"));
209
+ },
210
+ cancelEdit() {
211
+ this.editData && (j(this.editData.edit) ? this.$set(this.editData, "edit", !0) : this.editData.edit = !1);
212
+ },
213
+ async editNode(e, t) {
214
+ !this.contextMenu || this.contextMenuIcon || this.contextMenuInline ? (this.clear(), this.editData = t, this.text = t[this.treeProps.label], j(t.edit) ? this.$set(t, "edit", !0) : t.edit = !0, await this.$nextTick(), this.$refs.labelTxt.focus()) : await this.$prompt(`请输入新的${this.label}名:`, {
215
+ ...this.defaultOptions,
216
+ inputValue: t[this.treeProps.label],
217
+ beforeClose: async (e, t, n) => {
218
+ if (e === "confirm") {
219
+ try {
220
+ t.confirmButtonLoading = !0, t.confirmButtonText = "处理中...", this.text = t.inputValue, await this.onConfirm(this.curNode, this.curData), n();
221
+ } catch {
222
+ t.confirmButtonText = "确定";
223
+ }
224
+ t.confirmButtonLoading = !1;
225
+ } else n();
226
+ }
227
+ }).catch((e) => e);
228
+ },
229
+ async appendRootNode() {
230
+ this.text = "", !this.contextMenu || this.contextMenuIcon || this.contextMenuInline ? (this.clear(), this.createNewChild(void 0), this.$refs.tree.root.insertChild({ data: this.newChild }, void 0, !0), await this.scrollIntoView(!0)) : await this.$prompt(`请输入${this.label}名:`, {
231
+ ...this.defaultOptions,
232
+ beforeClose: async (e, t, n) => {
233
+ if (e === "confirm") {
234
+ try {
235
+ this.createNewChild(-1), t.confirmButtonLoading = !0, t.confirmButtonText = "处理中...";
236
+ let e = await this.saveApi(this.newNodeBuilder(t.inputValue, { id: -1 }));
237
+ this.newChild[this.treeProps.label] = t.inputValue, this.newChild.edit = !1, L(this.newChild, e.data), this.$refs.tree.root.insertChild({ data: this.newChild }, void 0, !0), await this.locateView(), n();
238
+ } catch {
239
+ t.confirmButtonText = "确定";
240
+ }
241
+ t.confirmButtonLoading = !1;
242
+ } else n();
243
+ }
244
+ }).catch((e) => e);
245
+ },
246
+ appendChildNode(e) {
247
+ this.text = "";
248
+ let t = e.expanded;
249
+ e.expand(async () => {
250
+ !this.contextMenu || this.contextMenuIcon || this.contextMenuInline ? (this.clear(), this.createNewChild(e.data.id), this.$refs.tree.append(this.newChild, e), await this.scrollIntoView(t)) : await this.$prompt(`请输入${this.label}名:`, {
251
+ ...this.defaultOptions,
252
+ beforeClose: async (t, n, r) => {
253
+ if (t === "confirm") {
254
+ try {
255
+ this.createNewChild(e.data.id), n.confirmButtonLoading = !0, n.confirmButtonText = "处理中...";
256
+ let t = await this.saveApi(this.newNodeBuilder(n.inputValue, e.data));
257
+ this.newChild[this.treeProps.label] = n.inputValue, this.newChild.edit = !1, L(this.newChild, t.data), this.$refs.tree.append(this.newChild, e), await this.locateView(), r();
258
+ } catch {
259
+ n.confirmButtonText = "确定";
260
+ }
261
+ n.confirmButtonLoading = !1;
262
+ } else r();
263
+ }
264
+ }).catch((e) => e);
265
+ });
266
+ },
267
+ appendChildNodeWithData(e, t, n) {
268
+ this.text = "";
269
+ let r = e.expanded;
270
+ e.expand(async () => {
271
+ this.clear(), this.newChild = {
272
+ id: -1,
273
+ parentId: t,
274
+ [this.treeProps.label]: n,
275
+ edit: !1,
276
+ isTempNode: !0,
277
+ hasChildren: !1
278
+ }, this.$refs.tree.append(this.newChild, e), await this.scrollIntoView(r);
279
+ });
280
+ },
281
+ appendPeerNode(e) {
282
+ e.parent && e.parent.level !== 0 ? this.appendChildNode(e.parent) : this.appendRootNode();
283
+ },
284
+ async addRootNode(e) {
285
+ this.$refs.tree.remove(e), await this.$nextTick(), this.$refs.tree.root.insertChild({ data: e }, void 0, !0);
286
+ },
287
+ async addChildNode(e) {
288
+ this.curNode && this.curNode.level !== 0 ? this.curNode.expand(async () => {
289
+ this.$refs.tree.remove(e), await this.$nextTick(), this.$refs.tree.append(e, this.curNode);
290
+ }) : await this.addRootNode(e);
291
+ },
292
+ async addPeerNode(e) {
293
+ this.curNode && this.curNode.parent && this.curNode.parent.level !== 0 ? this.curNode.parent.expand(async () => {
294
+ this.$refs.tree.remove(e), await this.$nextTick(), this.$refs.tree.append(e, this.curNode.parent);
295
+ }) : await this.addRootNode(e);
296
+ },
297
+ updateNode(e) {
298
+ let t = this.$refs.tree.getNode(e);
299
+ t && (t.data = e);
300
+ },
301
+ setCurrentKey(e) {
302
+ var t;
303
+ (t = this.$refs.tree) == null || t.setCurrentKey(e);
304
+ },
305
+ createNewChild(e) {
306
+ this.newChild = {
307
+ id: -1,
308
+ parentId: e,
309
+ [this.treeProps.label]: "",
310
+ edit: !0,
311
+ isTempNode: !0,
312
+ hasChildren: !1
313
+ }, this.$emit("create-new-node", this.newChild);
314
+ },
315
+ async removeNodeModal(e) {
316
+ await this.$confirm(`你确定要删除${this.label}[<span class="break-word" style="color: orange">${e.data[this.treeProps.label]}</span>]吗?`, "系统提示", {
317
+ type: "warning",
318
+ modal: !0,
319
+ dangerouslyUseHTMLString: !0,
320
+ iconClass: "el-icon-question",
321
+ closeOnClickModal: !1,
322
+ confirmButtonClass: "el-button--danger",
323
+ cancelButtonClass: "el-button--primary is-plain",
324
+ beforeClose: async (t, n, r) => {
325
+ if (t === "confirm") {
326
+ try {
327
+ n.confirmButtonLoading = !0, n.confirmButtonText = "删除...";
328
+ let t = e.parent, i = await this.deleteApi(e.data.id);
329
+ i.code === 0 ? (this.$message.success("删除成功!"), this.$refs.tree.remove(e), this.$emit("node-deleted", t, e.data), r()) : this.$message.error(i.message);
330
+ } catch {}
331
+ n.confirmButtonText = "确定", n.confirmButtonLoading = !1;
332
+ } else r();
333
+ }
334
+ }).catch((e) => e);
335
+ },
336
+ async removeNode(e) {
337
+ try {
338
+ let t = e.parent;
339
+ if (this.deleteApi) {
340
+ let n = await this.deleteApi(e.data.id);
341
+ n.code === 0 ? (this.$message.success("删除成功!"), this.$refs.tree.remove(e), this.$emit("node-deleted", t, e.data)) : this.$message.error(n.message);
342
+ } else this.$refs.tree.remove(e);
343
+ } catch {}
344
+ },
345
+ async onConfirm(e, t) {
346
+ if (t[this.treeProps.label] === this.text || !k(this.text)) {
347
+ this.clear();
348
+ return;
349
+ }
350
+ j(t.loading) ? this.$set(t, "loading", !0) : t.loading = !0;
351
+ try {
352
+ if (this.loading = !0, t.id === -1) {
353
+ let n = await this.saveApi(this.newNodeBuilder(this.text, e.parent.data || { id: -1 })), r = T(t);
354
+ L(t, {
355
+ ...n.data,
356
+ isTempNode: !1
357
+ }), this.$emit("node-added", t, r, e), this.registerNode(e);
358
+ } else await this.updateApi({
359
+ ...t,
360
+ [this.treeProps.label]: this.text
361
+ });
362
+ t[this.treeProps.label] = this.text, t.edit = !1, this.$emit("node-updated", t, e), this.text = "";
363
+ } catch {}
364
+ t.loading = !1, this.loading = !1;
365
+ },
366
+ onCancel(e, t) {
367
+ t.id === -1 ? this.$refs.tree.remove(e) : t.edit = !1, this.text = "";
368
+ },
369
+ nodeClick(e, t, n) {
370
+ this.hideContextMenu(), (j(e.loading) || !e.loading) && (this.curNode = t, this.curData = e, this.$emit("on-node-click", e, t, n));
371
+ },
372
+ getCurrentNode() {
373
+ return this.$refs.tree.getCurrentNode();
374
+ },
375
+ async locateView() {
376
+ await this.$nextTick();
377
+ let e = this.$el.querySelector(`[data-id="${this.newChild.id}"]`);
378
+ e && e.scrollIntoView();
379
+ },
380
+ async scrollIntoView(e) {
381
+ var t;
382
+ await this.$nextTick(), e || await w(300), (t = this.$refs) == null || (t = t.labelTxt) == null || t.focus();
383
+ },
384
+ inputKeyup(e, t, n) {
385
+ e.keyCode === 13 && this.onConfirm(t, n), e.keyCode === 27 && this.clear();
386
+ },
387
+ inputBlur(e, t, n) {
388
+ this.confirmButton || this.onConfirm(t, n);
389
+ },
390
+ getCheckedKeys() {
391
+ return this.$refs.tree.getCheckedKeys();
392
+ },
393
+ setCheckedKeys(e) {
394
+ this.$refs.tree.setCheckedKeys(e);
395
+ },
396
+ getCheckedNodes() {
397
+ return this.$refs.tree.getCheckedNodes();
398
+ },
399
+ setCheckedNodes(e) {
400
+ this.$refs.tree.setCheckedNodes(e);
401
+ },
402
+ getNode(e) {
403
+ return this.$refs.tree.getNode(e);
404
+ },
405
+ getRootNode() {
406
+ return this.$refs.tree.root;
407
+ },
408
+ findTreeNode(e) {
409
+ return E(this.$refs.tree.root.childNodes, (t) => t.data === e || t.data.id === e, "childNodes");
410
+ },
411
+ registerNode(e) {
412
+ e.store.registerNode(e), delete e.store.nodesMap[-1];
413
+ },
414
+ async reloadTree() {
415
+ this.lazy ? this.treeKey = Date.now() : await this.tryFetch();
416
+ }
417
+ }
418
+ }, z = { class: "editable-tree" }, B = {
419
+ ref: "treeWrapper",
420
+ class: "et-tree-wrapper"
421
+ }, V = {
422
+ key: 0,
423
+ style: { "padding-left": "24px" }
424
+ }, H = ["data-id"], U = { class: "node-label flex-row flex-item oh ellipsis-1" }, W = {
425
+ class: "flex-item-relative",
426
+ style: { height: "21px" }
427
+ }, G = ["title"], K = {
428
+ key: 0,
429
+ class: "handle-actions"
430
+ }, q = {
431
+ key: 1,
432
+ class: "handle-actions",
433
+ style: { display: "inline-block" }
434
+ }, J = ["data-id"], Y = { class: "menu-list" };
435
+ function X(e, t, n, r, C, w) {
436
+ let T = g("ElButton"), E = g("ElPopconfirm"), D = g("ElInput"), O = g("ElTree");
437
+ return m(), s("div", z, [
438
+ o(" 添加根节点事件\r\n @event add-root-node "),
439
+ !n.readonly && n.addRootNodeButtonStyle === "top-right" ? (m(), a(T, {
440
+ key: 0,
441
+ type: "primary",
442
+ size: "mini",
443
+ style: p([{
444
+ position: "absolute",
445
+ top: "4px",
446
+ "z-index": "1"
447
+ }, { right: `${C.right}px` }]),
448
+ icon: "el-icon-plus",
449
+ circle: "",
450
+ plain: "",
451
+ onClick: t[0] || (t[0] = S((t) => e.$emit("add-root-node"), ["stop"]))
452
+ }, null, 8, ["style"])) : o("v-if", !0),
453
+ c("div", B, [
454
+ !n.readonly && n.addRootNodeButtonStyle === "top" ? (m(), s("div", V, [u(T, {
455
+ disabled: C.loading,
456
+ size: "mini",
457
+ type: "text",
458
+ onClick: w.appendRootNode
459
+ }, {
460
+ default: b(() => [t[8] || (t[8] = c("i", { class: "el-icon-lx-add" }, null, -1)), l(" " + _(n.addRootNodeLabel ? n.addRootNodeLabel : `添加${n.label}`), 1)]),
461
+ _: 1
462
+ }, 8, ["disabled", "onClick"])])) : o("v-if", !0),
463
+ (m(), a(O, d(w.filterTreeProperties(e.$attrs), {
464
+ key: C.treeKey,
465
+ ref: "tree",
466
+ class: "flex-item",
467
+ "default-expanded-keys": C.expandedKeys,
468
+ "expand-on-click-node": !1,
469
+ "highlight-current": "",
470
+ load: w.loadNode,
471
+ data: w.innerTreeData,
472
+ props: n.treeProps,
473
+ lazy: n.lazy,
474
+ "node-key": n.nodeKey
475
+ }, v(w.filterTreeEvents(e.$listeners)), {
476
+ onNodeClick: w.nodeClick,
477
+ onNodeContextmenu: w.showContextMenu,
478
+ onNodeExpand: w.addExpandKey,
479
+ onNodeCollapse: w.removeExpandKey
480
+ }), {
481
+ default: b(({ node: r, data: a }) => [h(e.$slots, "default", {
482
+ node: r,
483
+ data: a
484
+ }, () => [o("非编辑模式"), a.edit ? (m(), s(i, { key: 1 }, [o("编辑模式"), c("span", {
485
+ "data-id": a.id,
486
+ class: "custom-tree-node flex-row flex-item oh"
487
+ }, [
488
+ n.icon ? (m(), s("i", {
489
+ key: 0,
490
+ class: f([a.loading ? "el-icon-loading" : "el-icon-edit-outline", "node-icon shrink-0"])
491
+ }, null, 2)) : o("v-if", !0),
492
+ u(D, {
493
+ ref: "labelTxt",
494
+ modelValue: C.text,
495
+ "onUpdate:modelValue": t[2] || (t[2] = (e) => C.text = e),
496
+ class: "node-input flex-item",
497
+ size: "mini",
498
+ placeholder: w.defaultOptions.inputPlaceholder,
499
+ onKeyup: (e) => w.inputKeyup(e, r, a),
500
+ onBlur: (e) => w.inputBlur(e, r, a),
501
+ onClick: t[3] || (t[3] = S(() => {}, ["stop"]))
502
+ }, null, 8, [
503
+ "modelValue",
504
+ "placeholder",
505
+ "onKeyup",
506
+ "onBlur"
507
+ ]),
508
+ n.confirmButton ? (m(), s(i, { key: 1 }, [x(u(T, {
509
+ class: "shrink-0",
510
+ size: "mini",
511
+ type: "text",
512
+ onClick: S((e) => w.onConfirm(r, a), ["stop"])
513
+ }, {
514
+ default: b(() => [...t[13] || (t[13] = [l("确定", -1)])]),
515
+ _: 1
516
+ }, 8, ["onClick"]), [[y, !a.loading]]), x(u(T, {
517
+ class: "shrink-0",
518
+ size: "mini",
519
+ type: "text",
520
+ onClick: S((e) => w.onCancel(r, a), ["stop"])
521
+ }, {
522
+ default: b(() => [...t[14] || (t[14] = [l("取消", -1)])]),
523
+ _: 1
524
+ }, 8, ["onClick"]), [[y, !a.loading]])], 64)) : o("v-if", !0)
525
+ ], 8, J)], 64)) : (m(), s("span", {
526
+ key: 0,
527
+ "data-id": a.id,
528
+ class: "custom-tree-node"
529
+ }, [
530
+ c("span", U, [
531
+ n.icon ? (m(), s("i", {
532
+ key: 0,
533
+ class: f([a.loading ? "el-icon-loading" : n.icon(a, r), "node-icon"])
534
+ }, null, 2)) : o("v-if", !0),
535
+ c("span", W, [c("span", {
536
+ class: "ellipsis-1 absolute-box et-tree-label",
537
+ title: r.label
538
+ }, [h(e.$slots, "label", {
539
+ data: a,
540
+ node: r
541
+ }, () => [l(_(r.label), 1)])], 8, G)]),
542
+ h(e.$slots, "label-suffix", {
543
+ node: r,
544
+ data: a
545
+ })
546
+ ]),
547
+ !n.contextMenu && !n.readonly ? x((m(), s("span", K, [
548
+ u(T, {
549
+ size: "mini",
550
+ type: "text",
551
+ onClick: S((e) => w.appendChildNode(r, a), ["stop"])
552
+ }, {
553
+ default: b(() => [...t[9] || (t[9] = [l("添加", -1)])]),
554
+ _: 1
555
+ }, 8, ["onClick"]),
556
+ u(T, {
557
+ size: "mini",
558
+ type: "text",
559
+ onClick: S((e) => w.editNode(r, a), ["stop"])
560
+ }, {
561
+ default: b(() => [...t[10] || (t[10] = [l("修改", -1)])]),
562
+ _: 1
563
+ }, 8, ["onClick"]),
564
+ u(E, {
565
+ class: "pop-confirm",
566
+ "icon-color": "red",
567
+ title: "你确定要删除吗?",
568
+ onConfirm: (e) => w.removeNode(r, a)
569
+ }, {
570
+ reference: b(() => [x(u(T, {
571
+ size: "mini",
572
+ style: { "margin-left": "4px" },
573
+ type: "text",
574
+ onClick: t[1] || (t[1] = S(() => {}, ["stop"]))
575
+ }, {
576
+ default: b(() => [...t[11] || (t[11] = [l("删除", -1)])]),
577
+ _: 1
578
+ }, 512), [[y, r.isLeaf]])]),
579
+ _: 2
580
+ }, 1032, ["onConfirm"])
581
+ ], 512)), [[y, !a.loading && !C.loading]]) : o("v-if", !0),
582
+ n.contextMenuIcon && n.contextMenu && !n.readonly ? x((m(), s("span", q, [u(T, {
583
+ size: "mini",
584
+ style: { padding: "6px 10px 0" },
585
+ type: "text",
586
+ onClick: S((e) => w.showContextMenu(e, a, r), ["stop"])
587
+ }, {
588
+ default: b(() => [...t[12] || (t[12] = [l(". . .", -1)])]),
589
+ _: 1
590
+ }, 8, ["onClick"])], 512)), [[y, !a.loading && !C.loading]]) : o("v-if", !0)
591
+ ], 8, H))])]),
592
+ _: 3
593
+ }, 16, [
594
+ "default-expanded-keys",
595
+ "load",
596
+ "data",
597
+ "props",
598
+ "lazy",
599
+ "node-key",
600
+ "onNodeClick",
601
+ "onNodeContextmenu",
602
+ "onNodeExpand",
603
+ "onNodeCollapse"
604
+ ])),
605
+ n.contextMenu && !n.readonly ? x((m(), s("div", {
606
+ key: 1,
607
+ ref: "contextMenu",
608
+ style: p(C.position),
609
+ class: "menu"
610
+ }, [c("ul", Y, [h(e.$slots, "context-menu", {
611
+ curNode: C.curNode,
612
+ curData: C.curData
613
+ }, () => [
614
+ x(c("li", {
615
+ class: "menu-item",
616
+ onClick: t[4] || (t[4] = (e) => w.appendPeerNode(C.curNode, C.curData))
617
+ }, [t[15] || (t[15] = c("i", {
618
+ class: "menu-item-icon el-icon-lx-add",
619
+ style: { color: "#228b22" }
620
+ }, null, -1)), l(_(n.menuLabel.appendPeer), 1)], 512), [[y, C.curData.id > -1]]),
621
+ c("li", {
622
+ class: "menu-item",
623
+ onClick: t[5] || (t[5] = (e) => w.appendChildNode(C.curNode, C.curData))
624
+ }, [t[16] || (t[16] = c("i", {
625
+ class: "menu-item-icon el-icon-lx-add",
626
+ style: { color: "#228b22" }
627
+ }, null, -1)), l(_(n.menuLabel.appendChild), 1)]),
628
+ x(c("li", {
629
+ class: "menu-item",
630
+ onClick: t[6] || (t[6] = (e) => w.editNode(C.curNode, C.curData))
631
+ }, [t[17] || (t[17] = c("i", {
632
+ class: "menu-item-icon el-icon-edit-outline",
633
+ style: { color: "#ffa500" }
634
+ }, null, -1)), l(_(n.menuLabel.editNode), 1)], 512), [[y, C.curData.id > -1]]),
635
+ x(c("li", {
636
+ class: "menu-item",
637
+ onClick: t[7] || (t[7] = (e) => w.removeNodeModal(C.curNode, C.curData))
638
+ }, [t[18] || (t[18] = c("i", {
639
+ class: "menu-item-icon el-icon-delete",
640
+ style: { color: "#f00" }
641
+ }, null, -1)), l(_(n.menuLabel.removeNode), 1)], 512), [[y, C.curNode.isLeaf]])
642
+ ])])], 4)), [[y, C.showMenu]]) : o("v-if", !0)
643
+ ], 512)
644
+ ]);
645
+ }
646
+ var Z = /* @__PURE__ */ e(R, [["render", X]]);
647
+ //#endregion
648
+ export { Z as t };