@lcap/nasl 3.2.0-beta.4 → 3.3.0-alpha

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 (774) hide show
  1. package/out/automate/upgrader/2.20.js +1 -1
  2. package/out/automate/upgrader/2.20.js.map +1 -1
  3. package/out/bak/translator.js +11 -15
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  6. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  7. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  8. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  9. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  10. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  11. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  12. package/out/breakpoint/generator/CallbackNode.js +22 -0
  13. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  14. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  15. package/out/breakpoint/generator/FragmentNode.js +18 -0
  16. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  17. package/out/breakpoint/generator/index.js +25 -4
  18. package/out/breakpoint/generator/index.js.map +1 -1
  19. package/out/breakpoint/shared/constants.d.ts +3 -0
  20. package/out/breakpoint/shared/constants.js +6 -1
  21. package/out/breakpoint/shared/constants.js.map +1 -1
  22. package/out/breakpoint/shared/operations.js.map +1 -1
  23. package/out/breakpoint/shared/socket.d.ts +1 -1
  24. package/out/breakpoint/shared/socket.js +36 -7
  25. package/out/breakpoint/shared/socket.js.map +1 -1
  26. package/out/breakpoint/shared/utils.d.ts +2 -0
  27. package/out/breakpoint/shared/utils.js +15 -2
  28. package/out/breakpoint/shared/utils.js.map +1 -1
  29. package/out/breakpoint/store/core.d.ts +48 -2
  30. package/out/breakpoint/store/core.js +58 -32
  31. package/out/breakpoint/store/core.js.map +1 -1
  32. package/out/breakpoint/store/dock.js +1 -1
  33. package/out/breakpoint/store/dock.js.map +1 -1
  34. package/out/common/BaseNode.d.ts +1 -1
  35. package/out/common/BaseNode.js +105 -51
  36. package/out/common/BaseNode.js.map +1 -1
  37. package/out/common/Command.d.ts +13 -2
  38. package/out/common/Command.js +37 -9
  39. package/out/common/Command.js.map +1 -1
  40. package/out/common/EventEmitter.js.map +1 -1
  41. package/out/common/Messager.d.ts +3 -3
  42. package/out/common/Messager.js +6 -7
  43. package/out/common/Messager.js.map +1 -1
  44. package/out/common/asyncFuncMap.js.map +1 -1
  45. package/out/concepts/Abort__.js +6 -5
  46. package/out/concepts/Abort__.js.map +1 -1
  47. package/out/concepts/Anchor__.d.ts +4 -3
  48. package/out/concepts/Anchor__.js +24 -7
  49. package/out/concepts/Anchor__.js.map +1 -1
  50. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  51. package/out/concepts/AnonymousFunction__.js +48 -22
  52. package/out/concepts/AnonymousFunction__.js.map +1 -1
  53. package/out/concepts/App__.d.ts +421 -247
  54. package/out/concepts/App__.js +286 -54
  55. package/out/concepts/App__.js.map +1 -1
  56. package/out/concepts/Argument__.d.ts +4 -3
  57. package/out/concepts/Argument__.js +42 -11
  58. package/out/concepts/Argument__.js.map +1 -1
  59. package/out/concepts/Assignee__.d.ts +45 -45
  60. package/out/concepts/Assignee__.js +15 -15
  61. package/out/concepts/Assignee__.js.map +1 -1
  62. package/out/concepts/AssignmentLine__.js +6 -5
  63. package/out/concepts/AssignmentLine__.js.map +1 -1
  64. package/out/concepts/Assignment__.d.ts +7 -6
  65. package/out/concepts/Assignment__.js +40 -22
  66. package/out/concepts/Assignment__.js.map +1 -1
  67. package/out/concepts/Attribute__.d.ts +3 -3
  68. package/out/concepts/Attribute__.js +8 -7
  69. package/out/concepts/Attribute__.js.map +1 -1
  70. package/out/concepts/AuthInterface__.js +4 -3
  71. package/out/concepts/AuthInterface__.js.map +1 -1
  72. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  73. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  74. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  75. package/out/concepts/AuthLogic__.js +27 -13
  76. package/out/concepts/AuthLogic__.js.map +1 -1
  77. package/out/concepts/BackendVariable__.d.ts +5 -5
  78. package/out/concepts/BackendVariable__.js +23 -26
  79. package/out/concepts/BackendVariable__.js.map +1 -1
  80. package/out/concepts/Backend__.d.ts +18 -18
  81. package/out/concepts/Backend__.js +13 -13
  82. package/out/concepts/Backend__.js.map +1 -1
  83. package/out/concepts/BatchAssignment__.d.ts +34 -33
  84. package/out/concepts/BatchAssignment__.js +83 -43
  85. package/out/concepts/BatchAssignment__.js.map +1 -1
  86. package/out/concepts/BinaryExpression__.d.ts +7 -6
  87. package/out/concepts/BinaryExpression__.js +60 -24
  88. package/out/concepts/BinaryExpression__.js.map +1 -1
  89. package/out/concepts/BindAttribute__.d.ts +37 -37
  90. package/out/concepts/BindAttribute__.js +101 -48
  91. package/out/concepts/BindAttribute__.js.map +1 -1
  92. package/out/concepts/BindDirective__.d.ts +13 -13
  93. package/out/concepts/BindDirective__.js +23 -21
  94. package/out/concepts/BindDirective__.js.map +1 -1
  95. package/out/concepts/BindEvent__.d.ts +28 -28
  96. package/out/concepts/BindEvent__.js +99 -48
  97. package/out/concepts/BindEvent__.js.map +1 -1
  98. package/out/concepts/BindStyle__.d.ts +14 -15
  99. package/out/concepts/BindStyle__.js +16 -16
  100. package/out/concepts/BindStyle__.js.map +1 -1
  101. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  102. package/out/concepts/BooleanLiteral__.js +12 -5
  103. package/out/concepts/BooleanLiteral__.js.map +1 -1
  104. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  105. package/out/concepts/CallAuthInterface__.js +23 -22
  106. package/out/concepts/CallAuthInterface__.js.map +1 -1
  107. package/out/concepts/CallConnector__.d.ts +11 -9
  108. package/out/concepts/CallConnector__.js +79 -36
  109. package/out/concepts/CallConnector__.js.map +1 -1
  110. package/out/concepts/CallFunction__.d.ts +17 -16
  111. package/out/concepts/CallFunction__.js +95 -63
  112. package/out/concepts/CallFunction__.js.map +1 -1
  113. package/out/concepts/CallInterface__.d.ts +9 -8
  114. package/out/concepts/CallInterface__.js +71 -30
  115. package/out/concepts/CallInterface__.js.map +1 -1
  116. package/out/concepts/CallLogic__.d.ts +20 -19
  117. package/out/concepts/CallLogic__.js +155 -52
  118. package/out/concepts/CallLogic__.js.map +1 -1
  119. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  120. package/out/concepts/CallQueryComponent__.js +66 -63
  121. package/out/concepts/CallQueryComponent__.js.map +1 -1
  122. package/out/concepts/Comment__.d.ts +1 -0
  123. package/out/concepts/Comment__.js +13 -6
  124. package/out/concepts/Comment__.js.map +1 -1
  125. package/out/concepts/CompletionProperty__.d.ts +3 -3
  126. package/out/concepts/CompletionProperty__.js +8 -7
  127. package/out/concepts/CompletionProperty__.js.map +1 -1
  128. package/out/concepts/ConfigGroup__.d.ts +15 -15
  129. package/out/concepts/ConfigGroup__.js +9 -9
  130. package/out/concepts/ConfigGroup__.js.map +1 -1
  131. package/out/concepts/ConfigPropertyValue__.js +4 -3
  132. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  133. package/out/concepts/ConfigProperty__.d.ts +15 -15
  134. package/out/concepts/ConfigProperty__.js +10 -10
  135. package/out/concepts/ConfigProperty__.js.map +1 -1
  136. package/out/concepts/Configuration__.d.ts +15 -15
  137. package/out/concepts/Configuration__.js +9 -9
  138. package/out/concepts/Configuration__.js.map +1 -1
  139. package/out/concepts/Connection__.d.ts +166 -0
  140. package/out/concepts/Connection__.js +332 -0
  141. package/out/concepts/Connection__.js.map +1 -0
  142. package/out/concepts/ConnectorTrigger__.js +4 -3
  143. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  144. package/out/concepts/Connector__.d.ts +66 -66
  145. package/out/concepts/Connector__.js +16 -15
  146. package/out/concepts/Connector__.js.map +1 -1
  147. package/out/concepts/Constant__.d.ts +3 -3
  148. package/out/concepts/Constant__.js +8 -7
  149. package/out/concepts/Constant__.js.map +1 -1
  150. package/out/concepts/DataElement__.d.ts +3 -3
  151. package/out/concepts/DataElement__.js +6 -5
  152. package/out/concepts/DataElement__.js.map +1 -1
  153. package/out/concepts/DataSource__.d.ts +15 -15
  154. package/out/concepts/DataSource__.js +55 -39
  155. package/out/concepts/DataSource__.js.map +1 -1
  156. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  157. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  158. package/out/concepts/Destination__.d.ts +12 -11
  159. package/out/concepts/Destination__.js +93 -36
  160. package/out/concepts/Destination__.js.map +1 -1
  161. package/out/concepts/End__.js +15 -13
  162. package/out/concepts/End__.js.map +1 -1
  163. package/out/concepts/EntityIndex__.d.ts +1 -1
  164. package/out/concepts/EntityIndex__.js +6 -5
  165. package/out/concepts/EntityIndex__.js.map +1 -1
  166. package/out/concepts/EntityProperty__.d.ts +8 -7
  167. package/out/concepts/EntityProperty__.js +39 -24
  168. package/out/concepts/EntityProperty__.js.map +1 -1
  169. package/out/concepts/Entity__.d.ts +31 -30
  170. package/out/concepts/Entity__.js +40 -16
  171. package/out/concepts/Entity__.js.map +1 -1
  172. package/out/concepts/EnumItem__.d.ts +1 -0
  173. package/out/concepts/EnumItem__.js +12 -5
  174. package/out/concepts/EnumItem__.js.map +1 -1
  175. package/out/concepts/Enum__.d.ts +9 -8
  176. package/out/concepts/Enum__.js +24 -11
  177. package/out/concepts/Enum__.js.map +1 -1
  178. package/out/concepts/Event__.d.ts +15 -15
  179. package/out/concepts/Event__.js +6 -5
  180. package/out/concepts/Event__.js.map +1 -1
  181. package/out/concepts/ExternalDestination__.d.ts +6 -6
  182. package/out/concepts/ExternalDestination__.js +12 -11
  183. package/out/concepts/ExternalDestination__.js.map +1 -1
  184. package/out/concepts/ForEachStatement__.d.ts +25 -24
  185. package/out/concepts/ForEachStatement__.js +101 -36
  186. package/out/concepts/ForEachStatement__.js.map +1 -1
  187. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  188. package/out/concepts/FrontendLibrary__.js +12 -13
  189. package/out/concepts/FrontendLibrary__.js.map +1 -1
  190. package/out/concepts/FrontendVariable__.js +4 -3
  191. package/out/concepts/FrontendVariable__.js.map +1 -1
  192. package/out/concepts/Frontend__.d.ts +64 -65
  193. package/out/concepts/Frontend__.js +23 -27
  194. package/out/concepts/Frontend__.js.map +1 -1
  195. package/out/concepts/Function__.d.ts +64 -63
  196. package/out/concepts/Function__.js +49 -21
  197. package/out/concepts/Function__.js.map +1 -1
  198. package/out/concepts/Identifier__.js +37 -31
  199. package/out/concepts/Identifier__.js.map +1 -1
  200. package/out/concepts/IfStatement__.d.ts +20 -19
  201. package/out/concepts/IfStatement__.js +64 -34
  202. package/out/concepts/IfStatement__.js.map +1 -1
  203. package/out/concepts/Integration__.d.ts +3 -3
  204. package/out/concepts/Integration__.js +8 -7
  205. package/out/concepts/Integration__.js.map +1 -1
  206. package/out/concepts/InterfaceParam__.d.ts +3 -3
  207. package/out/concepts/InterfaceParam__.js +7 -6
  208. package/out/concepts/InterfaceParam__.js.map +1 -1
  209. package/out/concepts/Interface__.d.ts +33 -33
  210. package/out/concepts/Interface__.js +19 -20
  211. package/out/concepts/Interface__.js.map +1 -1
  212. package/out/concepts/JSBlock__.d.ts +1 -0
  213. package/out/concepts/JSBlock__.js +12 -5
  214. package/out/concepts/JSBlock__.js.map +1 -1
  215. package/out/concepts/JavaLogic__.js +10 -9
  216. package/out/concepts/JavaLogic__.js.map +1 -1
  217. package/out/concepts/LogicItem__.d.ts +6 -0
  218. package/out/concepts/LogicItem__.js +14 -5
  219. package/out/concepts/LogicItem__.js.map +1 -1
  220. package/out/concepts/Logic__.d.ts +80 -79
  221. package/out/concepts/Logic__.js +204 -58
  222. package/out/concepts/Logic__.js.map +1 -1
  223. package/out/concepts/MatchCase__.d.ts +39 -38
  224. package/out/concepts/MatchCase__.js +122 -37
  225. package/out/concepts/MatchCase__.js.map +1 -1
  226. package/out/concepts/Match__.d.ts +13 -11
  227. package/out/concepts/Match__.js +128 -60
  228. package/out/concepts/Match__.js.map +1 -1
  229. package/out/concepts/MemberExpression__.d.ts +7 -6
  230. package/out/concepts/MemberExpression__.js +52 -22
  231. package/out/concepts/MemberExpression__.js.map +1 -1
  232. package/out/concepts/MicroApp__.js +4 -3
  233. package/out/concepts/MicroApp__.js.map +1 -1
  234. package/out/concepts/Module__.d.ts +239 -155
  235. package/out/concepts/Module__.js +139 -33
  236. package/out/concepts/Module__.js.map +1 -1
  237. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  238. package/out/concepts/MsgTriggerEvent__.js +6 -5
  239. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  240. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  241. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  242. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  243. package/out/concepts/Namespace__.d.ts +180 -180
  244. package/out/concepts/Namespace__.js +33 -34
  245. package/out/concepts/Namespace__.js.map +1 -1
  246. package/out/concepts/NewComposite__.d.ts +49 -48
  247. package/out/concepts/NewComposite__.js +164 -49
  248. package/out/concepts/NewComposite__.js.map +1 -1
  249. package/out/concepts/NewList__.d.ts +19 -18
  250. package/out/concepts/NewList__.js +29 -12
  251. package/out/concepts/NewList__.js.map +1 -1
  252. package/out/concepts/NewMap__.d.ts +34 -33
  253. package/out/concepts/NewMap__.js +81 -72
  254. package/out/concepts/NewMap__.js.map +1 -1
  255. package/out/concepts/New__.js +6 -5
  256. package/out/concepts/New__.js.map +1 -1
  257. package/out/concepts/NullLiteral__.js +6 -5
  258. package/out/concepts/NullLiteral__.js.map +1 -1
  259. package/out/concepts/NumericLiteral__.d.ts +4 -3
  260. package/out/concepts/NumericLiteral__.js +15 -8
  261. package/out/concepts/NumericLiteral__.js.map +1 -1
  262. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  263. package/out/concepts/OqlQueryComponent__.js +25 -16
  264. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  265. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  266. package/out/concepts/OverriddenLogic__.js +79 -58
  267. package/out/concepts/OverriddenLogic__.js.map +1 -1
  268. package/out/concepts/Param__.d.ts +6 -5
  269. package/out/concepts/Param__.js +66 -29
  270. package/out/concepts/Param__.js.map +1 -1
  271. package/out/concepts/Point__.js +4 -3
  272. package/out/concepts/Point__.js.map +1 -1
  273. package/out/concepts/ProcessComponent__.d.ts +30 -30
  274. package/out/concepts/ProcessComponent__.js +8 -7
  275. package/out/concepts/ProcessComponent__.js.map +1 -1
  276. package/out/concepts/ProcessElement__.d.ts +96 -96
  277. package/out/concepts/ProcessElement__.js +34 -34
  278. package/out/concepts/ProcessElement__.js.map +1 -1
  279. package/out/concepts/ProcessOutcome__.js +6 -5
  280. package/out/concepts/ProcessOutcome__.js.map +1 -1
  281. package/out/concepts/ProcessOutcomes__.js +6 -5
  282. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  283. package/out/concepts/Process__.d.ts +75 -75
  284. package/out/concepts/Process__.js +33 -30
  285. package/out/concepts/Process__.js.map +1 -1
  286. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  287. package/out/concepts/QueryAggregateExpression__.js +8 -7
  288. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  289. package/out/concepts/QueryFieldExpression__.js +7 -6
  290. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  291. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  292. package/out/concepts/QueryFromExpression__.js +8 -7
  293. package/out/concepts/QueryFromExpression__.js.map +1 -1
  294. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  295. package/out/concepts/QueryGroupByExpression__.js +9 -10
  296. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  297. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  298. package/out/concepts/QueryJoinExpression__.js +11 -10
  299. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  300. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  301. package/out/concepts/QueryLimitExpression__.js +9 -8
  302. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  303. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  304. package/out/concepts/QueryOrderByExpression__.js +9 -8
  305. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  306. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  307. package/out/concepts/QuerySelectExpression__.js +9 -8
  308. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  309. package/out/concepts/Rect__.js +4 -3
  310. package/out/concepts/Rect__.js.map +1 -1
  311. package/out/concepts/Return__.d.ts +4 -3
  312. package/out/concepts/Return__.js +37 -18
  313. package/out/concepts/Return__.js.map +1 -1
  314. package/out/concepts/Role__.js +9 -9
  315. package/out/concepts/Role__.js.map +1 -1
  316. package/out/concepts/SelectMembers__.d.ts +18 -18
  317. package/out/concepts/SelectMembers__.js +10 -9
  318. package/out/concepts/SelectMembers__.js.map +1 -1
  319. package/out/concepts/Slot__.d.ts +3 -3
  320. package/out/concepts/Slot__.js +6 -5
  321. package/out/concepts/Slot__.js.map +1 -1
  322. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  323. package/out/concepts/SqlQueryComponent__.js +21 -12
  324. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  325. package/out/concepts/Start__.js +6 -5
  326. package/out/concepts/Start__.js.map +1 -1
  327. package/out/concepts/StringInterpolation__.d.ts +16 -15
  328. package/out/concepts/StringInterpolation__.js +37 -14
  329. package/out/concepts/StringInterpolation__.js.map +1 -1
  330. package/out/concepts/StringLiteral__.d.ts +1 -0
  331. package/out/concepts/StringLiteral__.js +13 -8
  332. package/out/concepts/StringLiteral__.js.map +1 -1
  333. package/out/concepts/StructureProperty__.d.ts +4 -3
  334. package/out/concepts/StructureProperty__.js +22 -9
  335. package/out/concepts/StructureProperty__.js.map +1 -1
  336. package/out/concepts/Structure__.d.ts +31 -30
  337. package/out/concepts/Structure__.js +27 -15
  338. package/out/concepts/Structure__.js.map +1 -1
  339. package/out/concepts/SwitchCase__.d.ts +12 -11
  340. package/out/concepts/SwitchCase__.js +69 -31
  341. package/out/concepts/SwitchCase__.js.map +1 -1
  342. package/out/concepts/SwitchStatement__.d.ts +9 -8
  343. package/out/concepts/SwitchStatement__.js +27 -7
  344. package/out/concepts/SwitchStatement__.js.map +1 -1
  345. package/out/concepts/Theme__.js +4 -3
  346. package/out/concepts/Theme__.js.map +1 -1
  347. package/out/concepts/Transactional__.js +4 -3
  348. package/out/concepts/Transactional__.js.map +1 -1
  349. package/out/concepts/TriggerEvent__.d.ts +15 -15
  350. package/out/concepts/TriggerEvent__.js +6 -5
  351. package/out/concepts/TriggerEvent__.js.map +1 -1
  352. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  353. package/out/concepts/TriggerLauncher__.js +54 -32
  354. package/out/concepts/TriggerLauncher__.js.map +1 -1
  355. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  356. package/out/concepts/TypeAnnotation__.js +144 -124
  357. package/out/concepts/TypeAnnotation__.js.map +1 -1
  358. package/out/concepts/TypeParam__.d.ts +1 -0
  359. package/out/concepts/TypeParam__.js +12 -5
  360. package/out/concepts/TypeParam__.js.map +1 -1
  361. package/out/concepts/UnaryExpression__.d.ts +4 -3
  362. package/out/concepts/UnaryExpression__.js +31 -20
  363. package/out/concepts/UnaryExpression__.js.map +1 -1
  364. package/out/concepts/Unparsed__.d.ts +1 -0
  365. package/out/concepts/Unparsed__.js +12 -5
  366. package/out/concepts/Unparsed__.js.map +1 -1
  367. package/out/concepts/UseComponent__.js +4 -3
  368. package/out/concepts/UseComponent__.js.map +1 -1
  369. package/out/concepts/ValidationRule__.d.ts +14 -14
  370. package/out/concepts/ValidationRule__.js +19 -17
  371. package/out/concepts/ValidationRule__.js.map +1 -1
  372. package/out/concepts/Variable__.d.ts +4 -3
  373. package/out/concepts/Variable__.js +39 -23
  374. package/out/concepts/Variable__.js.map +1 -1
  375. package/out/concepts/ViewBlock__.js +4 -3
  376. package/out/concepts/ViewBlock__.js.map +1 -1
  377. package/out/concepts/ViewComponent__.d.ts +90 -90
  378. package/out/concepts/ViewComponent__.js +16 -15
  379. package/out/concepts/ViewComponent__.js.map +1 -1
  380. package/out/concepts/ViewElement__.d.ts +91 -86
  381. package/out/concepts/ViewElement__.js +218 -146
  382. package/out/concepts/ViewElement__.js.map +1 -1
  383. package/out/concepts/View__.d.ts +92 -92
  384. package/out/concepts/View__.js +135 -60
  385. package/out/concepts/View__.js.map +1 -1
  386. package/out/concepts/WhileStatement__.d.ts +12 -11
  387. package/out/concepts/WhileStatement__.js +46 -23
  388. package/out/concepts/WhileStatement__.js.map +1 -1
  389. package/out/concepts/index__.d.ts +2 -1
  390. package/out/concepts/index__.js +2 -1
  391. package/out/concepts/index__.js.map +1 -1
  392. package/out/concepts/types__.d.ts +2 -1
  393. package/out/decorators/index.d.ts +1 -1
  394. package/out/decorators/index.js +20 -7
  395. package/out/decorators/index.js.map +1 -1
  396. package/out/decorators/promise.d.ts +7 -0
  397. package/out/decorators/promise.js +28 -0
  398. package/out/decorators/promise.js.map +1 -0
  399. package/out/enums/KEYWORDS.js.map +1 -1
  400. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  401. package/out/generator/compileComponent.js.map +1 -1
  402. package/out/generator/genBundleFiles.d.ts +4 -1
  403. package/out/generator/genBundleFiles.js +15 -11
  404. package/out/generator/genBundleFiles.js.map +1 -1
  405. package/out/generator/genHash.js.map +1 -1
  406. package/out/generator/genMetaData.js +12 -8
  407. package/out/generator/genMetaData.js.map +1 -1
  408. package/out/generator/genReleaseBody.js +33 -35
  409. package/out/generator/genReleaseBody.js.map +1 -1
  410. package/out/generator/microApp.js +2 -1
  411. package/out/generator/microApp.js.map +1 -1
  412. package/out/generator/permission.js +16 -14
  413. package/out/generator/permission.js.map +1 -1
  414. package/out/generator/styleReplacer.js +4 -7
  415. package/out/generator/styleReplacer.js.map +1 -1
  416. package/out/index.d.ts +0 -2
  417. package/out/index.js +0 -3
  418. package/out/index.js.map +1 -1
  419. package/out/manager/diagnostic.d.ts +1 -1
  420. package/out/manager/diagnostic.js.map +1 -1
  421. package/out/manager/stepRecorder.js +13 -9
  422. package/out/manager/stepRecorder.js.map +1 -1
  423. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  424. package/out/natural/RequirementAnalyzer.js +196 -0
  425. package/out/natural/RequirementAnalyzer.js.map +1 -0
  426. package/out/natural/RequirementExecutor.d.ts +51 -0
  427. package/out/natural/RequirementExecutor.js +692 -0
  428. package/out/natural/RequirementExecutor.js.map +1 -0
  429. package/out/natural/componentData.d.ts +31 -0
  430. package/out/natural/componentData.js +85 -0
  431. package/out/natural/componentData.js.map +1 -0
  432. package/out/natural/genNaturalTS.d.ts +3 -0
  433. package/out/natural/genNaturalTS.js +76 -0
  434. package/out/natural/genNaturalTS.js.map +1 -0
  435. package/out/natural/index.d.ts +4 -0
  436. package/out/natural/index.js +21 -0
  437. package/out/natural/index.js.map +1 -0
  438. package/out/natural/knowledgeMap.d.ts +4 -0
  439. package/out/natural/knowledgeMap.js +40 -0
  440. package/out/natural/knowledgeMap.js.map +1 -0
  441. package/out/natural/naslStdlibMap.d.ts +2 -0
  442. package/out/natural/naslStdlibMap.js +26 -0
  443. package/out/natural/naslStdlibMap.js.map +1 -0
  444. package/out/natural/transformTSCode.d.ts +7 -0
  445. package/out/natural/transformTSCode.js +760 -0
  446. package/out/natural/transformTSCode.js.map +1 -0
  447. package/out/sentry/index.d.ts +2 -1
  448. package/out/sentry/index.js.map +1 -1
  449. package/out/server/createUiTs.js +28 -16
  450. package/out/server/createUiTs.js.map +1 -1
  451. package/out/server/entity2LogicNamespace.js +24 -22
  452. package/out/server/entity2LogicNamespace.js.map +1 -1
  453. package/out/server/event.js.map +1 -1
  454. package/out/server/extendBaseNode.js +55 -70
  455. package/out/server/extendBaseNode.js.map +1 -1
  456. package/out/server/formatTsUtils.js +46 -50
  457. package/out/server/formatTsUtils.js.map +1 -1
  458. package/out/server/getConnector.d.ts +3 -3
  459. package/out/server/getConnector.js +7 -8
  460. package/out/server/getConnector.js.map +1 -1
  461. package/out/server/getExtensionModules.js +2 -2
  462. package/out/server/getExtensionModules.js.map +1 -1
  463. package/out/server/getFunctions.js.map +1 -1
  464. package/out/server/getInterfaces.js.map +1 -1
  465. package/out/server/getLogging.js.map +1 -1
  466. package/out/server/getLogics.d.ts +1 -1
  467. package/out/server/getLogics.js +34 -16
  468. package/out/server/getLogics.js.map +1 -1
  469. package/out/server/getMemberIdentifier.js +13 -10
  470. package/out/server/getMemberIdentifier.js.map +1 -1
  471. package/out/server/getProcessComponents.js.map +1 -1
  472. package/out/server/getProcesses.js +21 -29
  473. package/out/server/getProcesses.js.map +1 -1
  474. package/out/server/getScope.js.map +1 -1
  475. package/out/server/getValidates.js.map +1 -1
  476. package/out/server/index.js +0 -1
  477. package/out/server/index.js.map +1 -1
  478. package/out/server/naslServer.d.ts +99 -94
  479. package/out/server/naslServer.js +485 -465
  480. package/out/server/naslServer.js.map +1 -1
  481. package/out/server/naslStdlibMap.js +4 -2
  482. package/out/server/naslStdlibMap.js.map +1 -1
  483. package/out/server/process2LogicNamespace.js.map +1 -1
  484. package/out/server/translator.d.ts +1 -1
  485. package/out/server/translator.js +52 -47
  486. package/out/server/translator.js.map +1 -1
  487. package/out/service/storage/init.d.ts +15 -1
  488. package/out/service/storage/init.js +65 -56
  489. package/out/service/storage/init.js.map +1 -1
  490. package/out/templator/genCallComponentLogic.js +1 -2
  491. package/out/templator/genCallComponentLogic.js.map +1 -1
  492. package/out/templator/genCreateBlock.js +13 -8
  493. package/out/templator/genCreateBlock.js.map +1 -1
  494. package/out/templator/genCurdEditMultipleKeyBlock.js +19 -10
  495. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  496. package/out/templator/genCurdMultipleKeyBlock.js +22 -26
  497. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  498. package/out/templator/genEditTableBlock.js +11 -12
  499. package/out/templator/genEditTableBlock.js.map +1 -1
  500. package/out/templator/genEnumSelectBlock.js +1 -1
  501. package/out/templator/genEnumSelectBlock.js.map +1 -1
  502. package/out/templator/genGetBlock.js +2 -2
  503. package/out/templator/genGetBlock.js.map +1 -1
  504. package/out/templator/genGridViewBlock.js +10 -14
  505. package/out/templator/genGridViewBlock.js.map +1 -1
  506. package/out/templator/genListViewBlock.js +4 -7
  507. package/out/templator/genListViewBlock.js.map +1 -1
  508. package/out/templator/genQueryComponent.js +22 -15
  509. package/out/templator/genQueryComponent.js.map +1 -1
  510. package/out/templator/genSelectBlock.js +12 -33
  511. package/out/templator/genSelectBlock.js.map +1 -1
  512. package/out/templator/genTableBlock.js +8 -10
  513. package/out/templator/genTableBlock.js.map +1 -1
  514. package/out/templator/genUpdateBlock.js +12 -7
  515. package/out/templator/genUpdateBlock.js.map +1 -1
  516. package/out/templator/index.d.ts +4 -2
  517. package/out/templator/index.js +2 -2
  518. package/out/templator/index.js.map +1 -1
  519. package/out/templator/utils.d.ts +2 -2
  520. package/out/templator/utils.js +21 -22
  521. package/out/templator/utils.js.map +1 -1
  522. package/out/translator/index.js +27 -28
  523. package/out/translator/index.js.map +1 -1
  524. package/out/utils/index.d.ts +2 -1
  525. package/out/utils/index.js +8 -14
  526. package/out/utils/index.js.map +1 -1
  527. package/out/utils/logger.js.map +1 -1
  528. package/out/utils/sortTsString.js +3 -1
  529. package/out/utils/sortTsString.js.map +1 -1
  530. package/out/utils/string.js +8 -11
  531. package/out/utils/string.js.map +1 -1
  532. package/out/utils/time-slicing.d.ts +41 -0
  533. package/out/utils/time-slicing.js +81 -0
  534. package/out/utils/time-slicing.js.map +1 -0
  535. package/out/utils/traverse.js +4 -6
  536. package/out/utils/traverse.js.map +1 -1
  537. package/package.json +11 -7
  538. package/sandbox/stdlib/nasl.auth.ts +49 -46
  539. package/sandbox/stdlib/nasl.http.ts +29 -31
  540. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  541. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  542. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  543. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  544. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  545. package/sandbox-natural/tsconfig.json +12 -0
  546. package/src/automate/upgrader/2.20.js +1 -1
  547. package/src/bak/translator.js +92 -99
  548. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  549. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  550. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  551. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  552. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  553. package/src/breakpoint/generator/index.ts +107 -80
  554. package/src/breakpoint/shared/constants.ts +59 -53
  555. package/src/breakpoint/shared/operations.ts +6 -6
  556. package/src/breakpoint/shared/socket.ts +277 -223
  557. package/src/breakpoint/shared/utils.ts +166 -146
  558. package/src/breakpoint/store/core.ts +326 -297
  559. package/src/breakpoint/store/dock.ts +103 -103
  560. package/src/breakpoint/types/index.d.ts +11 -11
  561. package/src/common/BaseNode.ts +1102 -1024
  562. package/src/common/Command.ts +46 -16
  563. package/src/common/ComponentAPI.ts +72 -72
  564. package/src/common/EventEmitter.ts +80 -76
  565. package/src/common/Messager.ts +223 -224
  566. package/src/common/asyncFuncMap.ts +12 -12
  567. package/src/concepts/Abort__.ts +53 -60
  568. package/src/concepts/Anchor__.ts +158 -149
  569. package/src/concepts/AnonymousFunction__.ts +584 -551
  570. package/src/concepts/App__.ts +4278 -3671
  571. package/src/concepts/Argument__.ts +234 -210
  572. package/src/concepts/Assignee__.ts +680 -656
  573. package/src/concepts/AssignmentLine__.ts +80 -84
  574. package/src/concepts/Assignment__.ts +275 -264
  575. package/src/concepts/Attribute__.ts +183 -184
  576. package/src/concepts/AuthInterface__.ts +61 -63
  577. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  578. package/src/concepts/AuthLogic__.ts +210 -194
  579. package/src/concepts/BackendVariable__.ts +414 -415
  580. package/src/concepts/Backend__.ts +317 -303
  581. package/src/concepts/BatchAssignment__.ts +987 -939
  582. package/src/concepts/BinaryExpression__.ts +370 -341
  583. package/src/concepts/BindAttribute__.ts +1057 -1007
  584. package/src/concepts/BindDirective__.ts +540 -542
  585. package/src/concepts/BindEvent__.ts +992 -911
  586. package/src/concepts/BindStyle__.ts +442 -451
  587. package/src/concepts/BooleanLiteral__.ts +89 -90
  588. package/src/concepts/CallAuthInterface__.ts +458 -433
  589. package/src/concepts/CallConnector__.ts +209 -164
  590. package/src/concepts/CallFunction__.ts +600 -600
  591. package/src/concepts/CallInterface__.ts +752 -721
  592. package/src/concepts/CallLogic__.ts +1324 -1200
  593. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  594. package/src/concepts/Comment__.ts +69 -68
  595. package/src/concepts/CompletionProperty__.ts +250 -255
  596. package/src/concepts/ConfigGroup__.ts +312 -296
  597. package/src/concepts/ConfigPropertyValue__.ts +92 -93
  598. package/src/concepts/ConfigProperty__.ts +374 -357
  599. package/src/concepts/Configuration__.ts +288 -276
  600. package/src/concepts/Connection__.ts +426 -0
  601. package/src/concepts/ConnectorTrigger__.ts +146 -142
  602. package/src/concepts/Connector__.ts +1090 -1048
  603. package/src/concepts/Constant__.ts +226 -219
  604. package/src/concepts/DataElement__.ts +108 -115
  605. package/src/concepts/DataSource__.ts +508 -472
  606. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  607. package/src/concepts/Destination__.ts +808 -746
  608. package/src/concepts/End__.ts +85 -89
  609. package/src/concepts/EntityIndex__.ts +206 -202
  610. package/src/concepts/EntityProperty__.ts +825 -791
  611. package/src/concepts/Entity__.ts +921 -864
  612. package/src/concepts/EnumItem__.ts +133 -125
  613. package/src/concepts/Enum__.ts +347 -337
  614. package/src/concepts/Event__.ts +305 -292
  615. package/src/concepts/ExternalDestination__.ts +269 -280
  616. package/src/concepts/ForEachStatement__.ts +583 -531
  617. package/src/concepts/FrontendLibrary__.ts +507 -485
  618. package/src/concepts/FrontendVariable__.ts +44 -49
  619. package/src/concepts/Frontend__.ts +1239 -1187
  620. package/src/concepts/Function__.ts +1110 -1045
  621. package/src/concepts/Identifier__.ts +276 -272
  622. package/src/concepts/IfStatement__.ts +467 -436
  623. package/src/concepts/Integration__.ts +136 -137
  624. package/src/concepts/InterfaceParam__.ts +239 -238
  625. package/src/concepts/Interface__.ts +969 -948
  626. package/src/concepts/JSBlock__.ts +83 -83
  627. package/src/concepts/JavaLogic__.ts +101 -106
  628. package/src/concepts/LogicItem__.ts +307 -237
  629. package/src/concepts/Logic__.ts +2301 -2088
  630. package/src/concepts/MatchCase__.ts +886 -779
  631. package/src/concepts/Match__.ts +728 -659
  632. package/src/concepts/MemberExpression__.ts +330 -311
  633. package/src/concepts/MicroApp__.ts +91 -97
  634. package/src/concepts/Module__.ts +2590 -2278
  635. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  636. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  637. package/src/concepts/Namespace__.ts +2579 -2466
  638. package/src/concepts/NewComposite__.ts +1487 -1350
  639. package/src/concepts/NewList__.ts +464 -450
  640. package/src/concepts/NewMap__.ts +691 -674
  641. package/src/concepts/New__.ts +42 -49
  642. package/src/concepts/NullLiteral__.ts +66 -72
  643. package/src/concepts/NumericLiteral__.ts +169 -169
  644. package/src/concepts/OqlQueryComponent__.ts +282 -279
  645. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  646. package/src/concepts/Param__.ts +500 -442
  647. package/src/concepts/Point__.ts +53 -59
  648. package/src/concepts/ProcessComponent__.ts +497 -475
  649. package/src/concepts/ProcessElement__.ts +1852 -1780
  650. package/src/concepts/ProcessOutcome__.ts +59 -64
  651. package/src/concepts/ProcessOutcomes__.ts +59 -64
  652. package/src/concepts/Process__.ts +1491 -1428
  653. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  654. package/src/concepts/QueryFieldExpression__.ts +138 -142
  655. package/src/concepts/QueryFromExpression__.ts +246 -254
  656. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  657. package/src/concepts/QueryJoinExpression__.ts +441 -438
  658. package/src/concepts/QueryLimitExpression__.ts +159 -166
  659. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  660. package/src/concepts/QuerySelectExpression__.ts +464 -439
  661. package/src/concepts/Rect__.ts +73 -79
  662. package/src/concepts/Return__.ts +366 -345
  663. package/src/concepts/Role__.ts +146 -147
  664. package/src/concepts/SelectMembers__.ts +358 -350
  665. package/src/concepts/Slot__.ts +152 -153
  666. package/src/concepts/SqlQueryComponent__.ts +230 -228
  667. package/src/concepts/Start__.ts +45 -52
  668. package/src/concepts/StringInterpolation__.ts +323 -296
  669. package/src/concepts/StringLiteral__.ts +113 -115
  670. package/src/concepts/StructureProperty__.ts +306 -295
  671. package/src/concepts/Structure__.ts +615 -578
  672. package/src/concepts/SwitchCase__.ts +326 -290
  673. package/src/concepts/SwitchStatement__.ts +236 -229
  674. package/src/concepts/Theme__.ts +64 -68
  675. package/src/concepts/Transactional__.ts +159 -153
  676. package/src/concepts/TriggerEvent__.ts +285 -274
  677. package/src/concepts/TriggerLauncher__.ts +232 -196
  678. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  679. package/src/concepts/TypeParam__.ts +48 -50
  680. package/src/concepts/UnaryExpression__.ts +163 -153
  681. package/src/concepts/Unparsed__.ts +81 -82
  682. package/src/concepts/UseComponent__.ts +53 -59
  683. package/src/concepts/ValidationRule__.ts +524 -544
  684. package/src/concepts/Variable__.ts +419 -397
  685. package/src/concepts/ViewBlock__.ts +58 -64
  686. package/src/concepts/ViewComponent__.ts +1323 -1261
  687. package/src/concepts/ViewElement__.ts +2538 -2350
  688. package/src/concepts/View__.ts +2447 -2268
  689. package/src/concepts/WhileStatement__.ts +293 -272
  690. package/src/concepts/index__.ts +2 -1
  691. package/src/concepts/types__.ts +123 -121
  692. package/src/decorators/index.ts +75 -77
  693. package/src/decorators/promise.ts +28 -0
  694. package/src/enums/KEYWORDS.ts +1228 -1228
  695. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  696. package/src/generator/compileComponent.ts +10 -10
  697. package/src/generator/genBundleFiles.ts +300 -291
  698. package/src/generator/genHash.ts +2 -2
  699. package/src/generator/genMetaData.ts +280 -261
  700. package/src/generator/genReleaseBody.ts +312 -291
  701. package/src/generator/icestark.ts +1 -1
  702. package/src/generator/microApp.ts +17 -20
  703. package/src/generator/permission.ts +227 -218
  704. package/src/generator/qiankun.ts +1 -1
  705. package/src/generator/styleReplacer.ts +28 -31
  706. package/src/index.ts +0 -3
  707. package/src/manager/diagnostic.ts +84 -82
  708. package/src/manager/stepRecorder.ts +106 -94
  709. package/src/natural/RequirementAnalyzer.ts +208 -0
  710. package/src/natural/RequirementExecutor.ts +685 -0
  711. package/src/natural/componentData.ts +81 -0
  712. package/src/natural/genNaturalTS.ts +77 -0
  713. package/src/natural/index.ts +4 -0
  714. package/src/natural/knowledgeMap.ts +39 -0
  715. package/src/natural/naslStdlibMap.ts +24 -0
  716. package/src/natural/transformTSCode.ts +692 -0
  717. package/src/sentry/index.ts +109 -104
  718. package/src/server/createUiTs.ts +190 -184
  719. package/src/server/entity2LogicNamespace.ts +379 -359
  720. package/src/server/event.js +145 -145
  721. package/src/server/extendBaseNode.ts +461 -456
  722. package/src/server/formatTsUtils.ts +712 -713
  723. package/src/server/getConnector.ts +33 -33
  724. package/src/server/getExtensionModules.ts +23 -22
  725. package/src/server/getFunctions.ts +6 -6
  726. package/src/server/getInterfaces.ts +38 -37
  727. package/src/server/getLogging.ts +1 -1
  728. package/src/server/getLogics.ts +390 -344
  729. package/src/server/getMemberIdentifier.ts +286 -281
  730. package/src/server/getProcessComponents.ts +2 -2
  731. package/src/server/getProcesses.ts +548 -534
  732. package/src/server/getScope.ts +51 -51
  733. package/src/server/getValidates.ts +3 -3
  734. package/src/server/index.ts +29 -30
  735. package/src/server/naslServer.ts +4302 -4225
  736. package/src/server/naslStdlibMap.ts +43 -41
  737. package/src/server/process2LogicNamespace.ts +97 -97
  738. package/src/server/translator.ts +740 -746
  739. package/src/service/storage/init.ts +761 -728
  740. package/src/templator/genCallComponentLogic.ts +14 -15
  741. package/src/templator/genCreateBlock.ts +257 -229
  742. package/src/templator/genCurdEditMultipleKeyBlock.ts +332 -316
  743. package/src/templator/genCurdMultipleKeyBlock.ts +501 -473
  744. package/src/templator/genEditTableBlock.ts +192 -182
  745. package/src/templator/genEnumSelectBlock.ts +13 -7
  746. package/src/templator/genGetBlock.ts +57 -55
  747. package/src/templator/genGridViewBlock.ts +191 -201
  748. package/src/templator/genListViewBlock.ts +59 -64
  749. package/src/templator/genQueryComponent.ts +337 -287
  750. package/src/templator/genSelectBlock.ts +276 -285
  751. package/src/templator/genTableBlock.ts +157 -160
  752. package/src/templator/genUpdateBlock.ts +269 -255
  753. package/src/templator/index.ts +4 -4
  754. package/src/templator/utils.ts +490 -464
  755. package/src/translator/index.ts +84 -84
  756. package/src/translator/lsp.ts +22 -22
  757. package/src/translator/tsp.ts +6 -6
  758. package/src/utils/index.ts +115 -117
  759. package/src/utils/logger.ts +3 -4
  760. package/src/utils/sortTsString.ts +34 -32
  761. package/src/utils/string.ts +47 -48
  762. package/src/utils/time-slicing.ts +109 -0
  763. package/src/utils/traverse.ts +114 -126
  764. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  765. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  766. package/test/concepts/match/constant.ts +5 -0
  767. package/test/concepts/match/fixtures/isExpression.json +259 -0
  768. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  769. package/test/concepts/match/fixtures/noExpression.json +176 -0
  770. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  771. package/test/concepts/match/toJS.spec.ts +14 -0
  772. package/test/setup.ts +2 -1
  773. package/ts-worker/src/index.js +0 -2
  774. package/tsconfig.json +21 -21
@@ -1,12 +1,12 @@
1
- //================================================================================
1
+ //= ===============================================================================
2
2
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
3
3
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
4
- //================================================================================
4
+ //= ===============================================================================
5
+ import { v4 as uuidv4 } from 'uuid';
5
6
  import { EventPayload, Params } from '../common/EventEmitter';
6
7
  import { concept, excludedInJSON, property } from '../decorators';
7
8
 
8
9
  import * as utils from '../utils';
9
- import { v4 as uuidv4 } from 'uuid';
10
10
  import BaseNode from '../common/BaseNode';
11
11
  import classMap from '../common/classMap';
12
12
  import Attribute from './Attribute__';
@@ -22,1286 +22,1348 @@ import App from './App__';
22
22
  */
23
23
  @concept('页面组件')
24
24
  export class ViewComponent extends BaseNode {
25
- /**
26
- * 产品概念
27
- */
28
- @property()
29
- concept: 'ViewComponent' = 'ViewComponent';
30
-
31
- /**
32
- * 页面组件名称
33
- */
34
- @property()
35
- name: string = undefined;
36
-
37
- /**
38
- * 页面组件标题
39
- */
40
- @property()
41
- title: string = undefined;
42
-
43
- /**
44
- * 页面组件描述
45
- */
46
- @property()
47
- description: string = undefined;
48
-
49
- /**
50
- * category
51
- */
52
- @property()
53
- category: string = undefined;
54
-
55
- /**
56
- * 组件属性列表
57
- */
58
- @property('Attribute')
59
- attrs: Array<Attribute> = [];
60
-
61
- /**
62
- * 组件事件列表
63
- */
64
- @property('Event')
65
- events: Array<Event> = [];
66
-
67
- /**
68
- * 插槽列表
69
- */
70
- @property('Slot')
71
- slots: Array<Slot> = [];
72
-
73
- /**
74
- * 逻辑列表
75
- */
76
- @property('Logic')
77
- methods: Array<Logic> = [];
78
-
79
- /**
80
- * 页面组件列表
81
- */
82
- @property('ViewComponent')
83
- children: Array<ViewComponent> = [];
84
-
85
- /**
86
- * 代码块列表
87
- */
88
- @property('ViewBlock')
89
- blocks: Array<ViewBlock> = [];
90
-
91
- /**
92
- * themes
93
- */
94
- @property()
95
- themes: Array<{ name: string, type: string}> = undefined;
96
-
97
- /**
98
- * 祖先 Module
99
- */
100
- get module() {
101
- return this.getAncestor('Module') as Module;
102
- }
103
- /**
104
- * 祖先 App
105
- */
106
- get app() {
107
- return this.getAncestor('App') as App;
108
- }
109
-
110
- /**
111
- * @param source 需要合并的部分参数
112
- */
113
- constructor(source?: Partial<ViewComponent>) {
114
- source = Object.assign({}, ViewComponent.getDefaultOptions(), source);
115
- super(source);
116
- super.subConstructor(source);
117
- }
118
- getClassName() {
119
- return 'ViewComponent';
120
- }
121
-
122
- static from(source: any, parentNode?: any, parentKey?: string): ViewComponent {
123
- return super.from(source, parentNode, parentKey) as ViewComponent;
124
- }
125
-
126
- /**
127
- * 从父级删除该节点
128
- * @internal
129
- */
130
- _delete() {
131
- let params: Params = null;
132
- if (this.parentNode) {
133
- params = (this.parentNode as any)?.__removeViewComponent?.(this);
134
- }
135
- return params;
136
- }
137
-
138
-
139
- getAttributeExistingNames(excludedList: Array<Attribute> = []) {
140
- const excludedSet = new Set(excludedList);
141
- return ((this.attrs as Attribute[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
142
- }
143
- getAttributeUniqueName(name = 'attribute1') {
144
- return utils.unique(name, this.getAttributeExistingNames(), undefined, false);
145
- }
146
-
147
- /**
148
- * 插入组件属性
149
- * @internal
150
- * @param name 组件属性名称,如果不填会自动生成一个唯一名称
151
- */
152
- _insertAttributeAt(name: string, index: number): Attribute;
153
-
154
- /**
155
- * 插入组件属性
156
- * @internal
157
- * @param attributeOptions 组件属性参数
158
- */
159
- _insertAttributeAt(attributeOptions: Partial<Attribute>, index: number): Attribute;
160
-
161
- /**
162
- * 插入组件属性
163
- * @internal
164
- * @param attribute 已有的组件属性实例
165
- */
166
- _insertAttributeAt(attribute: Attribute, index: number): Attribute;
167
-
168
- _insertAttributeAt(options: string | Partial<Attribute> | Attribute, index: number) {
169
- const attributeOptions: any = {};
170
- const relationOptions = { parentNode: this, parentKey: 'attrs' };
171
- let attribute: Attribute;
172
- if (!options) {
173
- attribute = Attribute.from({
174
- ...attributeOptions,
175
- name: this.getAttributeUniqueName(),
176
- }, this, 'attrs');
177
- } else if (typeof options === 'string') {
178
- attribute = Attribute.from({
179
- ...attributeOptions,
180
- name: options,
181
- }, this, 'attrs');
182
- } else if (options instanceof Attribute) {
183
- options.ensureDelete(); // 同一实例不支持多处存在
184
- attribute = options;
185
- Object.assign(attribute, relationOptions);
186
- } else {
187
- attribute = Attribute.from({
188
- ...attributeOptions,
189
- ...options,
190
- }, this, 'attrs');
191
- }
192
- this.attrs.splice(index, 0, attribute);
193
- return attribute;
194
- }
195
-
196
- /**
197
- * 插入组件属性
198
- * @param name 组件属性名称,如果不填会自动生成一个唯一名称
199
- */
200
- insertAttributeAt(name: string, index: number): Attribute;
201
-
202
- /**
203
- * 插入组件属性
204
- * @param attributeOptions 组件属性参数
205
- */
206
- insertAttributeAt(attributeOptions: Partial<Attribute>, index: number): Attribute;
207
-
208
- /**
209
- * 插入组件属性
210
- * @param attribute 已有的组件属性实例
211
- */
212
- insertAttributeAt(attribute: Attribute, index: number): Attribute;
213
-
214
- insertAttributeAt(options: string | Partial<Attribute> | Attribute, index: number) {
215
- const node = this._insertAttributeAt(options as any, index);
216
- node.create({
217
- index,
218
- parentNode: this,
219
- parentKey: 'attrs',
220
- });
221
- return node;
222
- }
223
-
224
- /**
225
- * 添加组件属性
226
- * @internal
227
- * @param name 组件属性名称,如果不填会自动生成一个唯一名称
228
- */
229
- _addAttribute(name?: string): Attribute;
230
-
231
- /**
232
- * 添加组件属性
233
- * @internal
234
- * @param attributeOptions 组件属性参数
235
- */
236
- _addAttribute(attributeOptions: Partial<Attribute>): Attribute;
237
-
238
- /**
239
- * 添加组件属性
240
- * @internal
241
- * @param attribute 已有的组件属性实例
242
- */
243
- _addAttribute(attribute: Attribute): Attribute;
244
-
245
- _addAttribute(options?: string | Partial<Attribute> | Attribute) {
246
- const index = this.attrs.length;
247
- return this._insertAttributeAt(options as any, index);
248
- }
249
-
250
- /**
251
- * 添加组件属性
252
- * @internal
253
- * @param name 组件属性名称,如果不填会自动生成一个唯一名称
254
- */
255
- addAttribute(name?: string): Attribute;
256
-
257
- /**
258
- * 添加组件属性
259
- * @param attributeOptions 组件属性参数
260
- */
261
- addAttribute(attributeOptions: Partial<Attribute>): Attribute;
262
-
263
- /**
264
- * 添加组件属性
265
- * @param attribute 已有的组件属性实例
266
- */
267
- addAttribute(attribute: Attribute): Attribute;
268
-
269
- addAttribute(options?: string | Partial<Attribute> | Attribute) {
270
- const node = this._addAttribute(options as any);
271
- const index = this.attrs.indexOf(node);
272
- node.create({
273
- index,
274
- parentNode: this,
275
- parentKey: 'attrs',
276
- });
277
- return node;
278
- }
279
-
280
-
281
- getEventExistingNames(excludedList: Array<Event> = []) {
282
- const excludedSet = new Set(excludedList);
283
- return ((this.events as Event[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
284
- }
285
- getEventUniqueName(name = 'event1') {
286
- return utils.unique(name, this.getEventExistingNames(), undefined, false);
287
- }
288
-
289
- /**
290
- * 插入组件事件
291
- * @internal
292
- * @param name 组件事件名称,如果不填会自动生成一个唯一名称
293
- */
294
- _insertEventAt(name: string, index: number): Event;
295
-
296
- /**
297
- * 插入组件事件
298
- * @internal
299
- * @param eventOptions 组件事件参数
300
- */
301
- _insertEventAt(eventOptions: Partial<Event>, index: number): Event;
302
-
303
- /**
304
- * 插入组件事件
305
- * @internal
306
- * @param event 已有的组件事件实例
307
- */
308
- _insertEventAt(event: Event, index: number): Event;
309
-
310
- _insertEventAt(options: string | Partial<Event> | Event, index: number) {
311
- const eventOptions: any = {};
312
- const relationOptions = { parentNode: this, parentKey: 'events' };
313
- let event: Event;
314
- if (!options) {
315
- event = Event.from({
316
- ...eventOptions,
317
- name: this.getEventUniqueName(),
318
- }, this, 'events');
319
- } else if (typeof options === 'string') {
320
- event = Event.from({
321
- ...eventOptions,
322
- name: options,
323
- }, this, 'events');
324
- } else if (options instanceof Event) {
325
- options.ensureDelete(); // 同一实例不支持多处存在
326
- event = options;
327
- Object.assign(event, relationOptions);
328
- } else {
329
- event = Event.from({
330
- ...eventOptions,
331
- ...options,
332
- }, this, 'events');
333
- }
334
- this.events.splice(index, 0, event);
335
- return event;
336
- }
337
-
338
- /**
339
- * 插入组件事件
340
- * @param name 组件事件名称,如果不填会自动生成一个唯一名称
341
- */
342
- insertEventAt(name: string, index: number): Event;
343
-
344
- /**
345
- * 插入组件事件
346
- * @param eventOptions 组件事件参数
347
- */
348
- insertEventAt(eventOptions: Partial<Event>, index: number): Event;
349
-
350
- /**
351
- * 插入组件事件
352
- * @param event 已有的组件事件实例
353
- */
354
- insertEventAt(event: Event, index: number): Event;
355
-
356
- insertEventAt(options: string | Partial<Event> | Event, index: number) {
357
- const node = this._insertEventAt(options as any, index);
358
- node.create({
359
- index,
360
- parentNode: this,
361
- parentKey: 'events',
362
- });
363
- return node;
364
- }
365
-
366
- /**
367
- * 添加组件事件
368
- * @internal
369
- * @param name 组件事件名称,如果不填会自动生成一个唯一名称
370
- */
371
- _addEvent(name?: string): Event;
372
-
373
- /**
374
- * 添加组件事件
375
- * @internal
376
- * @param eventOptions 组件事件参数
377
- */
378
- _addEvent(eventOptions: Partial<Event>): Event;
379
-
380
- /**
381
- * 添加组件事件
382
- * @internal
383
- * @param event 已有的组件事件实例
384
- */
385
- _addEvent(event: Event): Event;
386
-
387
- _addEvent(options?: string | Partial<Event> | Event) {
388
- const index = this.events.length;
389
- return this._insertEventAt(options as any, index);
390
- }
391
-
392
- /**
393
- * 添加组件事件
394
- * @internal
395
- * @param name 组件事件名称,如果不填会自动生成一个唯一名称
396
- */
397
- addEvent(name?: string): Event;
398
-
399
- /**
400
- * 添加组件事件
401
- * @param eventOptions 组件事件参数
402
- */
403
- addEvent(eventOptions: Partial<Event>): Event;
404
-
405
- /**
406
- * 添加组件事件
407
- * @param event 已有的组件事件实例
408
- */
409
- addEvent(event: Event): Event;
410
-
411
- addEvent(options?: string | Partial<Event> | Event) {
412
- const node = this._addEvent(options as any);
413
- const index = this.events.indexOf(node);
414
- node.create({
415
- index,
416
- parentNode: this,
417
- parentKey: 'events',
418
- });
419
- return node;
420
- }
421
-
422
-
423
- getSlotExistingNames(excludedList: Array<Slot> = []) {
424
- const excludedSet = new Set(excludedList);
425
- return ((this.slots as Slot[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
426
- }
427
- getSlotUniqueName(name = 'slot1') {
428
- return utils.unique(name, this.getSlotExistingNames(), undefined, false);
429
- }
430
-
431
- /**
432
- * 插入插槽
433
- * @internal
434
- * @param name 插槽名称,如果不填会自动生成一个唯一名称
435
- */
436
- _insertSlotAt(name: string, index: number): Slot;
437
-
438
- /**
439
- * 插入插槽
440
- * @internal
441
- * @param slotOptions 插槽参数
442
- */
443
- _insertSlotAt(slotOptions: Partial<Slot>, index: number): Slot;
444
-
445
- /**
446
- * 插入插槽
447
- * @internal
448
- * @param slot 已有的插槽实例
449
- */
450
- _insertSlotAt(slot: Slot, index: number): Slot;
451
-
452
- _insertSlotAt(options: string | Partial<Slot> | Slot, index: number) {
453
- const slotOptions: any = {};
454
- const relationOptions = { parentNode: this, parentKey: 'slots' };
455
- let slot: Slot;
456
- if (!options) {
457
- slot = Slot.from({
458
- ...slotOptions,
459
- name: this.getSlotUniqueName(),
460
- }, this, 'slots');
461
- } else if (typeof options === 'string') {
462
- slot = Slot.from({
463
- ...slotOptions,
464
- name: options,
465
- }, this, 'slots');
466
- } else if (options instanceof Slot) {
467
- options.ensureDelete(); // 同一实例不支持多处存在
468
- slot = options;
469
- Object.assign(slot, relationOptions);
470
- } else {
471
- slot = Slot.from({
472
- ...slotOptions,
473
- ...options,
474
- }, this, 'slots');
475
- }
476
- this.slots.splice(index, 0, slot);
477
- return slot;
478
- }
479
-
480
- /**
481
- * 插入插槽
482
- * @param name 插槽名称,如果不填会自动生成一个唯一名称
483
- */
484
- insertSlotAt(name: string, index: number): Slot;
485
-
486
- /**
487
- * 插入插槽
488
- * @param slotOptions 插槽参数
489
- */
490
- insertSlotAt(slotOptions: Partial<Slot>, index: number): Slot;
491
-
492
- /**
493
- * 插入插槽
494
- * @param slot 已有的插槽实例
495
- */
496
- insertSlotAt(slot: Slot, index: number): Slot;
497
-
498
- insertSlotAt(options: string | Partial<Slot> | Slot, index: number) {
499
- const node = this._insertSlotAt(options as any, index);
500
- node.create({
501
- index,
502
- parentNode: this,
503
- parentKey: 'slots',
504
- });
505
- return node;
506
- }
507
-
508
- /**
509
- * 添加插槽
510
- * @internal
511
- * @param name 插槽名称,如果不填会自动生成一个唯一名称
512
- */
513
- _addSlot(name?: string): Slot;
514
-
515
- /**
516
- * 添加插槽
517
- * @internal
518
- * @param slotOptions 插槽参数
519
- */
520
- _addSlot(slotOptions: Partial<Slot>): Slot;
521
-
522
- /**
523
- * 添加插槽
524
- * @internal
525
- * @param slot 已有的插槽实例
526
- */
527
- _addSlot(slot: Slot): Slot;
528
-
529
- _addSlot(options?: string | Partial<Slot> | Slot) {
530
- const index = this.slots.length;
531
- return this._insertSlotAt(options as any, index);
532
- }
533
-
534
- /**
535
- * 添加插槽
536
- * @internal
537
- * @param name 插槽名称,如果不填会自动生成一个唯一名称
538
- */
539
- addSlot(name?: string): Slot;
540
-
541
- /**
542
- * 添加插槽
543
- * @param slotOptions 插槽参数
544
- */
545
- addSlot(slotOptions: Partial<Slot>): Slot;
546
-
547
- /**
548
- * 添加插槽
549
- * @param slot 已有的插槽实例
550
- */
551
- addSlot(slot: Slot): Slot;
552
-
553
- addSlot(options?: string | Partial<Slot> | Slot) {
554
- const node = this._addSlot(options as any);
555
- const index = this.slots.indexOf(node);
556
- node.create({
557
- index,
558
- parentNode: this,
559
- parentKey: 'slots',
560
- });
561
- return node;
562
- }
563
-
564
-
565
- getLogicExistingNames(excludedList: Array<Logic> = []) {
566
- const excludedSet = new Set(excludedList);
567
- return ((this.methods as Logic[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
568
- }
569
- getLogicUniqueName(name = 'logic1') {
570
- return utils.unique(name, this.getLogicExistingNames(), undefined, false);
571
- }
572
-
573
- /**
574
- * 插入逻辑
575
- * @internal
576
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
577
- */
578
- _insertLogicAt(name: string, index: number): Logic;
579
-
580
- /**
581
- * 插入逻辑
582
- * @internal
583
- * @param logicOptions 逻辑参数
584
- */
585
- _insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
586
-
587
- /**
588
- * 插入逻辑
589
- * @internal
590
- * @param logic 已有的逻辑实例
591
- */
592
- _insertLogicAt(logic: Logic, index: number): Logic;
593
-
594
- _insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
595
- const logicOptions: any = {};
596
- const relationOptions = { parentNode: this, parentKey: 'methods' };
597
- let logic: Logic;
598
- if (!options) {
599
- logic = Logic.from({
600
- ...logicOptions,
601
- name: this.getLogicUniqueName(),
602
- }, this, 'methods');
603
- } else if (typeof options === 'string') {
604
- logic = Logic.from({
605
- ...logicOptions,
606
- name: options,
607
- }, this, 'methods');
608
- } else if (options instanceof Logic) {
609
- options.ensureDelete(); // 同一实例不支持多处存在
610
- logic = options;
611
- Object.assign(logic, relationOptions);
612
- } else {
613
- logic = Logic.from({
614
- ...logicOptions,
615
- ...options,
616
- }, this, 'methods');
617
- }
618
- this.methods.splice(index, 0, logic);
619
- return logic;
25
+ /**
26
+ * 产品概念
27
+ */
28
+ @property()
29
+ concept: 'ViewComponent' = 'ViewComponent';
30
+
31
+ /**
32
+ * 页面组件名称
33
+ */
34
+ @property()
35
+ name: string = undefined;
36
+
37
+ /**
38
+ * 页面组件标题
39
+ */
40
+ @property()
41
+ title: string = undefined;
42
+
43
+ /**
44
+ * 页面组件描述
45
+ */
46
+ @property()
47
+ description: string = undefined;
48
+
49
+ /**
50
+ * category
51
+ */
52
+ @property()
53
+ category: string = undefined;
54
+
55
+ /**
56
+ * 组件属性列表
57
+ */
58
+ @property('Attribute')
59
+ attrs: Array<Attribute> = [];
60
+
61
+ /**
62
+ * 组件事件列表
63
+ */
64
+ @property('Event')
65
+ events: Array<Event> = [];
66
+
67
+ /**
68
+ * 插槽列表
69
+ */
70
+ @property('Slot')
71
+ slots: Array<Slot> = [];
72
+
73
+ /**
74
+ * 逻辑列表
75
+ */
76
+ @property('Logic')
77
+ methods: Array<Logic> = [];
78
+
79
+ /**
80
+ * 页面组件列表
81
+ */
82
+ @property('ViewComponent')
83
+ children: Array<ViewComponent> = [];
84
+
85
+ /**
86
+ * 代码块列表
87
+ */
88
+ @property('ViewBlock')
89
+ blocks: Array<ViewBlock> = [];
90
+
91
+ /**
92
+ * themes
93
+ */
94
+ @property()
95
+ themes: Array<{ name: string; type: string }> = undefined;
96
+
97
+ /**
98
+ * 祖先 Module
99
+ */
100
+ get module() {
101
+ return this.getAncestor('Module') as Module;
102
+ }
103
+
104
+ /**
105
+ * 祖先 App
106
+ */
107
+ get app() {
108
+ return this.getAncestor('App') as App;
109
+ }
110
+
111
+ /**
112
+ * @param source 需要合并的部分参数
113
+ */
114
+ constructor(source?: Partial<ViewComponent>) {
115
+ // @ts-ignore
116
+ source = { ...ViewComponent.getDefaultOptions(), ...source };
117
+ super(source);
118
+ super.subConstructor(source);
119
+ }
120
+
121
+ getClassName() {
122
+ return 'ViewComponent';
123
+ }
124
+
125
+ static from(source: any, parentNode?: any, parentKey?: string): ViewComponent {
126
+ return super.from(source, parentNode, parentKey) as ViewComponent;
127
+ }
128
+
129
+ /**
130
+ * 从父级删除该节点
131
+ * @internal
132
+ */
133
+ _delete() {
134
+ let params: Params = null;
135
+ if (this.parentNode) {
136
+ params = (this.parentNode as any)?.__removeViewComponent?.(this);
620
137
  }
621
-
622
- /**
623
- * 插入逻辑
624
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
625
- */
626
- insertLogicAt(name: string, index: number): Logic;
627
-
628
- /**
629
- * 插入逻辑
630
- * @param logicOptions 逻辑参数
631
- */
632
- insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
633
-
634
- /**
635
- * 插入逻辑
636
- * @param logic 已有的逻辑实例
637
- */
638
- insertLogicAt(logic: Logic, index: number): Logic;
639
-
640
- insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
641
- const node = this._insertLogicAt(options as any, index);
642
- node.create({
643
- index,
644
- parentNode: this,
645
- parentKey: 'methods',
646
- });
647
- return node;
138
+ return params;
139
+ }
140
+
141
+ getAttributeExistingNames(excludedList: Array<Attribute> = []) {
142
+ const excludedSet = new Set(excludedList);
143
+ return ((this.attrs as Attribute[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
144
+ }
145
+
146
+ getAttributeUniqueName(name = 'attribute1') {
147
+ return utils.unique(name, this.getAttributeExistingNames(), undefined, false);
148
+ }
149
+
150
+ /**
151
+ * 插入组件属性
152
+ * @internal
153
+ * @param name 组件属性名称,如果不填会自动生成一个唯一名称
154
+ */
155
+ _insertAttributeAt(name: string, index: number): Attribute;
156
+
157
+ /**
158
+ * 插入组件属性
159
+ * @internal
160
+ * @param attributeOptions 组件属性参数
161
+ */
162
+ _insertAttributeAt(attributeOptions: Partial<Attribute>, index: number): Attribute;
163
+
164
+ /**
165
+ * 插入组件属性
166
+ * @internal
167
+ * @param attribute 已有的组件属性实例
168
+ */
169
+ _insertAttributeAt(attribute: Attribute, index: number): Attribute;
170
+
171
+ _insertAttributeAt(options: string | Partial<Attribute> | Attribute, index: number) {
172
+ const attributeOptions: any = {};
173
+ const relationOptions = { parentNode: this, parentKey: 'attrs' };
174
+ let attribute: Attribute;
175
+ if (!options) {
176
+ attribute = Attribute.from(
177
+ {
178
+ ...attributeOptions,
179
+ name: this.getAttributeUniqueName(),
180
+ },
181
+ this,
182
+ 'attrs'
183
+ );
184
+ } else if (typeof options === 'string') {
185
+ attribute = Attribute.from(
186
+ {
187
+ ...attributeOptions,
188
+ name: options,
189
+ },
190
+ this,
191
+ 'attrs'
192
+ );
193
+ } else if (options instanceof Attribute) {
194
+ options.ensureDelete(); // 同一实例不支持多处存在
195
+ attribute = options;
196
+ Object.assign(attribute, relationOptions);
197
+ } else {
198
+ attribute = Attribute.from(
199
+ {
200
+ ...attributeOptions,
201
+ ...options,
202
+ },
203
+ this,
204
+ 'attrs'
205
+ );
648
206
  }
649
-
650
- /**
651
- * 添加逻辑
652
- * @internal
653
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
654
- */
655
- _addLogic(name?: string): Logic;
656
-
657
- /**
658
- * 添加逻辑
659
- * @internal
660
- * @param logicOptions 逻辑参数
661
- */
662
- _addLogic(logicOptions: Partial<Logic>): Logic;
663
-
664
- /**
665
- * 添加逻辑
666
- * @internal
667
- * @param logic 已有的逻辑实例
668
- */
669
- _addLogic(logic: Logic): Logic;
670
-
671
- _addLogic(options?: string | Partial<Logic> | Logic) {
672
- const index = this.methods.length;
673
- return this._insertLogicAt(options as any, index);
207
+ this.attrs.splice(index, 0, attribute);
208
+ return attribute;
209
+ }
210
+
211
+ /**
212
+ * 插入组件属性
213
+ * @param name 组件属性名称,如果不填会自动生成一个唯一名称
214
+ */
215
+ insertAttributeAt(name: string, index: number): Attribute;
216
+
217
+ /**
218
+ * 插入组件属性
219
+ * @param attributeOptions 组件属性参数
220
+ */
221
+ insertAttributeAt(attributeOptions: Partial<Attribute>, index: number): Attribute;
222
+
223
+ /**
224
+ * 插入组件属性
225
+ * @param attribute 已有的组件属性实例
226
+ */
227
+ insertAttributeAt(attribute: Attribute, index: number): Attribute;
228
+
229
+ insertAttributeAt(options: string | Partial<Attribute> | Attribute, index: number) {
230
+ const node = this._insertAttributeAt(options as any, index);
231
+ node.create({
232
+ index,
233
+ parentNode: this,
234
+ parentKey: 'attrs',
235
+ });
236
+ return node;
237
+ }
238
+
239
+ /**
240
+ * 添加组件属性
241
+ * @internal
242
+ * @param name 组件属性名称,如果不填会自动生成一个唯一名称
243
+ */
244
+ _addAttribute(name?: string): Attribute;
245
+
246
+ /**
247
+ * 添加组件属性
248
+ * @internal
249
+ * @param attributeOptions 组件属性参数
250
+ */
251
+ _addAttribute(attributeOptions: Partial<Attribute>): Attribute;
252
+
253
+ /**
254
+ * 添加组件属性
255
+ * @internal
256
+ * @param attribute 已有的组件属性实例
257
+ */
258
+ _addAttribute(attribute: Attribute): Attribute;
259
+
260
+ _addAttribute(options?: string | Partial<Attribute> | Attribute) {
261
+ const index = this.attrs.length;
262
+ return this._insertAttributeAt(options as any, index);
263
+ }
264
+
265
+ /**
266
+ * 添加组件属性
267
+ * @internal
268
+ * @param name 组件属性名称,如果不填会自动生成一个唯一名称
269
+ */
270
+ addAttribute(name?: string): Attribute;
271
+
272
+ /**
273
+ * 添加组件属性
274
+ * @param attributeOptions 组件属性参数
275
+ */
276
+ addAttribute(attributeOptions: Partial<Attribute>): Attribute;
277
+
278
+ /**
279
+ * 添加组件属性
280
+ * @param attribute 已有的组件属性实例
281
+ */
282
+ addAttribute(attribute: Attribute): Attribute;
283
+
284
+ addAttribute(options?: string | Partial<Attribute> | Attribute) {
285
+ const node = this._addAttribute(options as any);
286
+ const index = this.attrs.indexOf(node);
287
+ node.create({
288
+ index,
289
+ parentNode: this,
290
+ parentKey: 'attrs',
291
+ });
292
+ return node;
293
+ }
294
+
295
+ getEventExistingNames(excludedList: Array<Event> = []) {
296
+ const excludedSet = new Set(excludedList);
297
+ return ((this.events as Event[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
298
+ }
299
+
300
+ getEventUniqueName(name = 'event1') {
301
+ return utils.unique(name, this.getEventExistingNames(), undefined, false);
302
+ }
303
+
304
+ /**
305
+ * 插入组件事件
306
+ * @internal
307
+ * @param name 组件事件名称,如果不填会自动生成一个唯一名称
308
+ */
309
+ _insertEventAt(name: string, index: number): Event;
310
+
311
+ /**
312
+ * 插入组件事件
313
+ * @internal
314
+ * @param eventOptions 组件事件参数
315
+ */
316
+ _insertEventAt(eventOptions: Partial<Event>, index: number): Event;
317
+
318
+ /**
319
+ * 插入组件事件
320
+ * @internal
321
+ * @param event 已有的组件事件实例
322
+ */
323
+ _insertEventAt(event: Event, index: number): Event;
324
+
325
+ _insertEventAt(options: string | Partial<Event> | Event, index: number) {
326
+ const eventOptions: any = {};
327
+ const relationOptions = { parentNode: this, parentKey: 'events' };
328
+ let event: Event;
329
+ if (!options) {
330
+ event = Event.from(
331
+ {
332
+ ...eventOptions,
333
+ name: this.getEventUniqueName(),
334
+ },
335
+ this,
336
+ 'events'
337
+ );
338
+ } else if (typeof options === 'string') {
339
+ event = Event.from(
340
+ {
341
+ ...eventOptions,
342
+ name: options,
343
+ },
344
+ this,
345
+ 'events'
346
+ );
347
+ } else if (options instanceof Event) {
348
+ options.ensureDelete(); // 同一实例不支持多处存在
349
+ event = options;
350
+ Object.assign(event, relationOptions);
351
+ } else {
352
+ event = Event.from(
353
+ {
354
+ ...eventOptions,
355
+ ...options,
356
+ },
357
+ this,
358
+ 'events'
359
+ );
674
360
  }
675
-
676
- /**
677
- * 添加逻辑
678
- * @internal
679
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
680
- */
681
- addLogic(name?: string): Logic;
682
-
683
- /**
684
- * 添加逻辑
685
- * @param logicOptions 逻辑参数
686
- */
687
- addLogic(logicOptions: Partial<Logic>): Logic;
688
-
689
- /**
690
- * 添加逻辑
691
- * @param logic 已有的逻辑实例
692
- */
693
- addLogic(logic: Logic): Logic;
694
-
695
- addLogic(options?: string | Partial<Logic> | Logic) {
696
- const node = this._addLogic(options as any);
697
- const index = this.methods.indexOf(node);
698
- node.create({
699
- index,
700
- parentNode: this,
701
- parentKey: 'methods',
702
- });
703
- return node;
361
+ this.events.splice(index, 0, event);
362
+ return event;
363
+ }
364
+
365
+ /**
366
+ * 插入组件事件
367
+ * @param name 组件事件名称,如果不填会自动生成一个唯一名称
368
+ */
369
+ insertEventAt(name: string, index: number): Event;
370
+
371
+ /**
372
+ * 插入组件事件
373
+ * @param eventOptions 组件事件参数
374
+ */
375
+ insertEventAt(eventOptions: Partial<Event>, index: number): Event;
376
+
377
+ /**
378
+ * 插入组件事件
379
+ * @param event 已有的组件事件实例
380
+ */
381
+ insertEventAt(event: Event, index: number): Event;
382
+
383
+ insertEventAt(options: string | Partial<Event> | Event, index: number) {
384
+ const node = this._insertEventAt(options as any, index);
385
+ node.create({
386
+ index,
387
+ parentNode: this,
388
+ parentKey: 'events',
389
+ });
390
+ return node;
391
+ }
392
+
393
+ /**
394
+ * 添加组件事件
395
+ * @internal
396
+ * @param name 组件事件名称,如果不填会自动生成一个唯一名称
397
+ */
398
+ _addEvent(name?: string): Event;
399
+
400
+ /**
401
+ * 添加组件事件
402
+ * @internal
403
+ * @param eventOptions 组件事件参数
404
+ */
405
+ _addEvent(eventOptions: Partial<Event>): Event;
406
+
407
+ /**
408
+ * 添加组件事件
409
+ * @internal
410
+ * @param event 已有的组件事件实例
411
+ */
412
+ _addEvent(event: Event): Event;
413
+
414
+ _addEvent(options?: string | Partial<Event> | Event) {
415
+ const index = this.events.length;
416
+ return this._insertEventAt(options as any, index);
417
+ }
418
+
419
+ /**
420
+ * 添加组件事件
421
+ * @internal
422
+ * @param name 组件事件名称,如果不填会自动生成一个唯一名称
423
+ */
424
+ addEvent(name?: string): Event;
425
+
426
+ /**
427
+ * 添加组件事件
428
+ * @param eventOptions 组件事件参数
429
+ */
430
+ addEvent(eventOptions: Partial<Event>): Event;
431
+
432
+ /**
433
+ * 添加组件事件
434
+ * @param event 已有的组件事件实例
435
+ */
436
+ addEvent(event: Event): Event;
437
+
438
+ addEvent(options?: string | Partial<Event> | Event) {
439
+ const node = this._addEvent(options as any);
440
+ const index = this.events.indexOf(node);
441
+ node.create({
442
+ index,
443
+ parentNode: this,
444
+ parentKey: 'events',
445
+ });
446
+ return node;
447
+ }
448
+
449
+ getSlotExistingNames(excludedList: Array<Slot> = []) {
450
+ const excludedSet = new Set(excludedList);
451
+ return ((this.slots as Slot[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
452
+ }
453
+
454
+ getSlotUniqueName(name = 'slot1') {
455
+ return utils.unique(name, this.getSlotExistingNames(), undefined, false);
456
+ }
457
+
458
+ /**
459
+ * 插入插槽
460
+ * @internal
461
+ * @param name 插槽名称,如果不填会自动生成一个唯一名称
462
+ */
463
+ _insertSlotAt(name: string, index: number): Slot;
464
+
465
+ /**
466
+ * 插入插槽
467
+ * @internal
468
+ * @param slotOptions 插槽参数
469
+ */
470
+ _insertSlotAt(slotOptions: Partial<Slot>, index: number): Slot;
471
+
472
+ /**
473
+ * 插入插槽
474
+ * @internal
475
+ * @param slot 已有的插槽实例
476
+ */
477
+ _insertSlotAt(slot: Slot, index: number): Slot;
478
+
479
+ _insertSlotAt(options: string | Partial<Slot> | Slot, index: number) {
480
+ const slotOptions: any = {};
481
+ const relationOptions = { parentNode: this, parentKey: 'slots' };
482
+ let slot: Slot;
483
+ if (!options) {
484
+ slot = Slot.from(
485
+ {
486
+ ...slotOptions,
487
+ name: this.getSlotUniqueName(),
488
+ },
489
+ this,
490
+ 'slots'
491
+ );
492
+ } else if (typeof options === 'string') {
493
+ slot = Slot.from(
494
+ {
495
+ ...slotOptions,
496
+ name: options,
497
+ },
498
+ this,
499
+ 'slots'
500
+ );
501
+ } else if (options instanceof Slot) {
502
+ options.ensureDelete(); // 同一实例不支持多处存在
503
+ slot = options;
504
+ Object.assign(slot, relationOptions);
505
+ } else {
506
+ slot = Slot.from(
507
+ {
508
+ ...slotOptions,
509
+ ...options,
510
+ },
511
+ this,
512
+ 'slots'
513
+ );
704
514
  }
705
-
706
-
707
- getViewComponentExistingNames(excludedList: Array<ViewComponent> = []) {
708
- const excludedSet = new Set(excludedList);
709
- return ((this.children as ViewComponent[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
515
+ this.slots.splice(index, 0, slot);
516
+ return slot;
517
+ }
518
+
519
+ /**
520
+ * 插入插槽
521
+ * @param name 插槽名称,如果不填会自动生成一个唯一名称
522
+ */
523
+ insertSlotAt(name: string, index: number): Slot;
524
+
525
+ /**
526
+ * 插入插槽
527
+ * @param slotOptions 插槽参数
528
+ */
529
+ insertSlotAt(slotOptions: Partial<Slot>, index: number): Slot;
530
+
531
+ /**
532
+ * 插入插槽
533
+ * @param slot 已有的插槽实例
534
+ */
535
+ insertSlotAt(slot: Slot, index: number): Slot;
536
+
537
+ insertSlotAt(options: string | Partial<Slot> | Slot, index: number) {
538
+ const node = this._insertSlotAt(options as any, index);
539
+ node.create({
540
+ index,
541
+ parentNode: this,
542
+ parentKey: 'slots',
543
+ });
544
+ return node;
545
+ }
546
+
547
+ /**
548
+ * 添加插槽
549
+ * @internal
550
+ * @param name 插槽名称,如果不填会自动生成一个唯一名称
551
+ */
552
+ _addSlot(name?: string): Slot;
553
+
554
+ /**
555
+ * 添加插槽
556
+ * @internal
557
+ * @param slotOptions 插槽参数
558
+ */
559
+ _addSlot(slotOptions: Partial<Slot>): Slot;
560
+
561
+ /**
562
+ * 添加插槽
563
+ * @internal
564
+ * @param slot 已有的插槽实例
565
+ */
566
+ _addSlot(slot: Slot): Slot;
567
+
568
+ _addSlot(options?: string | Partial<Slot> | Slot) {
569
+ const index = this.slots.length;
570
+ return this._insertSlotAt(options as any, index);
571
+ }
572
+
573
+ /**
574
+ * 添加插槽
575
+ * @internal
576
+ * @param name 插槽名称,如果不填会自动生成一个唯一名称
577
+ */
578
+ addSlot(name?: string): Slot;
579
+
580
+ /**
581
+ * 添加插槽
582
+ * @param slotOptions 插槽参数
583
+ */
584
+ addSlot(slotOptions: Partial<Slot>): Slot;
585
+
586
+ /**
587
+ * 添加插槽
588
+ * @param slot 已有的插槽实例
589
+ */
590
+ addSlot(slot: Slot): Slot;
591
+
592
+ addSlot(options?: string | Partial<Slot> | Slot) {
593
+ const node = this._addSlot(options as any);
594
+ const index = this.slots.indexOf(node);
595
+ node.create({
596
+ index,
597
+ parentNode: this,
598
+ parentKey: 'slots',
599
+ });
600
+ return node;
601
+ }
602
+
603
+ getLogicExistingNames(excludedList: Array<Logic> = []) {
604
+ const excludedSet = new Set(excludedList);
605
+ return ((this.methods as Logic[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
606
+ }
607
+
608
+ getLogicUniqueName(name = 'logic1') {
609
+ return utils.unique(name, this.getLogicExistingNames(), undefined, false);
610
+ }
611
+
612
+ /**
613
+ * 插入逻辑
614
+ * @internal
615
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
616
+ */
617
+ _insertLogicAt(name: string, index: number): Logic;
618
+
619
+ /**
620
+ * 插入逻辑
621
+ * @internal
622
+ * @param logicOptions 逻辑参数
623
+ */
624
+ _insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
625
+
626
+ /**
627
+ * 插入逻辑
628
+ * @internal
629
+ * @param logic 已有的逻辑实例
630
+ */
631
+ _insertLogicAt(logic: Logic, index: number): Logic;
632
+
633
+ _insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
634
+ const logicOptions: any = {};
635
+ const relationOptions = { parentNode: this, parentKey: 'methods' };
636
+ let logic: Logic;
637
+ if (!options) {
638
+ logic = Logic.from(
639
+ {
640
+ ...logicOptions,
641
+ name: this.getLogicUniqueName(),
642
+ },
643
+ this,
644
+ 'methods'
645
+ );
646
+ } else if (typeof options === 'string') {
647
+ logic = Logic.from(
648
+ {
649
+ ...logicOptions,
650
+ name: options,
651
+ },
652
+ this,
653
+ 'methods'
654
+ );
655
+ } else if (options instanceof Logic) {
656
+ options.ensureDelete(); // 同一实例不支持多处存在
657
+ logic = options;
658
+ Object.assign(logic, relationOptions);
659
+ } else {
660
+ logic = Logic.from(
661
+ {
662
+ ...logicOptions,
663
+ ...options,
664
+ },
665
+ this,
666
+ 'methods'
667
+ );
710
668
  }
711
- getViewComponentUniqueName(name = 'viewComponent1') {
712
- return utils.unique(name, this.getViewComponentExistingNames(), undefined, false);
669
+ this.methods.splice(index, 0, logic);
670
+ return logic;
671
+ }
672
+
673
+ /**
674
+ * 插入逻辑
675
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
676
+ */
677
+ insertLogicAt(name: string, index: number): Logic;
678
+
679
+ /**
680
+ * 插入逻辑
681
+ * @param logicOptions 逻辑参数
682
+ */
683
+ insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
684
+
685
+ /**
686
+ * 插入逻辑
687
+ * @param logic 已有的逻辑实例
688
+ */
689
+ insertLogicAt(logic: Logic, index: number): Logic;
690
+
691
+ insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
692
+ const node = this._insertLogicAt(options as any, index);
693
+ node.create({
694
+ index,
695
+ parentNode: this,
696
+ parentKey: 'methods',
697
+ });
698
+ return node;
699
+ }
700
+
701
+ /**
702
+ * 添加逻辑
703
+ * @internal
704
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
705
+ */
706
+ _addLogic(name?: string): Logic;
707
+
708
+ /**
709
+ * 添加逻辑
710
+ * @internal
711
+ * @param logicOptions 逻辑参数
712
+ */
713
+ _addLogic(logicOptions: Partial<Logic>): Logic;
714
+
715
+ /**
716
+ * 添加逻辑
717
+ * @internal
718
+ * @param logic 已有的逻辑实例
719
+ */
720
+ _addLogic(logic: Logic): Logic;
721
+
722
+ _addLogic(options?: string | Partial<Logic> | Logic) {
723
+ const index = this.methods.length;
724
+ return this._insertLogicAt(options as any, index);
725
+ }
726
+
727
+ /**
728
+ * 添加逻辑
729
+ * @internal
730
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
731
+ */
732
+ addLogic(name?: string): Logic;
733
+
734
+ /**
735
+ * 添加逻辑
736
+ * @param logicOptions 逻辑参数
737
+ */
738
+ addLogic(logicOptions: Partial<Logic>): Logic;
739
+
740
+ /**
741
+ * 添加逻辑
742
+ * @param logic 已有的逻辑实例
743
+ */
744
+ addLogic(logic: Logic): Logic;
745
+
746
+ addLogic(options?: string | Partial<Logic> | Logic) {
747
+ const node = this._addLogic(options as any);
748
+ const index = this.methods.indexOf(node);
749
+ node.create({
750
+ index,
751
+ parentNode: this,
752
+ parentKey: 'methods',
753
+ });
754
+ return node;
755
+ }
756
+
757
+ getViewComponentExistingNames(excludedList: Array<ViewComponent> = []) {
758
+ const excludedSet = new Set(excludedList);
759
+ return ((this.children as ViewComponent[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
760
+ }
761
+
762
+ getViewComponentUniqueName(name = 'viewComponent1') {
763
+ return utils.unique(name, this.getViewComponentExistingNames(), undefined, false);
764
+ }
765
+
766
+ /**
767
+ * 插入页面组件
768
+ * @internal
769
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
770
+ */
771
+ _insertViewComponentAt(name: string, index: number): ViewComponent;
772
+
773
+ /**
774
+ * 插入页面组件
775
+ * @internal
776
+ * @param viewComponentOptions 页面组件参数
777
+ */
778
+ _insertViewComponentAt(viewComponentOptions: Partial<ViewComponent>, index: number): ViewComponent;
779
+
780
+ /**
781
+ * 插入页面组件
782
+ * @internal
783
+ * @param viewComponent 已有的页面组件实例
784
+ */
785
+ _insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
786
+
787
+ _insertViewComponentAt(options: string | Partial<ViewComponent> | ViewComponent, index: number) {
788
+ const viewComponentOptions: any = {};
789
+ const relationOptions = { parentNode: this, parentKey: 'children' };
790
+ let viewComponent: ViewComponent;
791
+ if (!options) {
792
+ viewComponent = ViewComponent.from(
793
+ {
794
+ ...viewComponentOptions,
795
+ name: this.getViewComponentUniqueName(),
796
+ },
797
+ this,
798
+ 'children'
799
+ );
800
+ } else if (typeof options === 'string') {
801
+ viewComponent = ViewComponent.from(
802
+ {
803
+ ...viewComponentOptions,
804
+ name: options,
805
+ },
806
+ this,
807
+ 'children'
808
+ );
809
+ } else if (options instanceof ViewComponent) {
810
+ options.ensureDelete(); // 同一实例不支持多处存在
811
+ viewComponent = options;
812
+ Object.assign(viewComponent, relationOptions);
813
+ } else {
814
+ viewComponent = ViewComponent.from(
815
+ {
816
+ ...viewComponentOptions,
817
+ ...options,
818
+ },
819
+ this,
820
+ 'children'
821
+ );
713
822
  }
714
-
715
- /**
716
- * 插入页面组件
717
- * @internal
718
- * @param name 页面组件名称,如果不填会自动生成一个唯一名称
719
- */
720
- _insertViewComponentAt(name: string, index: number): ViewComponent;
721
-
722
- /**
723
- * 插入页面组件
724
- * @internal
725
- * @param viewComponentOptions 页面组件参数
726
- */
727
- _insertViewComponentAt(viewComponentOptions: Partial<ViewComponent>, index: number): ViewComponent;
728
-
729
- /**
730
- * 插入页面组件
731
- * @internal
732
- * @param viewComponent 已有的页面组件实例
733
- */
734
- _insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
735
-
736
- _insertViewComponentAt(options: string | Partial<ViewComponent> | ViewComponent, index: number) {
737
- const viewComponentOptions: any = {};
738
- const relationOptions = { parentNode: this, parentKey: 'children' };
739
- let viewComponent: ViewComponent;
740
- if (!options) {
741
- viewComponent = ViewComponent.from({
742
- ...viewComponentOptions,
743
- name: this.getViewComponentUniqueName(),
744
- }, this, 'children');
745
- } else if (typeof options === 'string') {
746
- viewComponent = ViewComponent.from({
747
- ...viewComponentOptions,
748
- name: options,
749
- }, this, 'children');
750
- } else if (options instanceof ViewComponent) {
751
- options.ensureDelete(); // 同一实例不支持多处存在
752
- viewComponent = options;
753
- Object.assign(viewComponent, relationOptions);
754
- } else {
755
- viewComponent = ViewComponent.from({
756
- ...viewComponentOptions,
757
- ...options,
758
- }, this, 'children');
759
- }
760
- this.children.splice(index, 0, viewComponent);
761
- return viewComponent;
762
- }
763
-
764
- /**
765
- * 插入页面组件
766
- * @param name 页面组件名称,如果不填会自动生成一个唯一名称
767
- */
768
- insertViewComponentAt(name: string, index: number): ViewComponent;
769
-
770
- /**
771
- * 插入页面组件
772
- * @param viewComponentOptions 页面组件参数
773
- */
774
- insertViewComponentAt(viewComponentOptions: Partial<ViewComponent>, index: number): ViewComponent;
775
-
776
- /**
777
- * 插入页面组件
778
- * @param viewComponent 已有的页面组件实例
779
- */
780
- insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
781
-
782
- insertViewComponentAt(options: string | Partial<ViewComponent> | ViewComponent, index: number) {
783
- const node = this._insertViewComponentAt(options as any, index);
784
- node.create({
785
- index,
786
- parentNode: this,
787
- parentKey: 'children',
788
- });
789
- return node;
790
- }
791
-
792
- /**
793
- * 添加页面组件
794
- * @internal
795
- * @param name 页面组件名称,如果不填会自动生成一个唯一名称
796
- */
797
- _addViewComponent(name?: string): ViewComponent;
798
-
799
- /**
800
- * 添加页面组件
801
- * @internal
802
- * @param viewComponentOptions 页面组件参数
803
- */
804
- _addViewComponent(viewComponentOptions: Partial<ViewComponent>): ViewComponent;
805
-
806
- /**
807
- * 添加页面组件
808
- * @internal
809
- * @param viewComponent 已有的页面组件实例
810
- */
811
- _addViewComponent(viewComponent: ViewComponent): ViewComponent;
812
-
813
- _addViewComponent(options?: string | Partial<ViewComponent> | ViewComponent) {
814
- const index = this.children.length;
815
- return this._insertViewComponentAt(options as any, index);
816
- }
817
-
818
- /**
819
- * 添加页面组件
820
- * @internal
821
- * @param name 页面组件名称,如果不填会自动生成一个唯一名称
822
- */
823
- addViewComponent(name?: string): ViewComponent;
824
-
825
- /**
826
- * 添加页面组件
827
- * @param viewComponentOptions 页面组件参数
828
- */
829
- addViewComponent(viewComponentOptions: Partial<ViewComponent>): ViewComponent;
830
-
831
- /**
832
- * 添加页面组件
833
- * @param viewComponent 已有的页面组件实例
834
- */
835
- addViewComponent(viewComponent: ViewComponent): ViewComponent;
836
-
837
- addViewComponent(options?: string | Partial<ViewComponent> | ViewComponent) {
838
- const node = this._addViewComponent(options as any);
839
- const index = this.children.indexOf(node);
840
- node.create({
841
- index,
842
- parentNode: this,
843
- parentKey: 'children',
844
- });
845
- return node;
846
- }
847
-
848
-
849
- getViewBlockExistingNames(excludedList: Array<ViewBlock> = []) {
850
- const excludedSet = new Set(excludedList);
851
- return ((this.blocks as ViewBlock[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
852
- }
853
- getViewBlockUniqueName(name = 'viewBlock1') {
854
- return utils.unique(name, this.getViewBlockExistingNames(), undefined, false);
855
- }
856
-
857
- /**
858
- * 插入代码块
859
- * @internal
860
- * @param name 代码块名称,如果不填会自动生成一个唯一名称
861
- */
862
- _insertViewBlockAt(name: string, index: number): ViewBlock;
863
-
864
- /**
865
- * 插入代码块
866
- * @internal
867
- * @param viewBlockOptions 代码块参数
868
- */
869
- _insertViewBlockAt(viewBlockOptions: Partial<ViewBlock>, index: number): ViewBlock;
870
-
871
- /**
872
- * 插入代码块
873
- * @internal
874
- * @param viewBlock 已有的代码块实例
875
- */
876
- _insertViewBlockAt(viewBlock: ViewBlock, index: number): ViewBlock;
877
-
878
- _insertViewBlockAt(options: string | Partial<ViewBlock> | ViewBlock, index: number) {
879
- const viewBlockOptions: any = {};
880
- const relationOptions = { parentNode: this, parentKey: 'blocks' };
881
- let viewBlock: ViewBlock;
882
- if (!options) {
883
- viewBlock = ViewBlock.from({
884
- ...viewBlockOptions,
885
- name: this.getViewBlockUniqueName(),
886
- }, this, 'blocks');
887
- } else if (typeof options === 'string') {
888
- viewBlock = ViewBlock.from({
889
- ...viewBlockOptions,
890
- name: options,
891
- }, this, 'blocks');
892
- } else if (options instanceof ViewBlock) {
893
- options.ensureDelete(); // 同一实例不支持多处存在
894
- viewBlock = options;
895
- Object.assign(viewBlock, relationOptions);
896
- } else {
897
- viewBlock = ViewBlock.from({
898
- ...viewBlockOptions,
899
- ...options,
900
- }, this, 'blocks');
901
- }
902
- this.blocks.splice(index, 0, viewBlock);
903
- return viewBlock;
904
- }
905
-
906
- /**
907
- * 插入代码块
908
- * @param name 代码块名称,如果不填会自动生成一个唯一名称
909
- */
910
- insertViewBlockAt(name: string, index: number): ViewBlock;
911
-
912
- /**
913
- * 插入代码块
914
- * @param viewBlockOptions 代码块参数
915
- */
916
- insertViewBlockAt(viewBlockOptions: Partial<ViewBlock>, index: number): ViewBlock;
917
-
918
- /**
919
- * 插入代码块
920
- * @param viewBlock 已有的代码块实例
921
- */
922
- insertViewBlockAt(viewBlock: ViewBlock, index: number): ViewBlock;
923
-
924
- insertViewBlockAt(options: string | Partial<ViewBlock> | ViewBlock, index: number) {
925
- const node = this._insertViewBlockAt(options as any, index);
926
- node.create({
927
- index,
928
- parentNode: this,
929
- parentKey: 'blocks',
930
- });
931
- return node;
932
- }
933
-
934
- /**
935
- * 添加代码块
936
- * @internal
937
- * @param name 代码块名称,如果不填会自动生成一个唯一名称
938
- */
939
- _addViewBlock(name?: string): ViewBlock;
940
-
941
- /**
942
- * 添加代码块
943
- * @internal
944
- * @param viewBlockOptions 代码块参数
945
- */
946
- _addViewBlock(viewBlockOptions: Partial<ViewBlock>): ViewBlock;
947
-
948
- /**
949
- * 添加代码块
950
- * @internal
951
- * @param viewBlock 已有的代码块实例
952
- */
953
- _addViewBlock(viewBlock: ViewBlock): ViewBlock;
954
-
955
- _addViewBlock(options?: string | Partial<ViewBlock> | ViewBlock) {
956
- const index = this.blocks.length;
957
- return this._insertViewBlockAt(options as any, index);
958
- }
959
-
960
- /**
961
- * 添加代码块
962
- * @internal
963
- * @param name 代码块名称,如果不填会自动生成一个唯一名称
964
- */
965
- addViewBlock(name?: string): ViewBlock;
966
-
967
- /**
968
- * 添加代码块
969
- * @param viewBlockOptions 代码块参数
970
- */
971
- addViewBlock(viewBlockOptions: Partial<ViewBlock>): ViewBlock;
972
-
973
- /**
974
- * 添加代码块
975
- * @param viewBlock 已有的代码块实例
976
- */
977
- addViewBlock(viewBlock: ViewBlock): ViewBlock;
978
-
979
- addViewBlock(options?: string | Partial<ViewBlock> | ViewBlock) {
980
- const node = this._addViewBlock(options as any);
981
- const index = this.blocks.indexOf(node);
982
- node.create({
983
- index,
984
- parentNode: this,
985
- parentKey: 'blocks',
986
- });
987
- return node;
823
+ this.children.splice(index, 0, viewComponent);
824
+ return viewComponent;
825
+ }
826
+
827
+ /**
828
+ * 插入页面组件
829
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
830
+ */
831
+ insertViewComponentAt(name: string, index: number): ViewComponent;
832
+
833
+ /**
834
+ * 插入页面组件
835
+ * @param viewComponentOptions 页面组件参数
836
+ */
837
+ insertViewComponentAt(viewComponentOptions: Partial<ViewComponent>, index: number): ViewComponent;
838
+
839
+ /**
840
+ * 插入页面组件
841
+ * @param viewComponent 已有的页面组件实例
842
+ */
843
+ insertViewComponentAt(viewComponent: ViewComponent, index: number): ViewComponent;
844
+
845
+ insertViewComponentAt(options: string | Partial<ViewComponent> | ViewComponent, index: number) {
846
+ const node = this._insertViewComponentAt(options as any, index);
847
+ node.create({
848
+ index,
849
+ parentNode: this,
850
+ parentKey: 'children',
851
+ });
852
+ return node;
853
+ }
854
+
855
+ /**
856
+ * 添加页面组件
857
+ * @internal
858
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
859
+ */
860
+ _addViewComponent(name?: string): ViewComponent;
861
+
862
+ /**
863
+ * 添加页面组件
864
+ * @internal
865
+ * @param viewComponentOptions 页面组件参数
866
+ */
867
+ _addViewComponent(viewComponentOptions: Partial<ViewComponent>): ViewComponent;
868
+
869
+ /**
870
+ * 添加页面组件
871
+ * @internal
872
+ * @param viewComponent 已有的页面组件实例
873
+ */
874
+ _addViewComponent(viewComponent: ViewComponent): ViewComponent;
875
+
876
+ _addViewComponent(options?: string | Partial<ViewComponent> | ViewComponent) {
877
+ const index = this.children.length;
878
+ return this._insertViewComponentAt(options as any, index);
879
+ }
880
+
881
+ /**
882
+ * 添加页面组件
883
+ * @internal
884
+ * @param name 页面组件名称,如果不填会自动生成一个唯一名称
885
+ */
886
+ addViewComponent(name?: string): ViewComponent;
887
+
888
+ /**
889
+ * 添加页面组件
890
+ * @param viewComponentOptions 页面组件参数
891
+ */
892
+ addViewComponent(viewComponentOptions: Partial<ViewComponent>): ViewComponent;
893
+
894
+ /**
895
+ * 添加页面组件
896
+ * @param viewComponent 已有的页面组件实例
897
+ */
898
+ addViewComponent(viewComponent: ViewComponent): ViewComponent;
899
+
900
+ addViewComponent(options?: string | Partial<ViewComponent> | ViewComponent) {
901
+ const node = this._addViewComponent(options as any);
902
+ const index = this.children.indexOf(node);
903
+ node.create({
904
+ index,
905
+ parentNode: this,
906
+ parentKey: 'children',
907
+ });
908
+ return node;
909
+ }
910
+
911
+ getViewBlockExistingNames(excludedList: Array<ViewBlock> = []) {
912
+ const excludedSet = new Set(excludedList);
913
+ return ((this.blocks as ViewBlock[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
914
+ }
915
+
916
+ getViewBlockUniqueName(name = 'viewBlock1') {
917
+ return utils.unique(name, this.getViewBlockExistingNames(), undefined, false);
918
+ }
919
+
920
+ /**
921
+ * 插入代码块
922
+ * @internal
923
+ * @param name 代码块名称,如果不填会自动生成一个唯一名称
924
+ */
925
+ _insertViewBlockAt(name: string, index: number): ViewBlock;
926
+
927
+ /**
928
+ * 插入代码块
929
+ * @internal
930
+ * @param viewBlockOptions 代码块参数
931
+ */
932
+ _insertViewBlockAt(viewBlockOptions: Partial<ViewBlock>, index: number): ViewBlock;
933
+
934
+ /**
935
+ * 插入代码块
936
+ * @internal
937
+ * @param viewBlock 已有的代码块实例
938
+ */
939
+ _insertViewBlockAt(viewBlock: ViewBlock, index: number): ViewBlock;
940
+
941
+ _insertViewBlockAt(options: string | Partial<ViewBlock> | ViewBlock, index: number) {
942
+ const viewBlockOptions: any = {};
943
+ const relationOptions = { parentNode: this, parentKey: 'blocks' };
944
+ let viewBlock: ViewBlock;
945
+ if (!options) {
946
+ viewBlock = ViewBlock.from(
947
+ {
948
+ ...viewBlockOptions,
949
+ name: this.getViewBlockUniqueName(),
950
+ },
951
+ this,
952
+ 'blocks'
953
+ );
954
+ } else if (typeof options === 'string') {
955
+ viewBlock = ViewBlock.from(
956
+ {
957
+ ...viewBlockOptions,
958
+ name: options,
959
+ },
960
+ this,
961
+ 'blocks'
962
+ );
963
+ } else if (options instanceof ViewBlock) {
964
+ options.ensureDelete(); // 同一实例不支持多处存在
965
+ viewBlock = options;
966
+ Object.assign(viewBlock, relationOptions);
967
+ } else {
968
+ viewBlock = ViewBlock.from(
969
+ {
970
+ ...viewBlockOptions,
971
+ ...options,
972
+ },
973
+ this,
974
+ 'blocks'
975
+ );
988
976
  }
989
-
990
-
991
-
992
-
993
- /**
994
- * 删除组件属性
995
- * @param name 组件属性名称
996
- */
997
- removeAttribute(name: string): void;
998
-
999
- /**
1000
- * 删除组件属性
1001
- * @param attribute 已有的组件属性实例
1002
- */
1003
- removeAttribute(attribute: Attribute): void;
1004
-
1005
- removeAttribute(options: string | Attribute) {
1006
- let attribute: Attribute;
1007
- if (typeof options === 'string') {
1008
- attribute = (this.attrs as Attribute[]).find((item) => item.name === options);
1009
- if (!attribute) {
1010
- throw new Error('找不到组件属性 ' + options);
1011
- }
1012
- } else {
1013
- attribute = options;
1014
- }
1015
- return attribute.delete();
977
+ this.blocks.splice(index, 0, viewBlock);
978
+ return viewBlock;
979
+ }
980
+
981
+ /**
982
+ * 插入代码块
983
+ * @param name 代码块名称,如果不填会自动生成一个唯一名称
984
+ */
985
+ insertViewBlockAt(name: string, index: number): ViewBlock;
986
+
987
+ /**
988
+ * 插入代码块
989
+ * @param viewBlockOptions 代码块参数
990
+ */
991
+ insertViewBlockAt(viewBlockOptions: Partial<ViewBlock>, index: number): ViewBlock;
992
+
993
+ /**
994
+ * 插入代码块
995
+ * @param viewBlock 已有的代码块实例
996
+ */
997
+ insertViewBlockAt(viewBlock: ViewBlock, index: number): ViewBlock;
998
+
999
+ insertViewBlockAt(options: string | Partial<ViewBlock> | ViewBlock, index: number) {
1000
+ const node = this._insertViewBlockAt(options as any, index);
1001
+ node.create({
1002
+ index,
1003
+ parentNode: this,
1004
+ parentKey: 'blocks',
1005
+ });
1006
+ return node;
1007
+ }
1008
+
1009
+ /**
1010
+ * 添加代码块
1011
+ * @internal
1012
+ * @param name 代码块名称,如果不填会自动生成一个唯一名称
1013
+ */
1014
+ _addViewBlock(name?: string): ViewBlock;
1015
+
1016
+ /**
1017
+ * 添加代码块
1018
+ * @internal
1019
+ * @param viewBlockOptions 代码块参数
1020
+ */
1021
+ _addViewBlock(viewBlockOptions: Partial<ViewBlock>): ViewBlock;
1022
+
1023
+ /**
1024
+ * 添加代码块
1025
+ * @internal
1026
+ * @param viewBlock 已有的代码块实例
1027
+ */
1028
+ _addViewBlock(viewBlock: ViewBlock): ViewBlock;
1029
+
1030
+ _addViewBlock(options?: string | Partial<ViewBlock> | ViewBlock) {
1031
+ const index = this.blocks.length;
1032
+ return this._insertViewBlockAt(options as any, index);
1033
+ }
1034
+
1035
+ /**
1036
+ * 添加代码块
1037
+ * @internal
1038
+ * @param name 代码块名称,如果不填会自动生成一个唯一名称
1039
+ */
1040
+ addViewBlock(name?: string): ViewBlock;
1041
+
1042
+ /**
1043
+ * 添加代码块
1044
+ * @param viewBlockOptions 代码块参数
1045
+ */
1046
+ addViewBlock(viewBlockOptions: Partial<ViewBlock>): ViewBlock;
1047
+
1048
+ /**
1049
+ * 添加代码块
1050
+ * @param viewBlock 已有的代码块实例
1051
+ */
1052
+ addViewBlock(viewBlock: ViewBlock): ViewBlock;
1053
+
1054
+ addViewBlock(options?: string | Partial<ViewBlock> | ViewBlock) {
1055
+ const node = this._addViewBlock(options as any);
1056
+ const index = this.blocks.indexOf(node);
1057
+ node.create({
1058
+ index,
1059
+ parentNode: this,
1060
+ parentKey: 'blocks',
1061
+ });
1062
+ return node;
1063
+ }
1064
+
1065
+ /**
1066
+ * 删除组件属性
1067
+ * @param name 组件属性名称
1068
+ */
1069
+ removeAttribute(name: string): void;
1070
+
1071
+ /**
1072
+ * 删除组件属性
1073
+ * @param attribute 已有的组件属性实例
1074
+ */
1075
+ removeAttribute(attribute: Attribute): void;
1076
+
1077
+ removeAttribute(options: string | Attribute) {
1078
+ let attribute: Attribute;
1079
+ if (typeof options === 'string') {
1080
+ attribute = (this.attrs as Attribute[]).find((item) => item.name === options);
1081
+ if (!attribute) {
1082
+ throw new Error(`找不到组件属性 ${options}`);
1083
+ }
1084
+ } else {
1085
+ attribute = options;
1016
1086
  }
1017
-
1018
- __removeAttribute(attribute: Attribute) {
1019
- const parentKey = attribute.parentKey;
1020
- const params: Params = {
1021
- parentNode: this,
1022
- parentKey,
1023
- index: -1,
1024
- object: null,
1025
- oldObject: attribute,
1026
- };
1027
- if (parentKey) {
1028
- params.parentKey = parentKey;
1029
- if (Array.isArray((this as any)[parentKey])) {
1030
- const index = (this as any)[parentKey].indexOf(attribute);
1031
- ~index && (this as any)[parentKey].splice(index, 1);
1032
- params.index = index;
1033
- } else if ((this as any)[parentKey] === attribute) {
1034
- params.index = 0;
1035
- (this as any)[parentKey] = undefined;
1036
- }
1037
- }
1038
- return params;
1087
+ return attribute.delete();
1088
+ }
1089
+
1090
+ __removeAttribute(attribute: Attribute) {
1091
+ const { parentKey } = attribute;
1092
+ const params: Params = {
1093
+ parentNode: this,
1094
+ parentKey,
1095
+ index: -1,
1096
+ object: null,
1097
+ oldObject: attribute,
1098
+ };
1099
+ if (parentKey) {
1100
+ params.parentKey = parentKey;
1101
+ if (Array.isArray((this as any)[parentKey])) {
1102
+ const index = (this as any)[parentKey].indexOf(attribute);
1103
+ ~index && (this as any)[parentKey].splice(index, 1);
1104
+ params.index = index;
1105
+ } else if ((this as any)[parentKey] === attribute) {
1106
+ params.index = 0;
1107
+ (this as any)[parentKey] = undefined;
1108
+ }
1039
1109
  }
1040
-
1041
-
1042
-
1043
- /**
1044
- * 删除组件事件
1045
- * @param name 组件事件名称
1046
- */
1047
- removeEvent(name: string): void;
1048
-
1049
- /**
1050
- * 删除组件事件
1051
- * @param event 已有的组件事件实例
1052
- */
1053
- removeEvent(event: Event): void;
1054
-
1055
- removeEvent(options: string | Event) {
1056
- let event: Event;
1057
- if (typeof options === 'string') {
1058
- event = (this.events as Event[]).find((item) => item.name === options);
1059
- if (!event) {
1060
- throw new Error('找不到组件事件 ' + options);
1061
- }
1062
- } else {
1063
- event = options;
1064
- }
1065
- return event.delete();
1110
+ return params;
1111
+ }
1112
+
1113
+ /**
1114
+ * 删除组件事件
1115
+ * @param name 组件事件名称
1116
+ */
1117
+ removeEvent(name: string): void;
1118
+
1119
+ /**
1120
+ * 删除组件事件
1121
+ * @param event 已有的组件事件实例
1122
+ */
1123
+ removeEvent(event: Event): void;
1124
+
1125
+ removeEvent(options: string | Event) {
1126
+ let event: Event;
1127
+ if (typeof options === 'string') {
1128
+ event = (this.events as Event[]).find((item) => item.name === options);
1129
+ if (!event) {
1130
+ throw new Error(`找不到组件事件 ${options}`);
1131
+ }
1132
+ } else {
1133
+ event = options;
1066
1134
  }
1067
-
1068
- __removeEvent(event: Event) {
1069
- const parentKey = event.parentKey;
1070
- const params: Params = {
1071
- parentNode: this,
1072
- parentKey,
1073
- index: -1,
1074
- object: null,
1075
- oldObject: event,
1076
- };
1077
- if (parentKey) {
1078
- params.parentKey = parentKey;
1079
- if (Array.isArray((this as any)[parentKey])) {
1080
- const index = (this as any)[parentKey].indexOf(event);
1081
- ~index && (this as any)[parentKey].splice(index, 1);
1082
- params.index = index;
1083
- } else if ((this as any)[parentKey] === event) {
1084
- params.index = 0;
1085
- (this as any)[parentKey] = undefined;
1086
- }
1087
- }
1088
- return params;
1135
+ return event.delete();
1136
+ }
1137
+
1138
+ __removeEvent(event: Event) {
1139
+ const { parentKey } = event;
1140
+ const params: Params = {
1141
+ parentNode: this,
1142
+ parentKey,
1143
+ index: -1,
1144
+ object: null,
1145
+ oldObject: event,
1146
+ };
1147
+ if (parentKey) {
1148
+ params.parentKey = parentKey;
1149
+ if (Array.isArray((this as any)[parentKey])) {
1150
+ const index = (this as any)[parentKey].indexOf(event);
1151
+ ~index && (this as any)[parentKey].splice(index, 1);
1152
+ params.index = index;
1153
+ } else if ((this as any)[parentKey] === event) {
1154
+ params.index = 0;
1155
+ (this as any)[parentKey] = undefined;
1156
+ }
1089
1157
  }
1090
-
1091
-
1092
-
1093
- /**
1094
- * 删除插槽
1095
- * @param name 插槽名称
1096
- */
1097
- removeSlot(name: string): void;
1098
-
1099
- /**
1100
- * 删除插槽
1101
- * @param slot 已有的插槽实例
1102
- */
1103
- removeSlot(slot: Slot): void;
1104
-
1105
- removeSlot(options: string | Slot) {
1106
- let slot: Slot;
1107
- if (typeof options === 'string') {
1108
- slot = (this.slots as Slot[]).find((item) => item.name === options);
1109
- if (!slot) {
1110
- throw new Error('找不到插槽 ' + options);
1111
- }
1112
- } else {
1113
- slot = options;
1114
- }
1115
- return slot.delete();
1158
+ return params;
1159
+ }
1160
+
1161
+ /**
1162
+ * 删除插槽
1163
+ * @param name 插槽名称
1164
+ */
1165
+ removeSlot(name: string): void;
1166
+
1167
+ /**
1168
+ * 删除插槽
1169
+ * @param slot 已有的插槽实例
1170
+ */
1171
+ removeSlot(slot: Slot): void;
1172
+
1173
+ removeSlot(options: string | Slot) {
1174
+ let slot: Slot;
1175
+ if (typeof options === 'string') {
1176
+ slot = (this.slots as Slot[]).find((item) => item.name === options);
1177
+ if (!slot) {
1178
+ throw new Error(`找不到插槽 ${options}`);
1179
+ }
1180
+ } else {
1181
+ slot = options;
1116
1182
  }
1117
-
1118
- __removeSlot(slot: Slot) {
1119
- const parentKey = slot.parentKey;
1120
- const params: Params = {
1121
- parentNode: this,
1122
- parentKey,
1123
- index: -1,
1124
- object: null,
1125
- oldObject: slot,
1126
- };
1127
- if (parentKey) {
1128
- params.parentKey = parentKey;
1129
- if (Array.isArray((this as any)[parentKey])) {
1130
- const index = (this as any)[parentKey].indexOf(slot);
1131
- ~index && (this as any)[parentKey].splice(index, 1);
1132
- params.index = index;
1133
- } else if ((this as any)[parentKey] === slot) {
1134
- params.index = 0;
1135
- (this as any)[parentKey] = undefined;
1136
- }
1137
- }
1138
- return params;
1183
+ return slot.delete();
1184
+ }
1185
+
1186
+ __removeSlot(slot: Slot) {
1187
+ const { parentKey } = slot;
1188
+ const params: Params = {
1189
+ parentNode: this,
1190
+ parentKey,
1191
+ index: -1,
1192
+ object: null,
1193
+ oldObject: slot,
1194
+ };
1195
+ if (parentKey) {
1196
+ params.parentKey = parentKey;
1197
+ if (Array.isArray((this as any)[parentKey])) {
1198
+ const index = (this as any)[parentKey].indexOf(slot);
1199
+ ~index && (this as any)[parentKey].splice(index, 1);
1200
+ params.index = index;
1201
+ } else if ((this as any)[parentKey] === slot) {
1202
+ params.index = 0;
1203
+ (this as any)[parentKey] = undefined;
1204
+ }
1139
1205
  }
1140
-
1141
-
1142
-
1143
- /**
1144
- * 删除逻辑
1145
- * @param name 逻辑名称
1146
- */
1147
- removeLogic(name: string): void;
1148
-
1149
- /**
1150
- * 删除逻辑
1151
- * @param logic 已有的逻辑实例
1152
- */
1153
- removeLogic(logic: Logic): void;
1154
-
1155
- removeLogic(options: string | Logic) {
1156
- let logic: Logic;
1157
- if (typeof options === 'string') {
1158
- logic = (this.methods as Logic[]).find((item) => item.name === options);
1159
- if (!logic) {
1160
- throw new Error('找不到逻辑 ' + options);
1161
- }
1162
- } else {
1163
- logic = options;
1164
- }
1165
- return logic.delete();
1206
+ return params;
1207
+ }
1208
+
1209
+ /**
1210
+ * 删除逻辑
1211
+ * @param name 逻辑名称
1212
+ */
1213
+ removeLogic(name: string): void;
1214
+
1215
+ /**
1216
+ * 删除逻辑
1217
+ * @param logic 已有的逻辑实例
1218
+ */
1219
+ removeLogic(logic: Logic): void;
1220
+
1221
+ removeLogic(options: string | Logic) {
1222
+ let logic: Logic;
1223
+ if (typeof options === 'string') {
1224
+ logic = (this.methods as Logic[]).find((item) => item.name === options);
1225
+ if (!logic) {
1226
+ throw new Error(`找不到逻辑 ${options}`);
1227
+ }
1228
+ } else {
1229
+ logic = options;
1166
1230
  }
1167
-
1168
- __removeLogic(logic: Logic) {
1169
- const parentKey = logic.parentKey;
1170
- const params: Params = {
1171
- parentNode: this,
1172
- parentKey,
1173
- index: -1,
1174
- object: null,
1175
- oldObject: logic,
1176
- };
1177
- if (parentKey) {
1178
- params.parentKey = parentKey;
1179
- if (Array.isArray((this as any)[parentKey])) {
1180
- const index = (this as any)[parentKey].indexOf(logic);
1181
- ~index && (this as any)[parentKey].splice(index, 1);
1182
- params.index = index;
1183
- } else if ((this as any)[parentKey] === logic) {
1184
- params.index = 0;
1185
- (this as any)[parentKey] = undefined;
1186
- }
1187
- }
1188
- return params;
1231
+ return logic.delete();
1232
+ }
1233
+
1234
+ __removeLogic(logic: Logic) {
1235
+ const { parentKey } = logic;
1236
+ const params: Params = {
1237
+ parentNode: this,
1238
+ parentKey,
1239
+ index: -1,
1240
+ object: null,
1241
+ oldObject: logic,
1242
+ };
1243
+ if (parentKey) {
1244
+ params.parentKey = parentKey;
1245
+ if (Array.isArray((this as any)[parentKey])) {
1246
+ const index = (this as any)[parentKey].indexOf(logic);
1247
+ ~index && (this as any)[parentKey].splice(index, 1);
1248
+ params.index = index;
1249
+ } else if ((this as any)[parentKey] === logic) {
1250
+ params.index = 0;
1251
+ (this as any)[parentKey] = undefined;
1252
+ }
1189
1253
  }
1190
-
1191
-
1192
-
1193
- /**
1194
- * 删除页面组件
1195
- * @param name 页面组件名称
1196
- */
1197
- removeViewComponent(name: string): void;
1198
-
1199
- /**
1200
- * 删除页面组件
1201
- * @param viewComponent 已有的页面组件实例
1202
- */
1203
- removeViewComponent(viewComponent: ViewComponent): void;
1204
-
1205
- removeViewComponent(options: string | ViewComponent) {
1206
- let viewComponent: ViewComponent;
1207
- if (typeof options === 'string') {
1208
- viewComponent = (this.children as ViewComponent[]).find((item) => item.name === options);
1209
- if (!viewComponent) {
1210
- throw new Error('找不到页面组件 ' + options);
1211
- }
1212
- } else {
1213
- viewComponent = options;
1214
- }
1215
- return viewComponent.delete();
1254
+ return params;
1255
+ }
1256
+
1257
+ /**
1258
+ * 删除页面组件
1259
+ * @param name 页面组件名称
1260
+ */
1261
+ removeViewComponent(name: string): void;
1262
+
1263
+ /**
1264
+ * 删除页面组件
1265
+ * @param viewComponent 已有的页面组件实例
1266
+ */
1267
+ removeViewComponent(viewComponent: ViewComponent): void;
1268
+
1269
+ removeViewComponent(options: string | ViewComponent) {
1270
+ let viewComponent: ViewComponent;
1271
+ if (typeof options === 'string') {
1272
+ viewComponent = (this.children as ViewComponent[]).find((item) => item.name === options);
1273
+ if (!viewComponent) {
1274
+ throw new Error(`找不到页面组件 ${options}`);
1275
+ }
1276
+ } else {
1277
+ viewComponent = options;
1216
1278
  }
1217
-
1218
- __removeViewComponent(viewComponent: ViewComponent) {
1219
- const parentKey = viewComponent.parentKey;
1220
- const params: Params = {
1221
- parentNode: this,
1222
- parentKey,
1223
- index: -1,
1224
- object: null,
1225
- oldObject: viewComponent,
1226
- };
1227
- if (parentKey) {
1228
- params.parentKey = parentKey;
1229
- if (Array.isArray((this as any)[parentKey])) {
1230
- const index = (this as any)[parentKey].indexOf(viewComponent);
1231
- ~index && (this as any)[parentKey].splice(index, 1);
1232
- params.index = index;
1233
- } else if ((this as any)[parentKey] === viewComponent) {
1234
- params.index = 0;
1235
- (this as any)[parentKey] = undefined;
1236
- }
1237
- }
1238
- return params;
1279
+ return viewComponent.delete();
1280
+ }
1281
+
1282
+ __removeViewComponent(viewComponent: ViewComponent) {
1283
+ const { parentKey } = viewComponent;
1284
+ const params: Params = {
1285
+ parentNode: this,
1286
+ parentKey,
1287
+ index: -1,
1288
+ object: null,
1289
+ oldObject: viewComponent,
1290
+ };
1291
+ if (parentKey) {
1292
+ params.parentKey = parentKey;
1293
+ if (Array.isArray((this as any)[parentKey])) {
1294
+ const index = (this as any)[parentKey].indexOf(viewComponent);
1295
+ ~index && (this as any)[parentKey].splice(index, 1);
1296
+ params.index = index;
1297
+ } else if ((this as any)[parentKey] === viewComponent) {
1298
+ params.index = 0;
1299
+ (this as any)[parentKey] = undefined;
1300
+ }
1239
1301
  }
1240
-
1241
-
1242
-
1243
- /**
1244
- * 删除代码块
1245
- * @param name 代码块名称
1246
- */
1247
- removeViewBlock(name: string): void;
1248
-
1249
- /**
1250
- * 删除代码块
1251
- * @param viewBlock 已有的代码块实例
1252
- */
1253
- removeViewBlock(viewBlock: ViewBlock): void;
1254
-
1255
- removeViewBlock(options: string | ViewBlock) {
1256
- let viewBlock: ViewBlock;
1257
- if (typeof options === 'string') {
1258
- viewBlock = (this.blocks as ViewBlock[]).find((item) => item.name === options);
1259
- if (!viewBlock) {
1260
- throw new Error('找不到代码块 ' + options);
1261
- }
1262
- } else {
1263
- viewBlock = options;
1264
- }
1265
- return viewBlock.delete();
1302
+ return params;
1303
+ }
1304
+
1305
+ /**
1306
+ * 删除代码块
1307
+ * @param name 代码块名称
1308
+ */
1309
+ removeViewBlock(name: string): void;
1310
+
1311
+ /**
1312
+ * 删除代码块
1313
+ * @param viewBlock 已有的代码块实例
1314
+ */
1315
+ removeViewBlock(viewBlock: ViewBlock): void;
1316
+
1317
+ removeViewBlock(options: string | ViewBlock) {
1318
+ let viewBlock: ViewBlock;
1319
+ if (typeof options === 'string') {
1320
+ viewBlock = (this.blocks as ViewBlock[]).find((item) => item.name === options);
1321
+ if (!viewBlock) {
1322
+ throw new Error(`找不到代码块 ${options}`);
1323
+ }
1324
+ } else {
1325
+ viewBlock = options;
1266
1326
  }
1267
-
1268
- __removeViewBlock(viewBlock: ViewBlock) {
1269
- const parentKey = viewBlock.parentKey;
1270
- const params: Params = {
1271
- parentNode: this,
1272
- parentKey,
1273
- index: -1,
1274
- object: null,
1275
- oldObject: viewBlock,
1276
- };
1277
- if (parentKey) {
1278
- params.parentKey = parentKey;
1279
- if (Array.isArray((this as any)[parentKey])) {
1280
- const index = (this as any)[parentKey].indexOf(viewBlock);
1281
- ~index && (this as any)[parentKey].splice(index, 1);
1282
- params.index = index;
1283
- } else if ((this as any)[parentKey] === viewBlock) {
1284
- params.index = 0;
1285
- (this as any)[parentKey] = undefined;
1286
- }
1287
- }
1288
- return params;
1327
+ return viewBlock.delete();
1328
+ }
1329
+
1330
+ __removeViewBlock(viewBlock: ViewBlock) {
1331
+ const { parentKey } = viewBlock;
1332
+ const params: Params = {
1333
+ parentNode: this,
1334
+ parentKey,
1335
+ index: -1,
1336
+ object: null,
1337
+ oldObject: viewBlock,
1338
+ };
1339
+ if (parentKey) {
1340
+ params.parentKey = parentKey;
1341
+ if (Array.isArray((this as any)[parentKey])) {
1342
+ const index = (this as any)[parentKey].indexOf(viewBlock);
1343
+ ~index && (this as any)[parentKey].splice(index, 1);
1344
+ params.index = index;
1345
+ } else if ((this as any)[parentKey] === viewBlock) {
1346
+ params.index = 0;
1347
+ (this as any)[parentKey] = undefined;
1348
+ }
1289
1349
  }
1290
-
1291
- //================================================================================
1292
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1293
- // 自动生成的代码已结束。下面可以手动编写。
1294
- //================================================================================
1295
-
1296
- //================================================================================
1297
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1298
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1299
- //================================================================================
1350
+ return params;
1351
+ }
1352
+
1353
+ //= ===============================================================================
1354
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1355
+ // 自动生成的代码已结束。下面可以手动编写。
1356
+ //= ===============================================================================
1357
+
1358
+ //= ===============================================================================
1359
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1360
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1361
+ //= ===============================================================================
1300
1362
  }
1301
1363
 
1302
1364
  classMap.ViewComponent = ViewComponent;
1303
1365
  export default ViewComponent;
1304
- //================================================================================
1366
+ //= ===============================================================================
1305
1367
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1306
1368
  // 自动生成的代码已结束。下面可以手动编写。
1307
- //================================================================================
1369
+ //= ===============================================================================