@lcap/nasl 3.2.0-beta.3 → 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 (842) hide show
  1. package/out/automate/engine/utils.js +4 -0
  2. package/out/automate/engine/utils.js.map +1 -1
  3. package/out/automate/upgrader/2.20.js +1 -1
  4. package/out/automate/upgrader/2.20.js.map +1 -1
  5. package/out/bak/translator.js +11 -15
  6. package/out/bak/translator.js.map +1 -1
  7. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  8. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  9. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  10. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  11. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  12. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  13. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  14. package/out/breakpoint/generator/CallbackNode.js +22 -0
  15. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  16. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  17. package/out/breakpoint/generator/FragmentNode.js +18 -0
  18. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  19. package/out/breakpoint/generator/index.js +25 -4
  20. package/out/breakpoint/generator/index.js.map +1 -1
  21. package/out/breakpoint/shared/constants.d.ts +3 -0
  22. package/out/breakpoint/shared/constants.js +6 -1
  23. package/out/breakpoint/shared/constants.js.map +1 -1
  24. package/out/breakpoint/shared/operations.js.map +1 -1
  25. package/out/breakpoint/shared/socket.d.ts +1 -1
  26. package/out/breakpoint/shared/socket.js +36 -7
  27. package/out/breakpoint/shared/socket.js.map +1 -1
  28. package/out/breakpoint/shared/utils.d.ts +2 -0
  29. package/out/breakpoint/shared/utils.js +15 -2
  30. package/out/breakpoint/shared/utils.js.map +1 -1
  31. package/out/breakpoint/store/core.d.ts +48 -2
  32. package/out/breakpoint/store/core.js +58 -32
  33. package/out/breakpoint/store/core.js.map +1 -1
  34. package/out/breakpoint/store/dock.js +1 -1
  35. package/out/breakpoint/store/dock.js.map +1 -1
  36. package/out/common/BaseNode.d.ts +2 -2
  37. package/out/common/BaseNode.js +110 -53
  38. package/out/common/BaseNode.js.map +1 -1
  39. package/out/common/Command.d.ts +13 -2
  40. package/out/common/Command.js +37 -9
  41. package/out/common/Command.js.map +1 -1
  42. package/out/common/EventEmitter.js.map +1 -1
  43. package/out/common/Messager.d.ts +3 -3
  44. package/out/common/Messager.js +6 -7
  45. package/out/common/Messager.js.map +1 -1
  46. package/out/common/asyncFuncMap.js.map +1 -1
  47. package/out/concepts/Abort__.js +6 -5
  48. package/out/concepts/Abort__.js.map +1 -1
  49. package/out/concepts/Anchor__.d.ts +4 -3
  50. package/out/concepts/Anchor__.js +24 -7
  51. package/out/concepts/Anchor__.js.map +1 -1
  52. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  53. package/out/concepts/AnonymousFunction__.js +48 -22
  54. package/out/concepts/AnonymousFunction__.js.map +1 -1
  55. package/out/concepts/App__.d.ts +421 -247
  56. package/out/concepts/App__.js +288 -54
  57. package/out/concepts/App__.js.map +1 -1
  58. package/out/concepts/Argument__.d.ts +4 -3
  59. package/out/concepts/Argument__.js +42 -11
  60. package/out/concepts/Argument__.js.map +1 -1
  61. package/out/concepts/Assignee__.d.ts +45 -45
  62. package/out/concepts/Assignee__.js +15 -15
  63. package/out/concepts/Assignee__.js.map +1 -1
  64. package/out/concepts/AssignmentLine__.js +6 -5
  65. package/out/concepts/AssignmentLine__.js.map +1 -1
  66. package/out/concepts/Assignment__.d.ts +7 -6
  67. package/out/concepts/Assignment__.js +41 -23
  68. package/out/concepts/Assignment__.js.map +1 -1
  69. package/out/concepts/Attribute__.d.ts +3 -3
  70. package/out/concepts/Attribute__.js +8 -7
  71. package/out/concepts/Attribute__.js.map +1 -1
  72. package/out/concepts/AuthInterface__.js +4 -3
  73. package/out/concepts/AuthInterface__.js.map +1 -1
  74. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  75. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  76. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  77. package/out/concepts/AuthLogic__.js +27 -13
  78. package/out/concepts/AuthLogic__.js.map +1 -1
  79. package/out/concepts/BackendVariable__.d.ts +5 -5
  80. package/out/concepts/BackendVariable__.js +23 -26
  81. package/out/concepts/BackendVariable__.js.map +1 -1
  82. package/out/concepts/Backend__.d.ts +18 -18
  83. package/out/concepts/Backend__.js +13 -13
  84. package/out/concepts/Backend__.js.map +1 -1
  85. package/out/concepts/BatchAssignment__.d.ts +34 -33
  86. package/out/concepts/BatchAssignment__.js +83 -43
  87. package/out/concepts/BatchAssignment__.js.map +1 -1
  88. package/out/concepts/BinaryExpression__.d.ts +7 -6
  89. package/out/concepts/BinaryExpression__.js +60 -24
  90. package/out/concepts/BinaryExpression__.js.map +1 -1
  91. package/out/concepts/BindAttribute__.d.ts +37 -37
  92. package/out/concepts/BindAttribute__.js +102 -58
  93. package/out/concepts/BindAttribute__.js.map +1 -1
  94. package/out/concepts/BindDirective__.d.ts +13 -13
  95. package/out/concepts/BindDirective__.js +23 -21
  96. package/out/concepts/BindDirective__.js.map +1 -1
  97. package/out/concepts/BindEvent__.d.ts +28 -28
  98. package/out/concepts/BindEvent__.js +150 -57
  99. package/out/concepts/BindEvent__.js.map +1 -1
  100. package/out/concepts/BindStyle__.d.ts +14 -15
  101. package/out/concepts/BindStyle__.js +16 -16
  102. package/out/concepts/BindStyle__.js.map +1 -1
  103. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  104. package/out/concepts/BooleanLiteral__.js +12 -5
  105. package/out/concepts/BooleanLiteral__.js.map +1 -1
  106. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  107. package/out/concepts/CallAuthInterface__.js +23 -22
  108. package/out/concepts/CallAuthInterface__.js.map +1 -1
  109. package/out/concepts/CallConnector__.d.ts +11 -9
  110. package/out/concepts/CallConnector__.js +79 -36
  111. package/out/concepts/CallConnector__.js.map +1 -1
  112. package/out/concepts/CallFunction__.d.ts +17 -16
  113. package/out/concepts/CallFunction__.js +95 -63
  114. package/out/concepts/CallFunction__.js.map +1 -1
  115. package/out/concepts/CallInterface__.d.ts +9 -8
  116. package/out/concepts/CallInterface__.js +109 -80
  117. package/out/concepts/CallInterface__.js.map +1 -1
  118. package/out/concepts/CallLogic__.d.ts +24 -20
  119. package/out/concepts/CallLogic__.js +209 -162
  120. package/out/concepts/CallLogic__.js.map +1 -1
  121. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  122. package/out/concepts/CallQueryComponent__.js +66 -63
  123. package/out/concepts/CallQueryComponent__.js.map +1 -1
  124. package/out/concepts/Comment__.d.ts +1 -0
  125. package/out/concepts/Comment__.js +13 -6
  126. package/out/concepts/Comment__.js.map +1 -1
  127. package/out/concepts/CompletionProperty__.d.ts +3 -3
  128. package/out/concepts/CompletionProperty__.js +16 -8
  129. package/out/concepts/CompletionProperty__.js.map +1 -1
  130. package/out/concepts/ConfigGroup__.d.ts +15 -15
  131. package/out/concepts/ConfigGroup__.js +9 -9
  132. package/out/concepts/ConfigGroup__.js.map +1 -1
  133. package/out/concepts/ConfigPropertyValue__.js +4 -3
  134. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  135. package/out/concepts/ConfigProperty__.d.ts +15 -15
  136. package/out/concepts/ConfigProperty__.js +10 -10
  137. package/out/concepts/ConfigProperty__.js.map +1 -1
  138. package/out/concepts/Configuration__.d.ts +15 -15
  139. package/out/concepts/Configuration__.js +9 -9
  140. package/out/concepts/Configuration__.js.map +1 -1
  141. package/out/concepts/Connection__.d.ts +166 -0
  142. package/out/concepts/Connection__.js +332 -0
  143. package/out/concepts/Connection__.js.map +1 -0
  144. package/out/concepts/ConnectorTrigger__.js +4 -3
  145. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  146. package/out/concepts/Connector__.d.ts +66 -66
  147. package/out/concepts/Connector__.js +16 -15
  148. package/out/concepts/Connector__.js.map +1 -1
  149. package/out/concepts/Constant__.d.ts +3 -3
  150. package/out/concepts/Constant__.js +8 -7
  151. package/out/concepts/Constant__.js.map +1 -1
  152. package/out/concepts/DataElement__.d.ts +3 -3
  153. package/out/concepts/DataElement__.js +6 -5
  154. package/out/concepts/DataElement__.js.map +1 -1
  155. package/out/concepts/DataSource__.d.ts +15 -15
  156. package/out/concepts/DataSource__.js +55 -39
  157. package/out/concepts/DataSource__.js.map +1 -1
  158. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  159. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  160. package/out/concepts/Destination__.d.ts +12 -11
  161. package/out/concepts/Destination__.js +93 -36
  162. package/out/concepts/Destination__.js.map +1 -1
  163. package/out/concepts/End__.js +15 -13
  164. package/out/concepts/End__.js.map +1 -1
  165. package/out/concepts/EntityIndex__.d.ts +1 -1
  166. package/out/concepts/EntityIndex__.js +6 -5
  167. package/out/concepts/EntityIndex__.js.map +1 -1
  168. package/out/concepts/EntityProperty__.d.ts +8 -7
  169. package/out/concepts/EntityProperty__.js +39 -24
  170. package/out/concepts/EntityProperty__.js.map +1 -1
  171. package/out/concepts/Entity__.d.ts +31 -30
  172. package/out/concepts/Entity__.js +40 -16
  173. package/out/concepts/Entity__.js.map +1 -1
  174. package/out/concepts/EnumItem__.d.ts +1 -0
  175. package/out/concepts/EnumItem__.js +12 -5
  176. package/out/concepts/EnumItem__.js.map +1 -1
  177. package/out/concepts/Enum__.d.ts +9 -8
  178. package/out/concepts/Enum__.js +24 -11
  179. package/out/concepts/Enum__.js.map +1 -1
  180. package/out/concepts/Event__.d.ts +15 -15
  181. package/out/concepts/Event__.js +6 -5
  182. package/out/concepts/Event__.js.map +1 -1
  183. package/out/concepts/ExternalDestination__.d.ts +6 -6
  184. package/out/concepts/ExternalDestination__.js +12 -11
  185. package/out/concepts/ExternalDestination__.js.map +1 -1
  186. package/out/concepts/ForEachStatement__.d.ts +25 -24
  187. package/out/concepts/ForEachStatement__.js +101 -36
  188. package/out/concepts/ForEachStatement__.js.map +1 -1
  189. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  190. package/out/concepts/FrontendLibrary__.js +12 -13
  191. package/out/concepts/FrontendLibrary__.js.map +1 -1
  192. package/out/concepts/FrontendVariable__.js +4 -3
  193. package/out/concepts/FrontendVariable__.js.map +1 -1
  194. package/out/concepts/Frontend__.d.ts +64 -65
  195. package/out/concepts/Frontend__.js +23 -27
  196. package/out/concepts/Frontend__.js.map +1 -1
  197. package/out/concepts/Function__.d.ts +64 -63
  198. package/out/concepts/Function__.js +49 -21
  199. package/out/concepts/Function__.js.map +1 -1
  200. package/out/concepts/Identifier__.js +37 -31
  201. package/out/concepts/Identifier__.js.map +1 -1
  202. package/out/concepts/IfStatement__.d.ts +20 -19
  203. package/out/concepts/IfStatement__.js +64 -34
  204. package/out/concepts/IfStatement__.js.map +1 -1
  205. package/out/concepts/Integration__.d.ts +3 -3
  206. package/out/concepts/Integration__.js +8 -7
  207. package/out/concepts/Integration__.js.map +1 -1
  208. package/out/concepts/InterfaceParam__.d.ts +3 -3
  209. package/out/concepts/InterfaceParam__.js +7 -6
  210. package/out/concepts/InterfaceParam__.js.map +1 -1
  211. package/out/concepts/Interface__.d.ts +33 -33
  212. package/out/concepts/Interface__.js +19 -20
  213. package/out/concepts/Interface__.js.map +1 -1
  214. package/out/concepts/JSBlock__.d.ts +1 -0
  215. package/out/concepts/JSBlock__.js +12 -5
  216. package/out/concepts/JSBlock__.js.map +1 -1
  217. package/out/concepts/JavaLogic__.js +10 -9
  218. package/out/concepts/JavaLogic__.js.map +1 -1
  219. package/out/concepts/LogicItem__.d.ts +6 -0
  220. package/out/concepts/LogicItem__.js +14 -5
  221. package/out/concepts/LogicItem__.js.map +1 -1
  222. package/out/concepts/Logic__.d.ts +80 -79
  223. package/out/concepts/Logic__.js +204 -58
  224. package/out/concepts/Logic__.js.map +1 -1
  225. package/out/concepts/MatchCase__.d.ts +39 -38
  226. package/out/concepts/MatchCase__.js +122 -37
  227. package/out/concepts/MatchCase__.js.map +1 -1
  228. package/out/concepts/Match__.d.ts +13 -11
  229. package/out/concepts/Match__.js +128 -60
  230. package/out/concepts/Match__.js.map +1 -1
  231. package/out/concepts/MemberExpression__.d.ts +7 -6
  232. package/out/concepts/MemberExpression__.js +52 -22
  233. package/out/concepts/MemberExpression__.js.map +1 -1
  234. package/out/concepts/MicroApp__.js +4 -3
  235. package/out/concepts/MicroApp__.js.map +1 -1
  236. package/out/concepts/Module__.d.ts +242 -154
  237. package/out/concepts/Module__.js +139 -33
  238. package/out/concepts/Module__.js.map +1 -1
  239. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  240. package/out/concepts/MsgTriggerEvent__.js +6 -5
  241. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  242. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  243. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  244. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  245. package/out/concepts/Namespace__.d.ts +180 -180
  246. package/out/concepts/Namespace__.js +33 -34
  247. package/out/concepts/Namespace__.js.map +1 -1
  248. package/out/concepts/NewComposite__.d.ts +49 -48
  249. package/out/concepts/NewComposite__.js +164 -49
  250. package/out/concepts/NewComposite__.js.map +1 -1
  251. package/out/concepts/NewList__.d.ts +19 -18
  252. package/out/concepts/NewList__.js +29 -12
  253. package/out/concepts/NewList__.js.map +1 -1
  254. package/out/concepts/NewMap__.d.ts +34 -33
  255. package/out/concepts/NewMap__.js +81 -72
  256. package/out/concepts/NewMap__.js.map +1 -1
  257. package/out/concepts/New__.js +6 -5
  258. package/out/concepts/New__.js.map +1 -1
  259. package/out/concepts/NullLiteral__.js +6 -5
  260. package/out/concepts/NullLiteral__.js.map +1 -1
  261. package/out/concepts/NumericLiteral__.d.ts +4 -3
  262. package/out/concepts/NumericLiteral__.js +15 -8
  263. package/out/concepts/NumericLiteral__.js.map +1 -1
  264. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  265. package/out/concepts/OqlQueryComponent__.js +25 -16
  266. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  267. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  268. package/out/concepts/OverriddenLogic__.js +79 -58
  269. package/out/concepts/OverriddenLogic__.js.map +1 -1
  270. package/out/concepts/Param__.d.ts +6 -5
  271. package/out/concepts/Param__.js +66 -29
  272. package/out/concepts/Param__.js.map +1 -1
  273. package/out/concepts/Point__.js +4 -3
  274. package/out/concepts/Point__.js.map +1 -1
  275. package/out/concepts/ProcessComponent__.d.ts +30 -30
  276. package/out/concepts/ProcessComponent__.js +8 -7
  277. package/out/concepts/ProcessComponent__.js.map +1 -1
  278. package/out/concepts/ProcessElement__.d.ts +96 -96
  279. package/out/concepts/ProcessElement__.js +34 -34
  280. package/out/concepts/ProcessElement__.js.map +1 -1
  281. package/out/concepts/ProcessOutcome__.js +6 -5
  282. package/out/concepts/ProcessOutcome__.js.map +1 -1
  283. package/out/concepts/ProcessOutcomes__.js +6 -5
  284. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  285. package/out/concepts/Process__.d.ts +75 -75
  286. package/out/concepts/Process__.js +33 -30
  287. package/out/concepts/Process__.js.map +1 -1
  288. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  289. package/out/concepts/QueryAggregateExpression__.js +8 -7
  290. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  291. package/out/concepts/QueryFieldExpression__.js +7 -6
  292. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  293. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  294. package/out/concepts/QueryFromExpression__.js +8 -7
  295. package/out/concepts/QueryFromExpression__.js.map +1 -1
  296. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  297. package/out/concepts/QueryGroupByExpression__.js +9 -10
  298. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  299. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  300. package/out/concepts/QueryJoinExpression__.js +11 -10
  301. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  302. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  303. package/out/concepts/QueryLimitExpression__.js +9 -8
  304. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  305. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  306. package/out/concepts/QueryOrderByExpression__.js +9 -8
  307. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  308. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  309. package/out/concepts/QuerySelectExpression__.js +9 -8
  310. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  311. package/out/concepts/Rect__.js +4 -3
  312. package/out/concepts/Rect__.js.map +1 -1
  313. package/out/concepts/Return__.d.ts +4 -3
  314. package/out/concepts/Return__.js +37 -18
  315. package/out/concepts/Return__.js.map +1 -1
  316. package/out/concepts/Role__.js +9 -9
  317. package/out/concepts/Role__.js.map +1 -1
  318. package/out/concepts/SelectMembers__.d.ts +18 -18
  319. package/out/concepts/SelectMembers__.js +10 -9
  320. package/out/concepts/SelectMembers__.js.map +1 -1
  321. package/out/concepts/Slot__.d.ts +3 -3
  322. package/out/concepts/Slot__.js +6 -5
  323. package/out/concepts/Slot__.js.map +1 -1
  324. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  325. package/out/concepts/SqlQueryComponent__.js +21 -12
  326. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  327. package/out/concepts/Start__.js +6 -5
  328. package/out/concepts/Start__.js.map +1 -1
  329. package/out/concepts/StringInterpolation__.d.ts +16 -15
  330. package/out/concepts/StringInterpolation__.js +37 -14
  331. package/out/concepts/StringInterpolation__.js.map +1 -1
  332. package/out/concepts/StringLiteral__.d.ts +1 -0
  333. package/out/concepts/StringLiteral__.js +13 -8
  334. package/out/concepts/StringLiteral__.js.map +1 -1
  335. package/out/concepts/StructureProperty__.d.ts +4 -3
  336. package/out/concepts/StructureProperty__.js +22 -9
  337. package/out/concepts/StructureProperty__.js.map +1 -1
  338. package/out/concepts/Structure__.d.ts +31 -30
  339. package/out/concepts/Structure__.js +27 -15
  340. package/out/concepts/Structure__.js.map +1 -1
  341. package/out/concepts/SwitchCase__.d.ts +12 -11
  342. package/out/concepts/SwitchCase__.js +69 -31
  343. package/out/concepts/SwitchCase__.js.map +1 -1
  344. package/out/concepts/SwitchStatement__.d.ts +9 -8
  345. package/out/concepts/SwitchStatement__.js +27 -7
  346. package/out/concepts/SwitchStatement__.js.map +1 -1
  347. package/out/concepts/Theme__.js +4 -3
  348. package/out/concepts/Theme__.js.map +1 -1
  349. package/out/concepts/Transactional__.js +4 -3
  350. package/out/concepts/Transactional__.js.map +1 -1
  351. package/out/concepts/TriggerEvent__.d.ts +15 -15
  352. package/out/concepts/TriggerEvent__.js +6 -5
  353. package/out/concepts/TriggerEvent__.js.map +1 -1
  354. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  355. package/out/concepts/TriggerLauncher__.js +54 -32
  356. package/out/concepts/TriggerLauncher__.js.map +1 -1
  357. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  358. package/out/concepts/TypeAnnotation__.js +144 -124
  359. package/out/concepts/TypeAnnotation__.js.map +1 -1
  360. package/out/concepts/TypeParam__.d.ts +1 -0
  361. package/out/concepts/TypeParam__.js +12 -5
  362. package/out/concepts/TypeParam__.js.map +1 -1
  363. package/out/concepts/UnaryExpression__.d.ts +4 -3
  364. package/out/concepts/UnaryExpression__.js +31 -20
  365. package/out/concepts/UnaryExpression__.js.map +1 -1
  366. package/out/concepts/Unparsed__.d.ts +1 -0
  367. package/out/concepts/Unparsed__.js +12 -5
  368. package/out/concepts/Unparsed__.js.map +1 -1
  369. package/out/concepts/UseComponent__.js +4 -3
  370. package/out/concepts/UseComponent__.js.map +1 -1
  371. package/out/concepts/ValidationRule__.d.ts +14 -14
  372. package/out/concepts/ValidationRule__.js +19 -17
  373. package/out/concepts/ValidationRule__.js.map +1 -1
  374. package/out/concepts/Variable__.d.ts +4 -3
  375. package/out/concepts/Variable__.js +39 -23
  376. package/out/concepts/Variable__.js.map +1 -1
  377. package/out/concepts/ViewBlock__.js +4 -3
  378. package/out/concepts/ViewBlock__.js.map +1 -1
  379. package/out/concepts/ViewComponent__.d.ts +90 -90
  380. package/out/concepts/ViewComponent__.js +16 -15
  381. package/out/concepts/ViewComponent__.js.map +1 -1
  382. package/out/concepts/ViewElement__.d.ts +92 -86
  383. package/out/concepts/ViewElement__.js +258 -200
  384. package/out/concepts/ViewElement__.js.map +1 -1
  385. package/out/concepts/View__.d.ts +92 -92
  386. package/out/concepts/View__.js +173 -63
  387. package/out/concepts/View__.js.map +1 -1
  388. package/out/concepts/WhileStatement__.d.ts +12 -11
  389. package/out/concepts/WhileStatement__.js +46 -23
  390. package/out/concepts/WhileStatement__.js.map +1 -1
  391. package/out/concepts/basics/stdlib/index.js +17 -1
  392. package/out/concepts/basics/stdlib/index.js.map +1 -1
  393. package/out/concepts/basics/stdlib/nasl.browser.js +36 -0
  394. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  395. package/out/concepts/basics/stdlib/nasl.event.d.ts +3 -0
  396. package/out/concepts/basics/stdlib/nasl.event.js +23 -0
  397. package/out/concepts/basics/stdlib/nasl.event.js.map +1 -0
  398. package/out/concepts/basics/stdlib/nasl.ui.js +45 -0
  399. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  400. package/out/concepts/basics/stdlib/nasl.util.js +6 -22
  401. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  402. package/out/concepts/index__.d.ts +2 -1
  403. package/out/concepts/index__.js +2 -1
  404. package/out/concepts/index__.js.map +1 -1
  405. package/out/concepts/types__.d.ts +2 -1
  406. package/out/decorators/index.d.ts +1 -1
  407. package/out/decorators/index.js +20 -7
  408. package/out/decorators/index.js.map +1 -1
  409. package/out/decorators/promise.d.ts +7 -0
  410. package/out/decorators/promise.js +28 -0
  411. package/out/decorators/promise.js.map +1 -0
  412. package/out/enums/KEYWORDS.js.map +1 -1
  413. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  414. package/out/generator/compileComponent.js.map +1 -1
  415. package/out/generator/genBundleFiles.d.ts +4 -1
  416. package/out/generator/genBundleFiles.js +15 -11
  417. package/out/generator/genBundleFiles.js.map +1 -1
  418. package/out/generator/genHash.js.map +1 -1
  419. package/out/generator/genMetaData.js +12 -8
  420. package/out/generator/genMetaData.js.map +1 -1
  421. package/out/generator/genReleaseBody.js +33 -35
  422. package/out/generator/genReleaseBody.js.map +1 -1
  423. package/out/generator/microApp.js +2 -1
  424. package/out/generator/microApp.js.map +1 -1
  425. package/out/generator/permission.js +31 -30
  426. package/out/generator/permission.js.map +1 -1
  427. package/out/generator/styleReplacer.js +4 -7
  428. package/out/generator/styleReplacer.js.map +1 -1
  429. package/out/index.d.ts +0 -2
  430. package/out/index.js +0 -3
  431. package/out/index.js.map +1 -1
  432. package/out/manager/diagnostic.d.ts +1 -1
  433. package/out/manager/diagnostic.js.map +1 -1
  434. package/out/manager/stepRecorder.js +13 -9
  435. package/out/manager/stepRecorder.js.map +1 -1
  436. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  437. package/out/natural/RequirementAnalyzer.js +196 -0
  438. package/out/natural/RequirementAnalyzer.js.map +1 -0
  439. package/out/natural/RequirementExecutor.d.ts +51 -0
  440. package/out/natural/RequirementExecutor.js +692 -0
  441. package/out/natural/RequirementExecutor.js.map +1 -0
  442. package/out/natural/componentData.d.ts +31 -0
  443. package/out/natural/componentData.js +85 -0
  444. package/out/natural/componentData.js.map +1 -0
  445. package/out/natural/genNaturalTS.d.ts +3 -0
  446. package/out/natural/genNaturalTS.js +76 -0
  447. package/out/natural/genNaturalTS.js.map +1 -0
  448. package/out/natural/index.d.ts +4 -0
  449. package/out/natural/index.js +21 -0
  450. package/out/natural/index.js.map +1 -0
  451. package/out/natural/knowledgeMap.d.ts +4 -0
  452. package/out/natural/knowledgeMap.js +40 -0
  453. package/out/natural/knowledgeMap.js.map +1 -0
  454. package/out/natural/naslStdlibMap.d.ts +2 -0
  455. package/out/natural/naslStdlibMap.js +26 -0
  456. package/out/natural/naslStdlibMap.js.map +1 -0
  457. package/out/natural/transformTSCode.d.ts +7 -0
  458. package/out/natural/transformTSCode.js +760 -0
  459. package/out/natural/transformTSCode.js.map +1 -0
  460. package/out/sentry/index.d.ts +2 -1
  461. package/out/sentry/index.js.map +1 -1
  462. package/out/server/createUiTs.js +28 -16
  463. package/out/server/createUiTs.js.map +1 -1
  464. package/out/server/entity2LogicNamespace.js +24 -22
  465. package/out/server/entity2LogicNamespace.js.map +1 -1
  466. package/out/server/event.d.ts +12 -0
  467. package/out/server/event.js +52 -28
  468. package/out/server/event.js.map +1 -1
  469. package/out/server/extendBaseNode.js +55 -70
  470. package/out/server/extendBaseNode.js.map +1 -1
  471. package/out/server/formatTsUtils.js +46 -50
  472. package/out/server/formatTsUtils.js.map +1 -1
  473. package/out/server/getConnector.d.ts +3 -3
  474. package/out/server/getConnector.js +7 -8
  475. package/out/server/getConnector.js.map +1 -1
  476. package/out/server/getExtensionModules.js +2 -2
  477. package/out/server/getExtensionModules.js.map +1 -1
  478. package/out/server/getFunctions.js.map +1 -1
  479. package/out/server/getInterfaces.js.map +1 -1
  480. package/out/server/getLogging.js.map +1 -1
  481. package/out/server/getLogics.d.ts +1 -1
  482. package/out/server/getLogics.js +55 -8
  483. package/out/server/getLogics.js.map +1 -1
  484. package/out/server/getMemberIdentifier.js +13 -10
  485. package/out/server/getMemberIdentifier.js.map +1 -1
  486. package/out/server/getProcessComponents.js.map +1 -1
  487. package/out/server/getProcesses.js +21 -29
  488. package/out/server/getProcesses.js.map +1 -1
  489. package/out/server/getScope.js.map +1 -1
  490. package/out/server/getValidates.js.map +1 -1
  491. package/out/server/index.js +0 -1
  492. package/out/server/index.js.map +1 -1
  493. package/out/server/naslServer.d.ts +99 -94
  494. package/out/server/naslServer.js +490 -469
  495. package/out/server/naslServer.js.map +1 -1
  496. package/out/server/naslStdlibMap.js +6 -2
  497. package/out/server/naslStdlibMap.js.map +1 -1
  498. package/out/server/process2LogicNamespace.js.map +1 -1
  499. package/out/server/translator.d.ts +1 -1
  500. package/out/server/translator.js +52 -47
  501. package/out/server/translator.js.map +1 -1
  502. package/out/service/storage/init.d.ts +15 -1
  503. package/out/service/storage/init.js +65 -56
  504. package/out/service/storage/init.js.map +1 -1
  505. package/out/templator/genCallComponentLogic.js +1 -2
  506. package/out/templator/genCallComponentLogic.js.map +1 -1
  507. package/out/templator/genCreateBlock.js +14 -9
  508. package/out/templator/genCreateBlock.js.map +1 -1
  509. package/out/templator/genCurdEditMultipleKeyBlock.js +23 -14
  510. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  511. package/out/templator/genCurdMultipleKeyBlock.js +26 -30
  512. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  513. package/out/templator/genEditTableBlock.d.ts +1 -1
  514. package/out/templator/genEditTableBlock.js +14 -19
  515. package/out/templator/genEditTableBlock.js.map +1 -1
  516. package/out/templator/genEnumSelectBlock.js +1 -1
  517. package/out/templator/genEnumSelectBlock.js.map +1 -1
  518. package/out/templator/genGetBlock.js +2 -2
  519. package/out/templator/genGetBlock.js.map +1 -1
  520. package/out/templator/genGridViewBlock.d.ts +2 -2
  521. package/out/templator/genGridViewBlock.js +18 -28
  522. package/out/templator/genGridViewBlock.js.map +1 -1
  523. package/out/templator/genListViewBlock.d.ts +2 -2
  524. package/out/templator/genListViewBlock.js +9 -16
  525. package/out/templator/genListViewBlock.js.map +1 -1
  526. package/out/templator/genQueryComponent.js +22 -15
  527. package/out/templator/genQueryComponent.js.map +1 -1
  528. package/out/templator/genSelectBlock.d.ts +2 -2
  529. package/out/templator/genSelectBlock.js +21 -48
  530. package/out/templator/genSelectBlock.js.map +1 -1
  531. package/out/templator/genTableBlock.d.ts +1 -1
  532. package/out/templator/genTableBlock.js +11 -17
  533. package/out/templator/genTableBlock.js.map +1 -1
  534. package/out/templator/genUpdateBlock.js +13 -8
  535. package/out/templator/genUpdateBlock.js.map +1 -1
  536. package/out/templator/index.d.ts +4 -2
  537. package/out/templator/index.js +2 -2
  538. package/out/templator/index.js.map +1 -1
  539. package/out/templator/utils.d.ts +9 -2
  540. package/out/templator/utils.js +22 -22
  541. package/out/templator/utils.js.map +1 -1
  542. package/out/translator/index.js +27 -28
  543. package/out/translator/index.js.map +1 -1
  544. package/out/utils/index.d.ts +2 -1
  545. package/out/utils/index.js +8 -14
  546. package/out/utils/index.js.map +1 -1
  547. package/out/utils/logger.js.map +1 -1
  548. package/out/utils/sortTsString.js +3 -1
  549. package/out/utils/sortTsString.js.map +1 -1
  550. package/out/utils/string.js +8 -11
  551. package/out/utils/string.js.map +1 -1
  552. package/out/utils/time-slicing.d.ts +41 -0
  553. package/out/utils/time-slicing.js +81 -0
  554. package/out/utils/time-slicing.js.map +1 -0
  555. package/out/utils/traverse.js +4 -6
  556. package/out/utils/traverse.js.map +1 -1
  557. package/package.json +22 -20
  558. package/sandbox/stdlib/nasl.auth.ts +49 -46
  559. package/sandbox/stdlib/nasl.browser.ts +1 -0
  560. package/sandbox/stdlib/nasl.event.ts +4 -0
  561. package/sandbox/stdlib/nasl.http.ts +29 -31
  562. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  563. package/sandbox/stdlib/nasl.ui.ts +11 -0
  564. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  565. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  566. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  567. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  568. package/sandbox-natural/tsconfig.json +12 -0
  569. package/src/automate/engine/utils.js +3 -0
  570. package/src/automate/upgrader/2.20.js +1 -1
  571. package/src/bak/translator.js +92 -99
  572. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  573. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  574. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  575. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  576. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  577. package/src/breakpoint/generator/index.ts +107 -80
  578. package/src/breakpoint/shared/constants.ts +59 -53
  579. package/src/breakpoint/shared/operations.ts +6 -6
  580. package/src/breakpoint/shared/socket.ts +277 -223
  581. package/src/breakpoint/shared/utils.ts +166 -146
  582. package/src/breakpoint/store/core.ts +326 -297
  583. package/src/breakpoint/store/dock.ts +103 -103
  584. package/src/breakpoint/types/index.d.ts +11 -11
  585. package/src/common/BaseNode.ts +1103 -1020
  586. package/src/common/Command.ts +46 -16
  587. package/src/common/ComponentAPI.ts +72 -72
  588. package/src/common/EventEmitter.ts +80 -76
  589. package/src/common/Messager.ts +223 -224
  590. package/src/common/asyncFuncMap.ts +12 -12
  591. package/src/concepts/Abort__.ts +53 -60
  592. package/src/concepts/Anchor__.ts +158 -149
  593. package/src/concepts/AnonymousFunction__.ts +584 -551
  594. package/src/concepts/App__.ts +4278 -3669
  595. package/src/concepts/Argument__.ts +234 -210
  596. package/src/concepts/Assignee__.ts +680 -656
  597. package/src/concepts/AssignmentLine__.ts +80 -84
  598. package/src/concepts/Assignment__.ts +276 -264
  599. package/src/concepts/Attribute__.ts +183 -184
  600. package/src/concepts/AuthInterface__.ts +61 -63
  601. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  602. package/src/concepts/AuthLogic__.ts +210 -194
  603. package/src/concepts/BackendVariable__.ts +414 -415
  604. package/src/concepts/Backend__.ts +317 -303
  605. package/src/concepts/BatchAssignment__.ts +987 -939
  606. package/src/concepts/BinaryExpression__.ts +370 -341
  607. package/src/concepts/BindAttribute__.ts +1056 -1011
  608. package/src/concepts/BindDirective__.ts +540 -542
  609. package/src/concepts/BindEvent__.ts +992 -866
  610. package/src/concepts/BindStyle__.ts +442 -451
  611. package/src/concepts/BooleanLiteral__.ts +89 -90
  612. package/src/concepts/CallAuthInterface__.ts +458 -433
  613. package/src/concepts/CallConnector__.ts +209 -164
  614. package/src/concepts/CallFunction__.ts +600 -600
  615. package/src/concepts/CallInterface__.ts +752 -725
  616. package/src/concepts/CallLogic__.ts +1328 -1236
  617. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  618. package/src/concepts/Comment__.ts +69 -68
  619. package/src/concepts/CompletionProperty__.ts +250 -250
  620. package/src/concepts/ConfigGroup__.ts +312 -296
  621. package/src/concepts/ConfigPropertyValue__.ts +81 -82
  622. package/src/concepts/ConfigProperty__.ts +374 -357
  623. package/src/concepts/Configuration__.ts +288 -276
  624. package/src/concepts/Connection__.ts +426 -0
  625. package/src/concepts/ConnectorTrigger__.ts +146 -142
  626. package/src/concepts/Connector__.ts +1090 -1048
  627. package/src/concepts/Constant__.ts +226 -219
  628. package/src/concepts/DataElement__.ts +108 -115
  629. package/src/concepts/DataSource__.ts +508 -472
  630. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  631. package/src/concepts/Destination__.ts +808 -746
  632. package/src/concepts/End__.ts +85 -89
  633. package/src/concepts/EntityIndex__.ts +206 -202
  634. package/src/concepts/EntityProperty__.ts +825 -791
  635. package/src/concepts/Entity__.ts +921 -864
  636. package/src/concepts/EnumItem__.ts +133 -125
  637. package/src/concepts/Enum__.ts +347 -337
  638. package/src/concepts/Event__.ts +305 -292
  639. package/src/concepts/ExternalDestination__.ts +269 -280
  640. package/src/concepts/ForEachStatement__.ts +583 -531
  641. package/src/concepts/FrontendLibrary__.ts +507 -485
  642. package/src/concepts/FrontendVariable__.ts +44 -49
  643. package/src/concepts/Frontend__.ts +1239 -1187
  644. package/src/concepts/Function__.ts +1110 -1045
  645. package/src/concepts/Identifier__.ts +276 -272
  646. package/src/concepts/IfStatement__.ts +467 -436
  647. package/src/concepts/Integration__.ts +136 -137
  648. package/src/concepts/InterfaceParam__.ts +239 -238
  649. package/src/concepts/Interface__.ts +969 -948
  650. package/src/concepts/JSBlock__.ts +83 -83
  651. package/src/concepts/JavaLogic__.ts +101 -106
  652. package/src/concepts/LogicItem__.ts +307 -237
  653. package/src/concepts/Logic__.ts +2301 -2088
  654. package/src/concepts/MatchCase__.ts +886 -779
  655. package/src/concepts/Match__.ts +728 -659
  656. package/src/concepts/MemberExpression__.ts +330 -311
  657. package/src/concepts/MicroApp__.ts +91 -97
  658. package/src/concepts/Module__.ts +2590 -2275
  659. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  660. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  661. package/src/concepts/Namespace__.ts +2579 -2466
  662. package/src/concepts/NewComposite__.ts +1487 -1350
  663. package/src/concepts/NewList__.ts +464 -450
  664. package/src/concepts/NewMap__.ts +691 -674
  665. package/src/concepts/New__.ts +42 -49
  666. package/src/concepts/NullLiteral__.ts +66 -72
  667. package/src/concepts/NumericLiteral__.ts +169 -169
  668. package/src/concepts/OqlQueryComponent__.ts +282 -279
  669. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  670. package/src/concepts/Param__.ts +500 -442
  671. package/src/concepts/Point__.ts +53 -59
  672. package/src/concepts/ProcessComponent__.ts +497 -475
  673. package/src/concepts/ProcessElement__.ts +1852 -1780
  674. package/src/concepts/ProcessOutcome__.ts +59 -64
  675. package/src/concepts/ProcessOutcomes__.ts +59 -64
  676. package/src/concepts/Process__.ts +1491 -1428
  677. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  678. package/src/concepts/QueryFieldExpression__.ts +138 -142
  679. package/src/concepts/QueryFromExpression__.ts +246 -254
  680. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  681. package/src/concepts/QueryJoinExpression__.ts +441 -438
  682. package/src/concepts/QueryLimitExpression__.ts +159 -166
  683. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  684. package/src/concepts/QuerySelectExpression__.ts +464 -439
  685. package/src/concepts/Rect__.ts +73 -79
  686. package/src/concepts/Return__.ts +366 -345
  687. package/src/concepts/Role__.ts +146 -147
  688. package/src/concepts/SelectMembers__.ts +358 -350
  689. package/src/concepts/Slot__.ts +152 -153
  690. package/src/concepts/SqlQueryComponent__.ts +230 -228
  691. package/src/concepts/Start__.ts +45 -52
  692. package/src/concepts/StringInterpolation__.ts +323 -296
  693. package/src/concepts/StringLiteral__.ts +113 -115
  694. package/src/concepts/StructureProperty__.ts +306 -295
  695. package/src/concepts/Structure__.ts +615 -578
  696. package/src/concepts/SwitchCase__.ts +326 -290
  697. package/src/concepts/SwitchStatement__.ts +236 -229
  698. package/src/concepts/Theme__.ts +64 -68
  699. package/src/concepts/Transactional__.ts +159 -153
  700. package/src/concepts/TriggerEvent__.ts +285 -274
  701. package/src/concepts/TriggerLauncher__.ts +232 -196
  702. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  703. package/src/concepts/TypeParam__.ts +48 -50
  704. package/src/concepts/UnaryExpression__.ts +163 -153
  705. package/src/concepts/Unparsed__.ts +81 -82
  706. package/src/concepts/UseComponent__.ts +53 -59
  707. package/src/concepts/ValidationRule__.ts +524 -544
  708. package/src/concepts/Variable__.ts +419 -397
  709. package/src/concepts/ViewBlock__.ts +58 -64
  710. package/src/concepts/ViewComponent__.ts +1323 -1261
  711. package/src/concepts/ViewElement__.ts +2537 -2351
  712. package/src/concepts/View__.ts +2461 -2245
  713. package/src/concepts/WhileStatement__.ts +293 -272
  714. package/src/concepts/basics/stdlib/index.ts +17 -1
  715. package/src/concepts/basics/stdlib/nasl.browser.ts +36 -0
  716. package/src/concepts/basics/stdlib/nasl.event.ts +18 -0
  717. package/src/concepts/basics/stdlib/nasl.ui.ts +45 -0
  718. package/src/concepts/basics/stdlib/nasl.util.ts +6 -22
  719. package/src/concepts/index__.ts +2 -1
  720. package/src/concepts/types__.ts +123 -121
  721. package/src/decorators/index.ts +75 -77
  722. package/src/decorators/promise.ts +28 -0
  723. package/src/enums/KEYWORDS.ts +1228 -1228
  724. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  725. package/src/generator/compileComponent.ts +10 -10
  726. package/src/generator/genBundleFiles.ts +300 -291
  727. package/src/generator/genHash.ts +2 -2
  728. package/src/generator/genMetaData.ts +280 -261
  729. package/src/generator/genReleaseBody.ts +312 -291
  730. package/src/generator/icestark.ts +1 -1
  731. package/src/generator/microApp.ts +17 -20
  732. package/src/generator/permission.ts +241 -232
  733. package/src/generator/qiankun.ts +1 -1
  734. package/src/generator/styleReplacer.ts +28 -31
  735. package/src/index.ts +0 -3
  736. package/src/manager/diagnostic.ts +84 -82
  737. package/src/manager/stepRecorder.ts +106 -94
  738. package/src/natural/RequirementAnalyzer.ts +208 -0
  739. package/src/natural/RequirementExecutor.ts +685 -0
  740. package/src/natural/componentData.ts +81 -0
  741. package/src/natural/genNaturalTS.ts +77 -0
  742. package/src/natural/index.ts +4 -0
  743. package/src/natural/knowledgeMap.ts +39 -0
  744. package/src/natural/naslStdlibMap.ts +24 -0
  745. package/src/natural/transformTSCode.ts +692 -0
  746. package/src/sentry/index.ts +109 -104
  747. package/src/server/createUiTs.ts +190 -184
  748. package/src/server/entity2LogicNamespace.ts +379 -359
  749. package/src/server/event.js +145 -121
  750. package/src/server/extendBaseNode.ts +461 -456
  751. package/src/server/formatTsUtils.ts +712 -713
  752. package/src/server/getConnector.ts +33 -33
  753. package/src/server/getExtensionModules.ts +23 -22
  754. package/src/server/getFunctions.ts +6 -6
  755. package/src/server/getInterfaces.ts +38 -37
  756. package/src/server/getLogging.ts +1 -1
  757. package/src/server/getLogics.ts +391 -312
  758. package/src/server/getMemberIdentifier.ts +286 -281
  759. package/src/server/getProcessComponents.ts +2 -2
  760. package/src/server/getProcesses.ts +548 -534
  761. package/src/server/getScope.ts +51 -51
  762. package/src/server/getValidates.ts +3 -3
  763. package/src/server/index.ts +29 -30
  764. package/src/server/naslServer.ts +4303 -4222
  765. package/src/server/naslStdlibMap.ts +43 -39
  766. package/src/server/process2LogicNamespace.ts +97 -97
  767. package/src/server/translator.ts +740 -746
  768. package/src/service/storage/init.ts +761 -728
  769. package/src/templator/genCallComponentLogic.ts +14 -15
  770. package/src/templator/genCreateBlock.ts +257 -229
  771. package/src/templator/genCurdEditMultipleKeyBlock.ts +333 -317
  772. package/src/templator/genCurdMultipleKeyBlock.ts +503 -475
  773. package/src/templator/genEditTableBlock.ts +194 -187
  774. package/src/templator/genEnumSelectBlock.ts +13 -7
  775. package/src/templator/genGetBlock.ts +57 -55
  776. package/src/templator/genGridViewBlock.ts +195 -211
  777. package/src/templator/genListViewBlock.ts +62 -72
  778. package/src/templator/genQueryComponent.ts +337 -287
  779. package/src/templator/genSelectBlock.ts +283 -297
  780. package/src/templator/genTableBlock.ts +160 -166
  781. package/src/templator/genUpdateBlock.ts +269 -255
  782. package/src/templator/index.ts +4 -4
  783. package/src/templator/utils.ts +491 -463
  784. package/src/translator/index.ts +84 -84
  785. package/src/translator/lsp.ts +22 -22
  786. package/src/translator/tsp.ts +6 -6
  787. package/src/utils/index.ts +115 -117
  788. package/src/utils/logger.ts +3 -4
  789. package/src/utils/sortTsString.ts +34 -32
  790. package/src/utils/string.ts +47 -48
  791. package/src/utils/time-slicing.ts +109 -0
  792. package/src/utils/traverse.ts +114 -126
  793. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +71 -0
  794. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +140 -0
  795. package/test/concepts/call-interface/constant.ts +5 -0
  796. package/test/concepts/call-interface/fixtures/only-interface.json +158 -0
  797. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +455 -0
  798. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +187 -0
  799. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +225 -0
  800. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +213 -0
  801. package/test/concepts/call-interface/fixtures/with-headers.json +192 -0
  802. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +213 -0
  803. package/test/concepts/call-interface/fixtures/with-query.json +192 -0
  804. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +14 -0
  805. package/test/concepts/call-interface/toJS.spec.ts +14 -0
  806. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  807. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +141 -0
  808. package/test/concepts/call-logic/constant.ts +5 -0
  809. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +223 -0
  810. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +359 -0
  811. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +209 -0
  812. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +311 -0
  813. package/test/concepts/call-logic/fixtures/only-call-logic.json +10 -0
  814. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +128 -0
  815. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +126 -0
  816. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +244 -0
  817. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +14 -0
  818. package/test/concepts/call-logic/toJS.spec.ts +14 -0
  819. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  820. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  821. package/test/concepts/match/constant.ts +5 -0
  822. package/test/concepts/match/fixtures/isExpression.json +259 -0
  823. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  824. package/test/concepts/match/fixtures/noExpression.json +176 -0
  825. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  826. package/test/concepts/match/toJS.spec.ts +14 -0
  827. package/test/concepts/utils.ts +76 -3
  828. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  829. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +16 -0
  830. package/test/concepts/validation-rule/constant.ts +5 -0
  831. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +10 -17
  832. package/test/concepts/validation-rule/toJS.spec.ts +14 -0
  833. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +68 -0
  834. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +44 -0
  835. package/test/concepts/view-element/constant.ts +5 -0
  836. package/test/concepts/view-element/fixtures/default-not-found.json +322 -0
  837. package/test/concepts/view-element/toEmbeddedTS.spec.ts +14 -0
  838. package/test/concepts/view-element/toVue.spec.ts +14 -0
  839. package/test/setup.ts +7 -0
  840. package/ts-worker/src/index.js +0 -2
  841. package/tsconfig.json +21 -21
  842. package/bin/naslc +0 -3
@@ -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
+ //= ===============================================================================