diygw-designer 1.1.10 → 1.3.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 (270) hide show
  1. package/dist/core/src/components/builder/hooks/useBuilder.d.ts +9 -0
  2. package/dist/core/src/components/builder/hooks/usePageDataSources.cjs +1 -0
  3. package/dist/core/src/components/builder/hooks/usePageDataSources.d.ts +2 -0
  4. package/dist/core/src/components/builder/hooks/usePageDataSources.js +274 -0
  5. package/dist/core/src/components/builder/src/builder.vue.cjs +1 -1
  6. package/dist/core/src/components/builder/src/builder.vue.d.ts +27 -0
  7. package/dist/core/src/components/builder/src/builder.vue.js +51 -45
  8. package/dist/core/src/components/designer/hooks/useDesigner.cjs +1 -10
  9. package/dist/core/src/components/designer/hooks/useDesigner.d.ts +29 -0
  10. package/dist/core/src/components/designer/hooks/useDesigner.js +26 -34
  11. package/dist/core/src/components/designer/src/designer.vue.cjs +1 -1
  12. package/dist/core/src/components/designer/src/designer.vue.d.ts +91 -0
  13. package/dist/core/src/components/designer/src/designer.vue.js +118 -109
  14. package/dist/core/src/components/designer/src/modules/activityBar/index.vue2.cjs +1 -1
  15. package/dist/core/src/components/designer/src/modules/activityBar/index.vue2.js +24 -22
  16. package/dist/core/src/components/designer/src/modules/editContainer/editScreenContainer.vue.cjs +1 -1
  17. package/dist/core/src/components/designer/src/modules/editContainer/editScreenContainer.vue.d.ts +2 -0
  18. package/dist/core/src/components/designer/src/modules/editContainer/editScreenContainer.vue.js +91 -85
  19. package/dist/core/src/components/designer/src/modules/editContainer/index.vue2.cjs +1 -1
  20. package/dist/core/src/components/designer/src/modules/editContainer/index.vue2.js +11 -12
  21. package/dist/core/src/components/designer/src/modules/editContainer/nodeItem.vue.cjs +1 -1
  22. package/dist/core/src/components/designer/src/modules/editContainer/nodeItem.vue.js +51 -35
  23. package/dist/core/src/components/designer/src/modules/editContainer/nodes.vue.cjs +1 -1
  24. package/dist/core/src/components/designer/src/modules/editContainer/nodes.vue.d.ts +1 -0
  25. package/dist/core/src/components/designer/src/modules/editContainer/nodes.vue.js +46 -44
  26. package/dist/core/src/components/designer/src/modules/editContainer/previewWidgets.vue.cjs +1 -1
  27. package/dist/core/src/components/designer/src/modules/editContainer/previewWidgets.vue.js +53 -50
  28. package/dist/core/src/components/designer/src/modules/preview/index.vue.cjs +1 -1
  29. package/dist/core/src/components/designer/src/modules/preview/index.vue.d.ts +46 -0
  30. package/dist/core/src/components/designer/src/modules/preview/index.vue.js +5 -108
  31. package/dist/core/src/components/designer/src/modules/preview/index.vue2.cjs +1 -1
  32. package/dist/core/src/components/designer/src/modules/preview/index.vue2.js +150 -2
  33. package/dist/core/src/components/designer/src/modules/rightSidebar/index.vue.d.ts +3 -1
  34. package/dist/core/src/components/designer/src/modules/rightSidebar/index.vue2.cjs +1 -1
  35. package/dist/core/src/components/designer/src/modules/rightSidebar/index.vue2.js +83 -35
  36. package/dist/diygw-designer/miniapp.d.ts +5 -0
  37. package/dist/diygw-designer.css +1 -1
  38. package/dist/hooks/src/common/clipboard.d.ts +10 -0
  39. package/dist/hooks/src/designer/epActionModalSharing.cjs +1 -0
  40. package/dist/hooks/src/designer/epActionModalSharing.d.ts +9 -0
  41. package/dist/hooks/src/designer/epActionModalSharing.js +7 -0
  42. package/dist/hooks/src/designer/index.d.ts +3 -0
  43. package/dist/hooks/src/designer/pageScriptEditorBus.cjs +1 -0
  44. package/dist/hooks/src/designer/pageScriptEditorBus.d.ts +4 -0
  45. package/dist/hooks/src/designer/pageScriptEditorBus.js +5 -0
  46. package/dist/hooks/src/designer/resolveFormBindingsInView.cjs +1 -0
  47. package/dist/hooks/src/designer/resolveFormBindingsInView.d.ts +8 -0
  48. package/dist/hooks/src/designer/resolveFormBindingsInView.js +15 -0
  49. package/dist/hooks/src/designer/usePageManager.d.ts +9 -0
  50. package/dist/hooks/src/logic/useFormItem.cjs +1 -1
  51. package/dist/hooks/src/logic/useFormItem.d.ts +4 -0
  52. package/dist/hooks/src/logic/useFormItem.js +13 -5
  53. package/dist/hooks/src/plugin/useComponentManager.cjs +1 -1
  54. package/dist/hooks/src/plugin/useComponentManager.d.ts +20 -0
  55. package/dist/hooks/src/plugin/useComponentManager.js +164 -108
  56. package/dist/hooks/src/plugin/usePageSchema.cjs +2 -2
  57. package/dist/hooks/src/plugin/usePageSchema.d.ts +7 -0
  58. package/dist/hooks/src/plugin/usePageSchema.js +7 -6
  59. package/dist/index.cjs +1 -1
  60. package/dist/index.js +165 -115
  61. package/dist/manager/src/pageManager.cjs +1 -1
  62. package/dist/manager/src/pageManager.d.ts +11 -1
  63. package/dist/manager/src/pageManager.js +113 -84
  64. package/dist/miniapp-designer/src/MiniProgramDesigner.vue.cjs +1 -0
  65. package/dist/miniapp-designer/src/MiniProgramDesigner.vue.d.ts +28 -0
  66. package/dist/miniapp-designer/src/MiniProgramDesigner.vue.js +75 -0
  67. package/dist/miniapp-designer/src/MiniProgramDesigner.vue2.cjs +1 -0
  68. package/dist/miniapp-designer/src/MiniProgramDesigner.vue2.js +4 -0
  69. package/dist/miniapp-designer/src/components/mp-col-editor/view.vue.cjs +1 -0
  70. package/dist/miniapp-designer/src/components/mp-col-editor/view.vue.d.ts +20 -0
  71. package/dist/miniapp-designer/src/components/mp-col-editor/view.vue.js +7 -0
  72. package/dist/miniapp-designer/src/components/mp-col-editor/view.vue2.cjs +1 -0
  73. package/dist/miniapp-designer/src/components/mp-col-editor/view.vue2.js +148 -0
  74. package/dist/miniapp-designer/src/components/mp-content/index.cjs +1 -0
  75. package/dist/miniapp-designer/src/components/mp-content/index.d.ts +3 -0
  76. package/dist/miniapp-designer/src/components/mp-content/index.js +74 -0
  77. package/dist/miniapp-designer/src/components/mp-content/view.vue.cjs +1 -0
  78. package/dist/miniapp-designer/src/components/mp-content/view.vue.d.ts +24 -0
  79. package/dist/miniapp-designer/src/components/mp-content/view.vue.js +7 -0
  80. package/dist/miniapp-designer/src/components/mp-content/view.vue2.cjs +1 -0
  81. package/dist/miniapp-designer/src/components/mp-content/view.vue2.js +34 -0
  82. package/dist/miniapp-designer/src/components/mp-flex/design.vue.cjs +1 -0
  83. package/dist/miniapp-designer/src/components/mp-flex/design.vue.d.ts +27 -0
  84. package/dist/miniapp-designer/src/components/mp-flex/design.vue.js +7 -0
  85. package/dist/miniapp-designer/src/components/mp-flex/design.vue2.cjs +1 -0
  86. package/dist/miniapp-designer/src/components/mp-flex/design.vue2.js +68 -0
  87. package/dist/miniapp-designer/src/components/mp-flex/entry.vue.cjs +1 -0
  88. package/dist/miniapp-designer/src/components/mp-flex/entry.vue.d.ts +26 -0
  89. package/dist/miniapp-designer/src/components/mp-flex/entry.vue.js +4 -0
  90. package/dist/miniapp-designer/src/components/mp-flex/entry.vue2.cjs +1 -0
  91. package/dist/miniapp-designer/src/components/mp-flex/entry.vue2.js +38 -0
  92. package/dist/miniapp-designer/src/components/mp-flex/index.cjs +1 -0
  93. package/dist/miniapp-designer/src/components/mp-flex/index.d.ts +3 -0
  94. package/dist/miniapp-designer/src/components/mp-flex/index.js +121 -0
  95. package/dist/miniapp-designer/src/components/mp-flex/listBind.vue.cjs +1 -0
  96. package/dist/miniapp-designer/src/components/mp-flex/listBind.vue.d.ts +1016 -0
  97. package/dist/miniapp-designer/src/components/mp-flex/listBind.vue.js +7 -0
  98. package/dist/miniapp-designer/src/components/mp-flex/listBind.vue2.cjs +1 -0
  99. package/dist/miniapp-designer/src/components/mp-flex/listBind.vue2.js +311 -0
  100. package/dist/miniapp-designer/src/components/mp-flex/listConstants.cjs +1 -0
  101. package/dist/miniapp-designer/src/components/mp-flex/listConstants.d.ts +2 -0
  102. package/dist/miniapp-designer/src/components/mp-flex/listConstants.js +4 -0
  103. package/dist/miniapp-designer/src/components/mp-flex/view.vue.cjs +1 -0
  104. package/dist/miniapp-designer/src/components/mp-flex/view.vue.d.ts +29 -0
  105. package/dist/miniapp-designer/src/components/mp-flex/view.vue.js +7 -0
  106. package/dist/miniapp-designer/src/components/mp-flex/view.vue2.cjs +1 -0
  107. package/dist/miniapp-designer/src/components/mp-flex/view.vue2.js +302 -0
  108. package/dist/miniapp-designer/src/components/mp-image/index.cjs +1 -0
  109. package/dist/miniapp-designer/src/components/mp-image/index.d.ts +3 -0
  110. package/dist/miniapp-designer/src/components/mp-image/index.js +41 -0
  111. package/dist/miniapp-designer/src/components/mp-image/view.vue.cjs +1 -0
  112. package/dist/miniapp-designer/src/components/mp-image/view.vue.d.ts +6 -0
  113. package/dist/miniapp-designer/src/components/mp-image/view.vue.js +4 -0
  114. package/dist/miniapp-designer/src/components/mp-image/view.vue2.cjs +1 -0
  115. package/dist/miniapp-designer/src/components/mp-image/view.vue2.js +54 -0
  116. package/dist/miniapp-designer/src/components/mp-page/index.cjs +1 -0
  117. package/dist/miniapp-designer/src/components/mp-page/index.d.ts +3 -0
  118. package/dist/miniapp-designer/src/components/mp-page/index.js +68 -0
  119. package/dist/miniapp-designer/src/components/mp-page/view.vue.cjs +1 -0
  120. package/dist/miniapp-designer/src/components/mp-page/view.vue.d.ts +24 -0
  121. package/dist/miniapp-designer/src/components/mp-page/view.vue.js +5 -0
  122. package/dist/miniapp-designer/src/components/mp-page/view.vue2.cjs +1 -0
  123. package/dist/miniapp-designer/src/components/mp-page/view.vue2.js +24 -0
  124. package/dist/miniapp-designer/src/components/mp-qrcode/index.cjs +1 -0
  125. package/dist/miniapp-designer/src/components/mp-qrcode/index.d.ts +3 -0
  126. package/dist/miniapp-designer/src/components/mp-qrcode/index.js +48 -0
  127. package/dist/miniapp-designer/src/components/mp-qrcode/view.vue.cjs +1 -0
  128. package/dist/miniapp-designer/src/components/mp-qrcode/view.vue.d.ts +6 -0
  129. package/dist/miniapp-designer/src/components/mp-qrcode/view.vue.js +4 -0
  130. package/dist/miniapp-designer/src/components/mp-qrcode/view.vue2.cjs +1 -0
  131. package/dist/miniapp-designer/src/components/mp-qrcode/view.vue2.js +69 -0
  132. package/dist/miniapp-designer/src/components/mp-text/index.cjs +1 -0
  133. package/dist/miniapp-designer/src/components/mp-text/index.d.ts +3 -0
  134. package/dist/miniapp-designer/src/components/mp-text/index.js +58 -0
  135. package/dist/miniapp-designer/src/components/mp-text/view.vue.cjs +1 -0
  136. package/dist/miniapp-designer/src/components/mp-text/view.vue.d.ts +9 -0
  137. package/dist/miniapp-designer/src/components/mp-text/view.vue.js +4 -0
  138. package/dist/miniapp-designer/src/components/mp-text/view.vue2.cjs +1 -0
  139. package/dist/miniapp-designer/src/components/mp-text/view.vue2.js +66 -0
  140. package/dist/miniapp-designer/src/components/mp-title/index.cjs +1 -0
  141. package/dist/miniapp-designer/src/components/mp-title/index.d.ts +3 -0
  142. package/dist/miniapp-designer/src/components/mp-title/index.js +23 -0
  143. package/dist/miniapp-designer/src/components/mp-title/view.vue.cjs +1 -0
  144. package/dist/miniapp-designer/src/components/mp-title/view.vue.d.ts +5 -0
  145. package/dist/miniapp-designer/src/components/mp-title/view.vue.js +7 -0
  146. package/dist/miniapp-designer/src/components/mp-title/view.vue2.cjs +1 -0
  147. package/dist/miniapp-designer/src/components/mp-title/view.vue2.js +26 -0
  148. package/dist/miniapp-designer/src/composables/mergeMpUserPropsStyle.cjs +1 -0
  149. package/dist/miniapp-designer/src/composables/mergeMpUserPropsStyle.d.ts +5 -0
  150. package/dist/miniapp-designer/src/composables/mergeMpUserPropsStyle.js +8 -0
  151. package/dist/miniapp-designer/src/composables/mpDataSourcePathTree.d.ts +6 -0
  152. package/dist/miniapp-designer/src/composables/useMpFormBind.cjs +1 -0
  153. package/dist/miniapp-designer/src/composables/useMpFormBind.d.ts +20 -0
  154. package/dist/miniapp-designer/src/composables/useMpFormBind.js +88 -0
  155. package/dist/miniapp-designer/src/index.d.ts +4 -0
  156. package/dist/miniapp-designer/src/main.d.ts +0 -0
  157. package/dist/miniapp-designer/src/miniappDesignerProps.d.ts +39 -0
  158. package/dist/miniapp-designer/src/pageStorageNamespace.cjs +1 -0
  159. package/dist/miniapp-designer/src/pageStorageNamespace.d.ts +3 -0
  160. package/dist/miniapp-designer/src/pageStorageNamespace.js +11 -0
  161. package/dist/miniapp-designer/src/setupMiniProgramDesigner.cjs +1 -0
  162. package/dist/miniapp-designer/src/setupMiniProgramDesigner.d.ts +4 -0
  163. package/dist/miniapp-designer/src/setupMiniProgramDesigner.js +43 -0
  164. package/dist/miniapp.cjs +1 -0
  165. package/dist/miniapp.js +10 -0
  166. package/dist/style.css +1 -1
  167. package/dist/types/src/dataSource.d.ts +229 -0
  168. package/dist/types/src/designer.d.ts +6 -0
  169. package/dist/types/src/diygw-designer.d.ts +14 -0
  170. package/dist/types/src/index.d.ts +1 -0
  171. package/dist/ui-kit/base-ui/src/collapse/collapse.vue.cjs +1 -1
  172. package/dist/ui-kit/base-ui/src/collapse/collapse.vue.js +2 -2
  173. package/dist/ui-kit/base-ui/src/collapse/collapsePanel.vue.cjs +1 -1
  174. package/dist/ui-kit/base-ui/src/collapse/collapsePanel.vue.js +2 -2
  175. package/dist/ui-kit/base-ui/src/node/node.vue.cjs +1 -1
  176. package/dist/ui-kit/base-ui/src/node/node.vue.js +180 -128
  177. package/dist/ui-kit/panel-ui/src/{components/EBackgroudImage → activitybars/dataSourceSettings}/index.vue.cjs +1 -1
  178. package/dist/ui-kit/panel-ui/src/activitybars/dataSourceSettings/index.vue.d.ts +2 -0
  179. package/dist/ui-kit/panel-ui/src/{components/EShadowEditor → activitybars/dataSourceSettings}/index.vue.js +2 -2
  180. package/dist/ui-kit/panel-ui/src/activitybars/dataSourceSettings/index.vue2.cjs +5 -0
  181. package/dist/ui-kit/panel-ui/src/activitybars/dataSourceSettings/index.vue2.js +2567 -0
  182. package/dist/ui-kit/panel-ui/src/activitybars/index.cjs +1 -1
  183. package/dist/ui-kit/panel-ui/src/activitybars/index.d.ts +9 -1
  184. package/dist/ui-kit/panel-ui/src/activitybars/index.js +16 -10
  185. package/dist/ui-kit/panel-ui/src/{components/EBorderEditor → activitybars/pageManager}/index.vue.cjs +1 -1
  186. package/dist/ui-kit/panel-ui/src/activitybars/{sourceCode → pageManager}/index.vue.d.ts +2 -2
  187. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/index.vue.js +7 -0
  188. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/index.vue2.cjs +1 -0
  189. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/index.vue2.js +184 -0
  190. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageDraftBootstrap.cjs +1 -0
  191. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageDraftBootstrap.d.ts +24 -0
  192. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageDraftBootstrap.js +108 -0
  193. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageTreePersistenceHost.vue.cjs +1 -0
  194. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageTreePersistenceHost.vue.d.ts +2 -0
  195. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageTreePersistenceHost.vue.js +4 -0
  196. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageTreePersistenceHost.vue2.cjs +1 -0
  197. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/pageTreePersistenceHost.vue2.js +11 -0
  198. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/storage.cjs +1 -0
  199. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/storage.d.ts +52 -0
  200. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/storage.js +277 -0
  201. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/usePageManagerSingleton.cjs +1 -0
  202. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/usePageManagerSingleton.d.ts +58 -0
  203. package/dist/ui-kit/panel-ui/src/activitybars/pageManager/usePageManagerSingleton.js +356 -0
  204. package/dist/ui-kit/panel-ui/src/components/EActionEditor/index.vue2.cjs +1 -1
  205. package/dist/ui-kit/panel-ui/src/components/EActionEditor/index.vue2.js +80 -65
  206. package/dist/ui-kit/panel-ui/src/components/EActionEditor/src/EActionEditorItem.vue.cjs +1 -1
  207. package/dist/ui-kit/panel-ui/src/components/EActionEditor/src/EActionEditorItem.vue.js +61 -46
  208. package/dist/ui-kit/panel-ui/src/components/EBackgroudImage/index.vue2.cjs +1 -1
  209. package/dist/ui-kit/panel-ui/src/components/EBackgroudImage/index.vue2.js +5 -36
  210. package/dist/ui-kit/panel-ui/src/components/EBackgroudImage/index.vue3.cjs +1 -0
  211. package/dist/ui-kit/panel-ui/src/components/EBackgroudImage/index.vue3.js +38 -0
  212. package/dist/ui-kit/panel-ui/src/components/EBorderEditor/index.vue2.cjs +1 -1
  213. package/dist/ui-kit/panel-ui/src/components/EBorderEditor/index.vue2.js +5 -164
  214. package/dist/ui-kit/panel-ui/src/components/EBorderEditor/index.vue3.cjs +1 -0
  215. package/dist/ui-kit/panel-ui/src/components/EBorderEditor/index.vue3.js +166 -0
  216. package/dist/ui-kit/panel-ui/src/components/EShadowEditor/index.vue2.cjs +1 -1
  217. package/dist/ui-kit/panel-ui/src/components/EShadowEditor/index.vue2.js +5 -183
  218. package/dist/ui-kit/panel-ui/src/components/EShadowEditor/index.vue3.cjs +1 -0
  219. package/dist/ui-kit/panel-ui/src/components/EShadowEditor/index.vue3.js +185 -0
  220. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.cjs +1 -0
  221. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.d.ts +3 -0
  222. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.js +13 -0
  223. package/dist/ui-kit/panel-ui/src/components/{EShadowEditor → EVariableBindEditor}/index.vue.cjs +1 -1
  224. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.vue.d.ts +23 -0
  225. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.vue.js +7 -0
  226. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.vue2.cjs +1 -0
  227. package/dist/ui-kit/panel-ui/src/components/EVariableBindEditor/index.vue2.js +472 -0
  228. package/dist/ui-kit/panel-ui/src/components/MonacoEditor/index.vue.cjs +1 -1
  229. package/dist/ui-kit/panel-ui/src/components/MonacoEditor/index.vue.d.ts +1 -1
  230. package/dist/ui-kit/panel-ui/src/components/MonacoEditor/index.vue.js +2 -2
  231. package/dist/ui-kit/panel-ui/src/components/epActionModal/epScriptEdit.vue.cjs +1 -1
  232. package/dist/ui-kit/panel-ui/src/components/epActionModal/epScriptEdit.vue.js +1 -1
  233. package/dist/ui-kit/panel-ui/src/components/epActionModal/index.vue.cjs +1 -1
  234. package/dist/ui-kit/panel-ui/src/components/epActionModal/index.vue.js +5 -2
  235. package/dist/ui-kit/panel-ui/src/components/epActionModal/index.vue2.cjs +11 -1
  236. package/dist/ui-kit/panel-ui/src/components/epActionModal/index.vue2.js +461 -145
  237. package/dist/ui-kit/panel-ui/src/components/index.cjs +1 -1
  238. package/dist/ui-kit/panel-ui/src/components/index.js +14 -13
  239. package/dist/ui-kit/panel-ui/src/index.cjs +1 -1
  240. package/dist/ui-kit/panel-ui/src/index.d.ts +7 -2
  241. package/dist/ui-kit/panel-ui/src/index.js +24 -8
  242. package/dist/ui-kit/panel-ui/src/rightSidebars/attribute/modules/attributeItem.vue.cjs +2 -1
  243. package/dist/ui-kit/panel-ui/src/rightSidebars/attribute/modules/attributeItem.vue.js +43 -35
  244. package/dist/ui-kit/panel-ui/src/rightSidebars/style/style.vue2.cjs +1 -1
  245. package/dist/ui-kit/panel-ui/src/rightSidebars/style/style.vue2.js +34 -31
  246. package/dist/utils/src/common/data.cjs +1 -1
  247. package/dist/utils/src/common/data.d.ts +52 -1
  248. package/dist/utils/src/common/data.js +384 -191
  249. package/dist/utils/src/common/dataSourcePathTree.cjs +1 -0
  250. package/dist/utils/src/common/dataSourcePathTree.d.ts +20 -0
  251. package/dist/utils/src/common/dataSourcePathTree.js +242 -0
  252. package/dist/utils/src/common/index.d.ts +3 -0
  253. package/dist/utils/src/common/loopBindPath.cjs +1 -0
  254. package/dist/utils/src/common/loopBindPath.d.ts +18 -0
  255. package/dist/utils/src/common/loopBindPath.js +50 -0
  256. package/dist/utils/src/common/schemaExpression.cjs +1 -0
  257. package/dist/utils/src/common/schemaExpression.d.ts +44 -0
  258. package/dist/utils/src/common/schemaExpression.js +148 -0
  259. package/dist/utils/src/index.d.ts +1 -0
  260. package/dist/utils/src/mqtt/mqttJs.cjs +1 -0
  261. package/dist/utils/src/mqtt/mqttJs.d.ts +32 -0
  262. package/dist/utils/src/mqtt/mqttJs.js +52 -0
  263. package/package.json +9 -2
  264. package/uno.config.ts +36 -0
  265. package/dist/ui-kit/panel-ui/src/activitybars/sourceCode/index.vue.cjs +0 -1
  266. package/dist/ui-kit/panel-ui/src/activitybars/sourceCode/index.vue.js +0 -4
  267. package/dist/ui-kit/panel-ui/src/activitybars/sourceCode/index.vue2.cjs +0 -1
  268. package/dist/ui-kit/panel-ui/src/activitybars/sourceCode/index.vue2.js +0 -54
  269. package/dist/ui-kit/panel-ui/src/components/EBackgroudImage/index.vue.js +0 -7
  270. package/dist/ui-kit/panel-ui/src/components/EBorderEditor/index.vue.js +0 -7
@@ -42,8 +42,13 @@ export declare function useBuilder(): {
42
42
  description?: string | undefined;
43
43
  editData?: object | undefined;
44
44
  field?: string | undefined;
45
+ displayBindField?: string | undefined;
46
+ displayExpr?: string | undefined;
47
+ dynamicStyleExpr?: string | undefined;
45
48
  id?: string | undefined;
46
49
  input?: boolean | undefined;
50
+ isHideToolbar?: boolean | undefined;
51
+ isNotLayout?: boolean | undefined;
47
52
  label?: string | undefined;
48
53
  noFormItem?: boolean | undefined;
49
54
  on?: {
@@ -74,6 +79,10 @@ export declare function useBuilder(): {
74
79
  }[];
75
80
  script?: string | undefined;
76
81
  };
82
+ publishMqttDataSource: (mqttSourceId: string, publishItemId: string) => void;
83
+ refreshHttpDataSource: (httpSourceId: string) => void;
84
+ registerHttpDataSourceRefreshHandler: (fn: ((httpSourceId: string) => void) | undefined) => void;
85
+ registerMqttDataSourcePublishHandler: (fn: ((mqttSourceId: string, publishItemId: string) => void) | undefined) => void;
77
86
  removeComponentInstance: (id: string, scopeName?: string) => void;
78
87
  setDefaultComponentIds: (schemas: import('../../../../../types/src/index').ComponentSchema[]) => void;
79
88
  setDesignMode: (isDesign?: boolean) => void;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("mqtt"),_=require("vue");;/* empty css */;/* empty css */;/* empty css */require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");require("../../../../../manager/src/pluginManager.cjs");;/* empty css */require("vue-draggable-plus");const P=require("../../../../../utils/src/common/data.cjs");require("jsep");const H=require("../../../../../utils/src/mqtt/mqttJs.cjs"),k=H.resolveMqttConnect(R),C=new Map;function J(e){try{return JSON.parse(e)}catch{return e}}function V(e,o){const a=e.split("/"),y=o.split("/");for(let l=0;l<a.length;l++){const q=a[l];if(q==="#")return l===a.length-1;if(y[l]===void 0)return!1;if(q!=="+"&&q!==y[l])return!1}return a.length===y.length}function j(e){var a;if((a=e.subscriptions)!=null&&a.length)return e.subscriptions;const o=e.subscribeTopics??[];return o.length?o.filter(Boolean).map((y,l)=>({id:`${e.id}_sub_${l}`,name:y,qos:e.qos??0,responseVariableKey:`mqtt_${e.id}_${l}`.replace(/[^a-zA-Z0-9_]/g,"_"),topic:y})):[]}function U(e){var l;if((l=e.publishes)!=null&&l.length)return e.publishes;const o=e.publish,a=((o==null?void 0:o.topic)??e.publishTopic??"").trim();return a?(o==null?void 0:o.enabled)===!1?[]:(o&&typeof o.onConnect=="boolean"?o.onConnect:!!e.publishOnMount)?[{id:`${e.id}_pub_legacy`,name:"默认发布",payloadTemplate:(o==null?void 0:o.payloadJson)??e.publishPayloadJson??"{}",qos:e.qos??0,sendOnConnect:!0,topic:a,triggerHint:"onConnect"}]:[]:[]}function x(e){const o=[];function a(){for(e.registerMqttDataSourcePublishHandler(void 0),e.registerHttpDataSourceRefreshHandler(void 0);o.length;){const t=o.pop();try{t==null||t()}catch{}}}function y(t,i){const n=P.applyDataSourceMappingsExtended(t,i,{customFuncs:e.funcs.value,formModel:q()});Object.keys(n).length>0&&e.setFormData(n,"default")}function l(t,i){var d;const n=(d=t.responseVariableKey)==null?void 0:d.trim();if(n){e.setFormData({[n]:i},"default");return}y(i,t.mappings)}function q(){return e.forms.default??{}}async function Q(t){const i={...t.headers??{}};try{if(t.useMock){const r=J(t.mockBody??"{}");l(t,r);return}const n=q(),d=P.buildPageHttpUrlWithQuery(t,n,{customFuncs:e.funcs.value}),v=(t.body??"").trim(),s=t.method&&t.method!=="GET"&&v!==""?t.body:void 0;!i["content-type"]&&!i["Content-Type"]&&s&&(i["content-type"]="application/json");const f=await fetch(d,{body:s,headers:i,method:t.method??"GET"}),p=await f.text(),c=J(p);f.ok&&(t.designCachedResponseText=P.formatJsonTextPreserveUnicode(p)),l(t,c)}catch(n){console.error("[diygw dataSource] HTTP 请求失败",t.id,n)}}function $(t){let i=null,n=!1;async function d(){n||await Q(t)}return d(),t.pollIntervalMs&&t.pollIntervalMs>0&&(i=setInterval(()=>void d(),t.pollIntervalMs)),()=>{n=!0,i&&(clearInterval(i),i=null)}}function I(t){var f,p;const i=((f=t.brokerUrl)==null?void 0:f.trim())||"";if(!i)return console.warn("[diygw dataSource] MQTT 数据源未配置 brokerUrl",t.id),()=>{};const n=j(t).filter(c=>{var r;return(r=c.topic)==null?void 0:r.trim()}),d=U(t),v=d.some(c=>{var r;return c.sendOnConnect&&((r=c.topic)==null?void 0:r.trim())}),s=d.some(c=>{var r;return(r=c.topic)==null?void 0:r.trim()});if(n.length===0&&!v&&!s)return()=>{};try{if(!k)return console.warn("[diygw dataSource] MQTT 运行时未启用(未安装 mqtt 依赖),已跳过连接",t.id),()=>{};const c=t.defaultSubscribeQos??t.qos??0,r=t.defaultPublishQos??t.qos??0,u=k(i,H.buildMqttJsConnectOptions({clean:t.clean,clientId:((p=t.clientId)==null?void 0:p.trim())||`diygw_${Math.random().toString(36).slice(2,12)}`,password:t.password,protocolVersion:t.protocolVersion??4,username:t.username}));return C.set(t.id,u),u.on("message",(S,w)=>{var M;if(typeof S!="string")return;const m=S.trim(),h=H.mqttPayloadToUtf8(w);let T;try{T=JSON.parse(h)}catch{T=h}const b={};for(const O of n){const D=O.topic.trim();if(!D||!V(D,m))continue;const F=(M=O.responseVariableKey)==null?void 0:M.trim();F&&(b[F]=T)}Object.keys(b).length>0&&e.setFormData(b,"default")}),u.on("connect",()=>{var w;for(const m of n){const h=m.topic.trim();if(!h)continue;const T=m.qos??c;u.subscribe(h,{qos:T},b=>{b&&console.error("[diygw dataSource] MQTT 订阅失败",t.id,h,b)})}const S=q();for(const m of d){if(!m.sendOnConnect||!((w=m.topic)!=null&&w.trim()))continue;const h=P.buildPageMqttPublishPayload(m,S,{customFuncs:e.funcs.value});u.publish(m.topic.trim(),h,{qos:m.qos??r})}}),u.on("error",S=>{console.error("[diygw dataSource] MQTT 错误",t.id,S)}),()=>{try{C.delete(t.id),u.end(!0)}catch{}}}catch(c){return console.error("[diygw dataSource] MQTT 连接初始化失败",t.id,c),()=>{}}}_.watch(()=>({design:e.isDesignMode.value,root:e.pageSchema.schemas[0]}),({design:t,root:i})=>{if(a(),t||!i)return;const n=i.dataSources;if(!(n!=null&&n.length))return;const d=n.filter(s=>s.type==="http"&&s.config.enabled!==!1),v=n.filter(s=>s.type==="mqtt"&&s.config.enabled!==!1);for(const{config:s}of d)o.push($(s));for(const{config:s}of v)o.push(I(s));e.registerMqttDataSourcePublishHandler((s,f)=>{var h,T;const p=C.get(s);if(!p){console.warn("[diygw dataSource] MQTT 未连接或已销毁",s);return}const c=e.pageSchema.schemas[0],r=(h=c==null?void 0:c.dataSources)==null?void 0:h.find(b=>b.type==="mqtt"&&b.config.id===s);if(!r||r.type!=="mqtt")return;const u=U(r.config).find(b=>b.id===f);if(!((T=u==null?void 0:u.topic)!=null&&T.trim()))return;const S=r.config.defaultPublishQos??r.config.qos??0,w=q(),m=P.buildPageMqttPublishPayload(u,w,{customFuncs:e.funcs.value});p.publish(u.topic.trim(),m,{qos:u.qos??S})}),e.registerHttpDataSourceRefreshHandler(s=>{var c;const f=e.pageSchema.schemas[0],p=(c=f==null?void 0:f.dataSources)==null?void 0:c.find(r=>{var u;return r.type==="http"&&((u=r.config)==null?void 0:u.id)===s});if(!p||p.type!=="http"){console.warn("[diygw dataSource] HTTP 源未找到",s);return}p.config.enabled!==!1&&Q(p.config)})},{deep:!0,flush:"post",immediate:!0}),_.onUnmounted(a)}exports.usePageDataSources=x;
@@ -0,0 +1,2 @@
1
+ import { PageManager } from '../../../../../manager/src/index';
2
+ export declare function usePageDataSources(pageManager: PageManager): void;
@@ -0,0 +1,274 @@
1
+ import $ from "mqtt";
2
+ import { watch as x, onUnmounted as I } from "vue";
3
+ /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
+ import "@vueuse/core";
7
+ import "../../../../../hooks/src/store/index.js";
8
+ import "../../../../../manager/src/pluginManager.js";
9
+ /* empty css */
10
+ import "vue-draggable-plus";
11
+ import { buildPageMqttPublishPayload as D, buildPageHttpUrlWithQuery as R, formatJsonTextPreserveUnicode as V, applyDataSourceMappingsExtended as B } from "../../../../../utils/src/common/data.js";
12
+ import "jsep";
13
+ import { resolveMqttConnect as E, buildMqttJsConnectOptions as K, mqttPayloadToUtf8 as j } from "../../../../../utils/src/mqtt/mqttJs.js";
14
+ const M = E($), P = /* @__PURE__ */ new Map();
15
+ function _(o) {
16
+ try {
17
+ return JSON.parse(o);
18
+ } catch {
19
+ return o;
20
+ }
21
+ }
22
+ function z(o, e) {
23
+ const a = o.split("/"), y = e.split("/");
24
+ for (let u = 0; u < a.length; u++) {
25
+ const q = a[u];
26
+ if (q === "#")
27
+ return u === a.length - 1;
28
+ if (y[u] === void 0) return !1;
29
+ if (q !== "+" && q !== y[u])
30
+ return !1;
31
+ }
32
+ return a.length === y.length;
33
+ }
34
+ function G(o) {
35
+ var a;
36
+ if ((a = o.subscriptions) != null && a.length) return o.subscriptions;
37
+ const e = o.subscribeTopics ?? [];
38
+ return e.length ? e.filter(Boolean).map((y, u) => ({
39
+ id: `${o.id}_sub_${u}`,
40
+ name: y,
41
+ qos: o.qos ?? 0,
42
+ responseVariableKey: `mqtt_${o.id}_${u}`.replace(/[^a-zA-Z0-9_]/g, "_"),
43
+ topic: y
44
+ })) : [];
45
+ }
46
+ function k(o) {
47
+ var u;
48
+ if ((u = o.publishes) != null && u.length) return o.publishes;
49
+ const e = o.publish, a = ((e == null ? void 0 : e.topic) ?? o.publishTopic ?? "").trim();
50
+ return a ? (e == null ? void 0 : e.enabled) === !1 ? [] : (e && typeof e.onConnect == "boolean" ? e.onConnect : !!o.publishOnMount) ? [
51
+ {
52
+ id: `${o.id}_pub_legacy`,
53
+ name: "默认发布",
54
+ payloadTemplate: (e == null ? void 0 : e.payloadJson) ?? o.publishPayloadJson ?? "{}",
55
+ qos: o.qos ?? 0,
56
+ sendOnConnect: !0,
57
+ topic: a,
58
+ triggerHint: "onConnect"
59
+ }
60
+ ] : [] : [];
61
+ }
62
+ function rt(o) {
63
+ const e = [];
64
+ function a() {
65
+ for (o.registerMqttDataSourcePublishHandler(void 0), o.registerHttpDataSourceRefreshHandler(void 0); e.length; ) {
66
+ const t = e.pop();
67
+ try {
68
+ t == null || t();
69
+ } catch {
70
+ }
71
+ }
72
+ }
73
+ function y(t, i) {
74
+ const n = B(t, i, {
75
+ customFuncs: o.funcs.value,
76
+ formModel: q()
77
+ });
78
+ Object.keys(n).length > 0 && o.setFormData(n, "default");
79
+ }
80
+ function u(t, i) {
81
+ var d;
82
+ const n = (d = t.responseVariableKey) == null ? void 0 : d.trim();
83
+ if (n) {
84
+ o.setFormData({ [n]: i }, "default");
85
+ return;
86
+ }
87
+ y(i, t.mappings);
88
+ }
89
+ function q() {
90
+ return o.forms.default ?? {};
91
+ }
92
+ async function C(t) {
93
+ const i = {
94
+ ...t.headers ?? {}
95
+ };
96
+ try {
97
+ if (t.useMock) {
98
+ const r = _(t.mockBody ?? "{}");
99
+ u(t, r);
100
+ return;
101
+ }
102
+ const n = q(), d = R(t, n, {
103
+ customFuncs: o.funcs.value
104
+ }), v = (t.body ?? "").trim(), s = t.method && t.method !== "GET" && v !== "" ? t.body : void 0;
105
+ !i["content-type"] && !i["Content-Type"] && s && (i["content-type"] = "application/json");
106
+ const f = await fetch(d, {
107
+ body: s,
108
+ headers: i,
109
+ method: t.method ?? "GET"
110
+ }), m = await f.text(), c = _(m);
111
+ f.ok && (t.designCachedResponseText = V(m)), u(t, c);
112
+ } catch (n) {
113
+ console.error("[diygw dataSource] HTTP 请求失败", t.id, n);
114
+ }
115
+ }
116
+ function J(t) {
117
+ let i = null, n = !1;
118
+ async function d() {
119
+ n || await C(t);
120
+ }
121
+ return d(), t.pollIntervalMs && t.pollIntervalMs > 0 && (i = setInterval(() => void d(), t.pollIntervalMs)), () => {
122
+ n = !0, i && (clearInterval(i), i = null);
123
+ };
124
+ }
125
+ function U(t) {
126
+ var f, m;
127
+ const i = ((f = t.brokerUrl) == null ? void 0 : f.trim()) || "";
128
+ if (!i)
129
+ return console.warn("[diygw dataSource] MQTT 数据源未配置 brokerUrl", t.id), () => {
130
+ };
131
+ const n = G(t).filter((c) => {
132
+ var r;
133
+ return (r = c.topic) == null ? void 0 : r.trim();
134
+ }), d = k(t), v = d.some((c) => {
135
+ var r;
136
+ return c.sendOnConnect && ((r = c.topic) == null ? void 0 : r.trim());
137
+ }), s = d.some((c) => {
138
+ var r;
139
+ return (r = c.topic) == null ? void 0 : r.trim();
140
+ });
141
+ if (n.length === 0 && !v && !s)
142
+ return () => {
143
+ };
144
+ try {
145
+ if (!M)
146
+ return console.warn(
147
+ "[diygw dataSource] MQTT 运行时未启用(未安装 mqtt 依赖),已跳过连接",
148
+ t.id
149
+ ), () => {
150
+ };
151
+ const c = t.defaultSubscribeQos ?? t.qos ?? 0, r = t.defaultPublishQos ?? t.qos ?? 0, l = M(
152
+ i,
153
+ K({
154
+ clean: t.clean,
155
+ clientId: ((m = t.clientId) == null ? void 0 : m.trim()) || `diygw_${Math.random().toString(36).slice(2, 12)}`,
156
+ password: t.password,
157
+ protocolVersion: t.protocolVersion ?? 4,
158
+ username: t.username
159
+ })
160
+ );
161
+ return P.set(t.id, l), l.on("message", (S, w) => {
162
+ var H;
163
+ if (typeof S != "string") return;
164
+ const p = S.trim(), h = j(w);
165
+ let T;
166
+ try {
167
+ T = JSON.parse(h);
168
+ } catch {
169
+ T = h;
170
+ }
171
+ const b = {};
172
+ for (const Q of n) {
173
+ const F = Q.topic.trim();
174
+ if (!F || !z(F, p)) continue;
175
+ const O = (H = Q.responseVariableKey) == null ? void 0 : H.trim();
176
+ O && (b[O] = T);
177
+ }
178
+ Object.keys(b).length > 0 && o.setFormData(b, "default");
179
+ }), l.on("connect", () => {
180
+ var w;
181
+ for (const p of n) {
182
+ const h = p.topic.trim();
183
+ if (!h) continue;
184
+ const T = p.qos ?? c;
185
+ l.subscribe(h, { qos: T }, (b) => {
186
+ b && console.error("[diygw dataSource] MQTT 订阅失败", t.id, h, b);
187
+ });
188
+ }
189
+ const S = q();
190
+ for (const p of d) {
191
+ if (!p.sendOnConnect || !((w = p.topic) != null && w.trim())) continue;
192
+ const h = D(p, S, {
193
+ customFuncs: o.funcs.value
194
+ });
195
+ l.publish(p.topic.trim(), h, { qos: p.qos ?? r });
196
+ }
197
+ }), l.on("error", (S) => {
198
+ console.error("[diygw dataSource] MQTT 错误", t.id, S);
199
+ }), () => {
200
+ try {
201
+ P.delete(t.id), l.end(!0);
202
+ } catch {
203
+ }
204
+ };
205
+ } catch (c) {
206
+ return console.error("[diygw dataSource] MQTT 连接初始化失败", t.id, c), () => {
207
+ };
208
+ }
209
+ }
210
+ x(
211
+ () => ({
212
+ design: o.isDesignMode.value,
213
+ root: o.pageSchema.schemas[0]
214
+ }),
215
+ ({ design: t, root: i }) => {
216
+ if (a(), t || !i) return;
217
+ const n = i.dataSources;
218
+ if (!(n != null && n.length)) return;
219
+ const d = n.filter(
220
+ (s) => s.type === "http" && s.config.enabled !== !1
221
+ ), v = n.filter(
222
+ (s) => s.type === "mqtt" && s.config.enabled !== !1
223
+ );
224
+ for (const { config: s } of d)
225
+ e.push(J(s));
226
+ for (const { config: s } of v)
227
+ e.push(U(s));
228
+ o.registerMqttDataSourcePublishHandler(
229
+ (s, f) => {
230
+ var h, T;
231
+ const m = P.get(s);
232
+ if (!m) {
233
+ console.warn(
234
+ "[diygw dataSource] MQTT 未连接或已销毁",
235
+ s
236
+ );
237
+ return;
238
+ }
239
+ const c = o.pageSchema.schemas[0], r = (h = c == null ? void 0 : c.dataSources) == null ? void 0 : h.find(
240
+ (b) => b.type === "mqtt" && b.config.id === s
241
+ );
242
+ if (!r || r.type !== "mqtt") return;
243
+ const l = k(r.config).find(
244
+ (b) => b.id === f
245
+ );
246
+ if (!((T = l == null ? void 0 : l.topic) != null && T.trim())) return;
247
+ const S = r.config.defaultPublishQos ?? r.config.qos ?? 0, w = q(), p = D(l, w, {
248
+ customFuncs: o.funcs.value
249
+ });
250
+ m.publish(l.topic.trim(), p, {
251
+ qos: l.qos ?? S
252
+ });
253
+ }
254
+ ), o.registerHttpDataSourceRefreshHandler((s) => {
255
+ var c;
256
+ const f = o.pageSchema.schemas[0], m = (c = f == null ? void 0 : f.dataSources) == null ? void 0 : c.find(
257
+ (r) => {
258
+ var l;
259
+ return r.type === "http" && ((l = r.config) == null ? void 0 : l.id) === s;
260
+ }
261
+ );
262
+ if (!m || m.type !== "http") {
263
+ console.warn("[diygw dataSource] HTTP 源未找到", s);
264
+ return;
265
+ }
266
+ m.config.enabled !== !1 && C(m.config);
267
+ });
268
+ },
269
+ { deep: !0, flush: "post", immediate: !0 }
270
+ ), I(a);
271
+ }
272
+ export {
273
+ rt as usePageDataSources
274
+ };
@@ -1 +1 @@
1
- "use strict";const e=require("vue");;/* empty css */const g=require("../../../../../ui-kit/base-ui/src/asyncLoader/baseLoader.vue.cjs");;/* empty css */;/* empty css */const D=require("../../../../../ui-kit/base-ui/src/node/node.vue.cjs");;/* empty css */const i=require("../../../../../utils/src/common/data.cjs");require("jsep");const N=require("../../../../../hooks/src/common/createEventBus.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const R=require("../../../../../hooks/src/designer/useBuiderDisabled.cjs"),F=require("../../../../../hooks/src/designer/useBuilderContext.cjs"),I=require("../../../../../hooks/src/designer/usePageManager.cjs"),w=require("../../../../../hooks/src/logic/useForm.cjs"),u=require("../../../../../manager/src/pluginManager.cjs");require("vue-draggable-plus");const A=require("../../../../../ui-kit/panel-ui/src/components/index.cjs");;/* empty css */const V=require("../hooks/useBuilder.cjs"),P={key:0,class:"diygw-loading-box"},K={class:"diygw-builder-main ep-scoped"},L={class:"diygw-loading-box"},Y=e.defineComponent({__name:"builder",props:{disabled:{type:Boolean},fieldStates:{},formData:{},pageSchema:{}},emits:["change","ready"],setup(m,{expose:f,emit:_}){const a=m,c=_;A.setupPage(u.pluginManager);const d=u.pluginManager.component.get("epBuilderSlot"),{formInstances:h,getData:v,getFormInstance:y,getForms:q,pageManager:r,ready:s,resetData:B,setData:l,setForms:k,validate:M,validateAll:C}=V.useBuilder(),p=e.ref(0);e.watch(()=>a.pageSchema,t=>{var n;(n=t==null?void 0:t.schemas)!=null&&n.length&&(i.migrateComponentProps(t,!0),i.deepCompareAndModify(r.pageSchema,t),r.mountMonitor.reset(),p.value++,s.value=!1)},{deep:!0,immediate:!0}),e.watch(()=>a.formData,t=>{t&&l(t)},{deep:!0,immediate:!0}),N.createEventBus(),R.provideBuilderDisabled(e.computed(()=>a.disabled)),e.provide(F.BUILDER_KEY,{fieldStateMap:e.computed(()=>{var n;const t={};return(n=a.fieldStates)==null||n.forEach(o=>{t[o.field]=o}),t}),slots:e.useSlots()}),I.providePageManager(r),e.provide(w.FORM_INSTANCES_KEY,h);function E(){const t=e.watch(()=>r.mountMonitor.isAllMounted.value,n=>{n&&(t&&t(),b())})}function b(){s.value=!0,c("ready",r),i.findSchemas(r.pageSchema.schemas,t=>{var n;return(n=t.on)!=null&&n.diygwReady&&r.doActions(t.on.diygwReady),!1})}const S=e.getCurrentInstance();return r.addComponentInstance("builder",S),r.hook.register("formChange",t=>{c("change",t)}),f({getData:v,getFormInstance:y,getForms:q,pageManager:r,ready:s,resetData:B,setData:l,setForms:k,validate:M,validateAll:C}),(t,n)=>!e.unref(u.pluginManager).designer.initialized.value||e.unref(r).pageSchema.schemas.length===0?(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(e.unref(g))])):(e.openBlock(),e.createBlock(e.Suspense,{key:p.value,onResolve:E},{default:e.withCtx(()=>[e.createElementVNode("div",K,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r).pageSchema.schemas,(o,x)=>(e.openBlock(),e.createBlock(e.unref(D),{key:x,"component-schema":o},null,8,["component-schema"]))),128)),e.unref(d)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d)),{key:0})):e.createCommentVNode("",!0)])]),fallback:e.withCtx(()=>[e.createElementVNode("div",L,[e.createVNode(e.unref(g))])]),_:1}))}});module.exports=Y;
1
+ "use strict";const e=require("vue");;/* empty css */const g=require("../../../../../ui-kit/base-ui/src/asyncLoader/baseLoader.vue.cjs");;/* empty css */;/* empty css */const x=require("../../../../../ui-kit/base-ui/src/node/node.vue.cjs");;/* empty css */const s=require("../../../../../utils/src/common/data.cjs");require("jsep");const F=require("../../../../../hooks/src/common/createEventBus.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");const I=require("../../../../../hooks/src/designer/resolveFormBindingsInView.cjs"),R=require("../../../../../hooks/src/designer/useBuiderDisabled.cjs"),w=require("../../../../../hooks/src/designer/useBuilderContext.cjs"),N=require("../../../../../hooks/src/designer/usePageManager.cjs"),V=require("../../../../../hooks/src/logic/useForm.cjs"),u=require("../../../../../manager/src/pluginManager.cjs");require("vue-draggable-plus");const P=require("../../../../../ui-kit/panel-ui/src/components/index.cjs");;/* empty css */require("../../../../../ui-kit/panel-ui/src/activitybars/pageManager/storage.cjs");require("../../../../../ui-kit/panel-ui/src/activitybars/pageManager/pageDraftBootstrap.cjs");const A=require("../hooks/useBuilder.cjs"),K=require("../hooks/usePageDataSources.cjs"),L={key:0,class:"diygw-loading-box"},Y={class:"diygw-builder-main ep-scoped"},z={class:"diygw-loading-box"},O=e.defineComponent({__name:"builder",props:{disabled:{type:Boolean},fieldStates:{},formData:{},pageSchema:{}},emits:["change","ready"],setup(m,{expose:f,emit:_}){const a=m,c=_;P.setupPage(u.pluginManager);const d=u.pluginManager.component.get("epBuilderSlot"),{formInstances:v,getData:q,getFormInstance:h,getForms:B,pageManager:t,ready:i,resetData:y,setData:l,setForms:k,validate:M,validateAll:C}=A.useBuilder();K.usePageDataSources(t);const p=e.ref(0);e.watch(()=>a.pageSchema,r=>{var n;(n=r==null?void 0:r.schemas)!=null&&n.length&&(s.migrateComponentProps(r,!0),s.deepCompareAndModify(t.pageSchema,r),t.mountMonitor.reset(),p.value++,i.value=!1)},{deep:!0,immediate:!0}),e.watch(()=>a.formData,r=>{r&&l(r)},{deep:!0,immediate:!0}),F.createEventBus(),I.provideResolveFormBindingsInView(!0),R.provideBuilderDisabled(e.computed(()=>a.disabled)),e.provide(w.BUILDER_KEY,{fieldStateMap:e.computed(()=>{var n;const r={};return(n=a.fieldStates)==null||n.forEach(o=>{r[o.field]=o}),r}),slots:e.useSlots()}),N.providePageManager(t),e.provide(V.FORM_INSTANCES_KEY,v);function E(){const r=e.watch(()=>t.mountMonitor.isAllMounted.value,n=>{n&&(r&&r(),S())})}function S(){i.value=!0,c("ready",t),s.findSchemas(t.pageSchema.schemas,r=>{var n;return(n=r.on)!=null&&n.diygwReady&&t.doActions(r.on.diygwReady),!1})}const b=e.getCurrentInstance();return t.addComponentInstance("builder",b),t.hook.register("formChange",r=>{c("change",r)}),f({getData:q,getFormInstance:h,getForms:B,pageManager:t,ready:i,resetData:y,setData:l,setForms:k,validate:M,validateAll:C}),(r,n)=>!e.unref(u.pluginManager).designer.initialized.value||e.unref(t).pageSchema.schemas.length===0?(e.openBlock(),e.createElementBlock("div",L,[e.createVNode(e.unref(g))])):(e.openBlock(),e.createBlock(e.Suspense,{key:p.value,onResolve:E},{default:e.withCtx(()=>[e.createElementVNode("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).pageSchema.schemas,(o,D)=>(e.openBlock(),e.createBlock(e.unref(x),{key:D,"component-schema":o},null,8,["component-schema"]))),128)),e.unref(d)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d)),{key:0})):e.createCommentVNode("",!0)])]),fallback:e.withCtx(()=>[e.createElementVNode("div",z,[e.createVNode(e.unref(g))])]),_:1}))}});module.exports=O;
@@ -49,8 +49,13 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
49
49
  description?: string | undefined;
50
50
  editData?: object | undefined;
51
51
  field?: string | undefined;
52
+ displayBindField?: string | undefined;
53
+ displayExpr?: string | undefined;
54
+ dynamicStyleExpr?: string | undefined;
52
55
  id?: string | undefined;
53
56
  input?: boolean | undefined;
57
+ isHideToolbar?: boolean | undefined;
58
+ isNotLayout?: boolean | undefined;
54
59
  label?: string | undefined;
55
60
  noFormItem?: boolean | undefined;
56
61
  on?: {
@@ -81,6 +86,10 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
81
86
  }[];
82
87
  script?: string | undefined;
83
88
  };
89
+ publishMqttDataSource: (mqttSourceId: string, publishItemId: string) => void;
90
+ refreshHttpDataSource: (httpSourceId: string) => void;
91
+ registerHttpDataSourceRefreshHandler: (fn: ((httpSourceId: string) => void) | undefined) => void;
92
+ registerMqttDataSourcePublishHandler: (fn: ((mqttSourceId: string, publishItemId: string) => void) | undefined) => void;
84
93
  removeComponentInstance: (id: string, scopeName?: string) => void;
85
94
  setDefaultComponentIds: (schemas: import('../../../../../types/src/index').ComponentSchema[]) => void;
86
95
  setDesignMode: (isDesign?: boolean) => void;
@@ -138,8 +147,13 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
138
147
  description?: string | undefined;
139
148
  editData?: object | undefined;
140
149
  field?: string | undefined;
150
+ displayBindField?: string | undefined;
151
+ displayExpr?: string | undefined;
152
+ dynamicStyleExpr?: string | undefined;
141
153
  id?: string | undefined;
142
154
  input?: boolean | undefined;
155
+ isHideToolbar?: boolean | undefined;
156
+ isNotLayout?: boolean | undefined;
143
157
  label?: string | undefined;
144
158
  noFormItem?: boolean | undefined;
145
159
  on?: {
@@ -170,6 +184,10 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
170
184
  }[];
171
185
  script?: string | undefined;
172
186
  };
187
+ publishMqttDataSource: (mqttSourceId: string, publishItemId: string) => void;
188
+ refreshHttpDataSource: (httpSourceId: string) => void;
189
+ registerHttpDataSourceRefreshHandler: (fn: ((httpSourceId: string) => void) | undefined) => void;
190
+ registerMqttDataSourcePublishHandler: (fn: ((mqttSourceId: string, publishItemId: string) => void) | undefined) => void;
173
191
  removeComponentInstance: (id: string, scopeName?: string) => void;
174
192
  setDefaultComponentIds: (schemas: import('../../../../../types/src/index').ComponentSchema[]) => void;
175
193
  setDesignMode: (isDesign?: boolean) => void;
@@ -221,8 +239,13 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
221
239
  description?: string | undefined;
222
240
  editData?: object | undefined;
223
241
  field?: string | undefined;
242
+ displayBindField?: string | undefined;
243
+ displayExpr?: string | undefined;
244
+ dynamicStyleExpr?: string | undefined;
224
245
  id?: string | undefined;
225
246
  input?: boolean | undefined;
247
+ isHideToolbar?: boolean | undefined;
248
+ isNotLayout?: boolean | undefined;
226
249
  label?: string | undefined;
227
250
  noFormItem?: boolean | undefined;
228
251
  on?: {
@@ -253,6 +276,10 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
253
276
  }[];
254
277
  script?: string | undefined;
255
278
  };
279
+ publishMqttDataSource: (mqttSourceId: string, publishItemId: string) => void;
280
+ refreshHttpDataSource: (httpSourceId: string) => void;
281
+ registerHttpDataSourceRefreshHandler: (fn: ((httpSourceId: string) => void) | undefined) => void;
282
+ registerMqttDataSourcePublishHandler: (fn: ((mqttSourceId: string, publishItemId: string) => void) | undefined) => void;
256
283
  removeComponentInstance: (id: string, scopeName?: string) => void;
257
284
  setDefaultComponentIds: (schemas: import('../../../../../types/src/index').ComponentSchema[]) => void;
258
285
  setDesignMode: (isDesign?: boolean) => void;
@@ -1,6 +1,6 @@
1
- import { defineComponent as w, ref as L, watch as m, computed as g, provide as h, useSlots as Y, getCurrentInstance as $, createElementBlock as y, createBlock as d, unref as r, openBlock as a, createVNode as _, Suspense as z, withCtx as v, createElementVNode as B, createCommentVNode as O, Fragment as T, renderList as U, resolveDynamicComponent as j } from "vue";
1
+ import { defineComponent as K, ref as L, watch as m, computed as g, provide as h, useSlots as Y, getCurrentInstance as $, createElementBlock as y, createBlock as p, unref as r, openBlock as a, createVNode as _, Suspense as z, withCtx as v, createElementVNode as B, createCommentVNode as O, Fragment as T, renderList as U, resolveDynamicComponent as j } from "vue";
2
2
  /* empty css */
3
- import C from "../../../../../ui-kit/base-ui/src/asyncLoader/baseLoader.vue.js";
3
+ import S from "../../../../../ui-kit/base-ui/src/asyncLoader/baseLoader.vue.js";
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import q from "../../../../../ui-kit/base-ui/src/node/node.vue.js";
@@ -10,19 +10,23 @@ import "jsep";
10
10
  import { createEventBus as Q } from "../../../../../hooks/src/common/createEventBus.js";
11
11
  import "@vueuse/core";
12
12
  import "../../../../../hooks/src/store/index.js";
13
- import { provideBuilderDisabled as W } from "../../../../../hooks/src/designer/useBuiderDisabled.js";
14
- import { BUILDER_KEY as X } from "../../../../../hooks/src/designer/useBuilderContext.js";
15
- import { providePageManager as Z } from "../../../../../hooks/src/designer/usePageManager.js";
16
- import { FORM_INSTANCES_KEY as ee } from "../../../../../hooks/src/logic/useForm.js";
17
- import { pluginManager as p } from "../../../../../manager/src/pluginManager.js";
13
+ import { provideResolveFormBindingsInView as W } from "../../../../../hooks/src/designer/resolveFormBindingsInView.js";
14
+ import { provideBuilderDisabled as X } from "../../../../../hooks/src/designer/useBuiderDisabled.js";
15
+ import { BUILDER_KEY as Z } from "../../../../../hooks/src/designer/useBuilderContext.js";
16
+ import { providePageManager as ee } from "../../../../../hooks/src/designer/usePageManager.js";
17
+ import { FORM_INSTANCES_KEY as te } from "../../../../../hooks/src/logic/useForm.js";
18
+ import { pluginManager as d } from "../../../../../manager/src/pluginManager.js";
18
19
  import "vue-draggable-plus";
19
- import { setupPage as te } from "../../../../../ui-kit/panel-ui/src/components/index.js";
20
+ import { setupPage as oe } from "../../../../../ui-kit/panel-ui/src/components/index.js";
20
21
  /* empty css */
21
- import { useBuilder as oe } from "../hooks/useBuilder.js";
22
- const re = {
22
+ import "../../../../../ui-kit/panel-ui/src/activitybars/pageManager/storage.js";
23
+ import "../../../../../ui-kit/panel-ui/src/activitybars/pageManager/pageDraftBootstrap.js";
24
+ import { useBuilder as re } from "../hooks/useBuilder.js";
25
+ import { usePageDataSources as ae } from "../hooks/usePageDataSources.js";
26
+ const ie = {
23
27
  key: 0,
24
28
  class: "diygw-loading-box"
25
- }, ae = { class: "diygw-builder-main ep-scoped" }, ie = { class: "diygw-loading-box" }, De = /* @__PURE__ */ w({
29
+ }, ne = { class: "diygw-builder-main ep-scoped" }, se = { class: "diygw-loading-box" }, Ne = /* @__PURE__ */ K({
26
30
  __name: "builder",
27
31
  props: {
28
32
  disabled: { type: Boolean },
@@ -31,22 +35,24 @@ const re = {
31
35
  pageSchema: {}
32
36
  },
33
37
  emits: ["change", "ready"],
34
- setup(M, { expose: S, emit: b }) {
35
- const i = M, l = b;
36
- te(p);
37
- const c = p.component.get("epBuilderSlot"), {
38
+ setup(C, { expose: M, emit: b }) {
39
+ const i = C, l = b;
40
+ oe(d);
41
+ const c = d.component.get("epBuilderSlot"), {
38
42
  formInstances: k,
39
- getData: E,
40
- getFormInstance: D,
43
+ getData: D,
44
+ getFormInstance: E,
41
45
  getForms: R,
42
46
  pageManager: t,
43
47
  ready: s,
44
- resetData: x,
48
+ resetData: I,
45
49
  setData: u,
46
- setForms: I,
47
- validate: A,
48
- validateAll: F
49
- } = oe(), f = L(0);
50
+ setForms: x,
51
+ validate: F,
52
+ validateAll: A
53
+ } = re();
54
+ ae(t);
55
+ const f = L(0);
50
56
  m(
51
57
  () => i.pageSchema,
52
58
  (e) => {
@@ -66,7 +72,7 @@ const re = {
66
72
  deep: !0,
67
73
  immediate: !0
68
74
  }
69
- ), Q(), W(g(() => i.disabled)), h(X, {
75
+ ), Q(), W(!0), X(g(() => i.disabled)), h(Z, {
70
76
  fieldStateMap: g(() => {
71
77
  var o;
72
78
  const e = {};
@@ -75,53 +81,53 @@ const re = {
75
81
  }), e;
76
82
  }),
77
83
  slots: Y()
78
- }), Z(t), h(ee, k);
84
+ }), ee(t), h(te, k);
79
85
  function N() {
80
86
  const e = m(
81
87
  () => t.mountMonitor.isAllMounted.value,
82
88
  (o) => {
83
- o && (e && e(), K());
89
+ o && (e && e(), P());
84
90
  }
85
91
  );
86
92
  }
87
- function K() {
93
+ function P() {
88
94
  s.value = !0, l("ready", t), J(t.pageSchema.schemas, (e) => {
89
95
  var o;
90
96
  return (o = e.on) != null && o.diygwReady && t.doActions(e.on.diygwReady), !1;
91
97
  });
92
98
  }
93
- const P = $();
94
- return t.addComponentInstance("builder", P), t.hook.register("formChange", (e) => {
99
+ const V = $();
100
+ return t.addComponentInstance("builder", V), t.hook.register("formChange", (e) => {
95
101
  l("change", e);
96
- }), S({
97
- getData: E,
98
- getFormInstance: D,
102
+ }), M({
103
+ getData: D,
104
+ getFormInstance: E,
99
105
  getForms: R,
100
106
  pageManager: t,
101
107
  ready: s,
102
- resetData: x,
108
+ resetData: I,
103
109
  setData: u,
104
- setForms: I,
105
- validate: A,
106
- validateAll: F
107
- }), (e, o) => !r(p).designer.initialized.value || r(t).pageSchema.schemas.length === 0 ? (a(), y("div", re, [
108
- _(r(C))
109
- ])) : (a(), d(z, {
110
+ setForms: x,
111
+ validate: F,
112
+ validateAll: A
113
+ }), (e, o) => !r(d).designer.initialized.value || r(t).pageSchema.schemas.length === 0 ? (a(), y("div", ie, [
114
+ _(r(S))
115
+ ])) : (a(), p(z, {
110
116
  key: f.value,
111
117
  onResolve: N
112
118
  }, {
113
119
  default: v(() => [
114
- B("div", ae, [
115
- (a(!0), y(T, null, U(r(t).pageSchema.schemas, (n, V) => (a(), d(r(q), {
116
- key: V,
120
+ B("div", ne, [
121
+ (a(!0), y(T, null, U(r(t).pageSchema.schemas, (n, w) => (a(), p(r(q), {
122
+ key: w,
117
123
  "component-schema": n
118
124
  }, null, 8, ["component-schema"]))), 128)),
119
- r(c) ? (a(), d(j(r(c)), { key: 0 })) : O("", !0)
125
+ r(c) ? (a(), p(j(r(c)), { key: 0 })) : O("", !0)
120
126
  ])
121
127
  ]),
122
128
  fallback: v(() => [
123
- B("div", ie, [
124
- _(r(C))
129
+ B("div", se, [
130
+ _(r(S))
125
131
  ])
126
132
  ]),
127
133
  _: 1
@@ -129,5 +135,5 @@ const re = {
129
135
  }
130
136
  });
131
137
  export {
132
- De as default
138
+ Ne as default
133
139
  };
@@ -1,10 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("vue"),I=require("../../../../../hooks/src/common/clipboard.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");;/* empty css */;/* empty css */;/* empty css */const D=require("../../../../../manager/src/pageManager.cjs"),g=require("../../../../../manager/src/pluginManager.cjs"),C=require("../../../../../manager/src/revoke.cjs");;/* empty css */require("vue-draggable-plus");const a=require("../../../../../utils/src/common/data.cjs");require("jsep");let d={schemas:[{id:"root",label:"页面",props:{style:{padding:"16px"}},type:"page",children:[]}],script:`const { defineExpose, find } = diygw;
2
-
3
- function test (){
4
- console.log('test')
5
- }
6
-
7
- // 通过defineExpose暴露的函数或者属性
8
- defineExpose({
9
- test
10
- })`};function w(s,h){const M=m.ref(!1),c=D.createPageManager(),t=c.pageSchema,i=m.reactive({disabledHover:!1,hoverNode:null,matched:[],selectedNode:null}),f=C.useRevoke(t,i,l),{duplicate:v}=I.useClipboard(t,l,e=>f.push(e)),b={desktop:{},mobile:{mode:"mobile",width:"390px"},tablet:{mode:"tablet",width:"780px"}};m.watchEffect(()=>{s.defaultSchema?d=s.defaultSchema:s.formMode&&(d.schemas=g.pluginManager.designer.formSchema,g.pluginManager.component.hide("form")),s.formMode||g.pluginManager.component.show("form");const e=s.canvasMode??"desktop";t.canvas={mode:e,...b[e],...d.canvas},q(),c.setDefaultComponentIds(d.schemas)}),c.setDesignMode();function q(){if(!s.formMode||!s.tableJson)return;const e=s.tableJson.find(o=>o.tableType==="parent");if(!e)return;const n=a.findSchemas(t.schemas,o=>o.type==="form");n.length===1&&(n[0].props.name=e.tableName)}function y(){var e;return v((e=i.selectedNode)==null?void 0:e.id)}function N(){var u;if(!((u=i.selectedNode)!=null&&u.id)||i.selectedNode.id===t.schemas[0].id)return;const e=a.findSchemaInfoById(t.schemas,i.selectedNode.id);if(!e)return!1;let{index:n,list:o}=e;o.splice(n,1),n===o.length&&n--,l(o[n]),f.push("删除组件")}function l(e){if(e||(e=t.schemas[0]),p(e)){const o=a.getMatchedById(c.pageSchema.schemas,(e==null?void 0:e.id)||""),u=o.length-2;for(let r=u;r>=0;r--)if(!p(o[r])){e=o[r];break}}const n=a.findSchemaById(t.schemas,(e==null?void 0:e.id)||"");i.matched=a.getMatchedById(t.schemas,(n==null?void 0:n.id)||""),i.selectedNode=n}function p(e){var n;return((n=e.status)==null?void 0:n.lock)||g.pluginManager.component.getLocked(e.type)}function S(e=null){var n;if(!e||i.disabledHover)return i.hoverNode=null,!1;if(p(e)){const o=a.getMatchedById(c.pageSchema.schemas,(e==null?void 0:e.id)||""),u=o.length-2;for(let r=u;r>=0;r--)if(!p(o[r])){e=o[r];break}}if((e==null?void 0:e.id)===((n=i.hoverNode)==null?void 0:n.id))return!1;i.hoverNode=e}function k(){a.deepEqual(t.schemas,d.schemas)&&t.script===d.script||(a.deepCompareAndModify(t.schemas,d.schemas),t.script=d.script,l(t.schemas[0]),f.push("重置操作"),h("reset",t))}function x(){t.schemas=a.deepClone(d.schemas),l(t.schemas[0]),f.push("初始化")}return x(),{handleDelete:N,handleDuplicate:y,pageManager:c,pageSchema:t,ready:M,reset:k,revoke:f,setHoverNode:S,setSelectedNode:l,state:i}}exports.useDesigner=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("vue"),C=require("../../../../../hooks/src/common/clipboard.cjs");require("@vueuse/core");require("../../../../../hooks/src/store/index.cjs");;/* empty css */;/* empty css */;/* empty css */const D=require("../../../../../manager/src/pageManager.cjs"),p=require("../../../../../manager/src/pluginManager.cjs"),x=require("../../../../../manager/src/revoke.cjs");;/* empty css */require("vue-draggable-plus");const i=require("../../../../../utils/src/common/data.cjs");require("jsep");const B=require("../../../../../hooks/src/plugin/usePageSchema.cjs");let d={schemas:[{id:"root",label:"页面",props:{style:{padding:"16px"}},type:"page",children:[]}],script:B.INITIAL_PAGE_SCRIPT};function P(s,h){const M=m.ref(!1),c=D.createPageManager(),t=c.pageSchema,r=m.reactive({disabledHover:!1,hoverNode:null,matched:[],selectedNode:null}),f=x.useRevoke(t,r,l),{duplicate:v}=C.useClipboard(t,l,e=>f.push(e)),b={desktop:{},mobile:{mode:"mobile",width:"390px"},tablet:{mode:"tablet",width:"780px"}};m.watchEffect(()=>{s.defaultSchema?d=s.defaultSchema:s.formMode&&(d.schemas=p.pluginManager.designer.formSchema,p.pluginManager.component.hide("form")),s.formMode||p.pluginManager.component.show("form");const e=s.canvasMode??"desktop";t.canvas={mode:e,...b[e],...d.canvas},q(),c.setDefaultComponentIds(d.schemas)}),c.setDesignMode();function q(){if(!s.formMode||!s.tableJson)return;const e=s.tableJson.find(o=>o.tableType==="parent");if(!e)return;const n=i.findSchemas(t.schemas,o=>o.type==="form");n.length===1&&(n[0].props.name=e.tableName)}function S(){var e;return v((e=r.selectedNode)==null?void 0:e.id)}function N(){var u;if(!((u=r.selectedNode)!=null&&u.id)||r.selectedNode.id===t.schemas[0].id)return;const e=i.findSchemaInfoById(t.schemas,r.selectedNode.id);if(!e)return!1;let{index:n,list:o}=e;o.splice(n,1),n===o.length&&n--,l(o[n]),f.push("删除组件")}function l(e){if(e||(e=t.schemas[0]),g(e)){const o=i.getMatchedById(c.pageSchema.schemas,(e==null?void 0:e.id)||""),u=o.length-2;for(let a=u;a>=0;a--)if(!g(o[a])){e=o[a];break}}const n=i.findSchemaById(t.schemas,(e==null?void 0:e.id)||"");r.matched=i.getMatchedById(t.schemas,(n==null?void 0:n.id)||""),r.selectedNode=n}function g(e){var n;return((n=e.status)==null?void 0:n.lock)||p.pluginManager.component.getLocked(e.type)}function y(e=null){var n;if(!e||r.disabledHover)return r.hoverNode=null,!1;if(g(e)){const o=i.getMatchedById(c.pageSchema.schemas,(e==null?void 0:e.id)||""),u=o.length-2;for(let a=u;a>=0;a--)if(!g(o[a])){e=o[a];break}}if((e==null?void 0:e.id)===((n=r.hoverNode)==null?void 0:n.id))return!1;r.hoverNode=e}function I(){i.deepEqual(t.schemas,d.schemas)&&t.script===d.script||(i.deepCompareAndModify(t.schemas,d.schemas),t.script=d.script,l(t.schemas[0]),f.push("重置操作"),h("reset",t))}function k(){t.schemas=i.deepClone(d.schemas),l(t.schemas[0]),f.push("初始化")}return k(),{handleDelete:N,handleDuplicate:S,pageManager:c,pageSchema:t,ready:M,reset:I,revoke:f,setHoverNode:y,setSelectedNode:l,state:r}}exports.useDesigner=P;