@lcap/nasl 3.5.0-beta.1 → 3.5.0-beta.2

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 (768) hide show
  1. package/out/automate/engine/uniqueName.js +7 -3
  2. package/out/automate/engine/uniqueName.js.map +1 -1
  3. package/out/bak/translator.js +119 -39
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/breakpoint/generator/AfterStartNode.js +1 -1
  6. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  7. package/out/breakpoint/generator/BeforeEndNode.js +1 -1
  8. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  9. package/out/breakpoint/generator/BreakpointNode.d.ts +3 -0
  10. package/out/breakpoint/generator/BreakpointNode.js +12 -3
  11. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  12. package/out/breakpoint/generator/CallbackNode.js +15 -0
  13. package/out/breakpoint/generator/CallbackNode.js.map +1 -1
  14. package/out/breakpoint/shared/constants.js +1 -1
  15. package/out/breakpoint/shared/constants.js.map +1 -1
  16. package/out/breakpoint/shared/utils.js +12 -6
  17. package/out/breakpoint/shared/utils.js.map +1 -1
  18. package/out/common/BaseNode.d.ts +17 -12
  19. package/out/common/BaseNode.js +64 -174
  20. package/out/common/BaseNode.js.map +1 -1
  21. package/out/common/Command.js +0 -1
  22. package/out/common/Command.js.map +1 -1
  23. package/out/common/EventEmitter.js +4 -2
  24. package/out/common/EventEmitter.js.map +1 -1
  25. package/out/common/Messager.js +0 -2
  26. package/out/common/Messager.js.map +1 -1
  27. package/out/common/utils.d.ts +2 -2
  28. package/out/common/utils.js.map +1 -1
  29. package/out/concepts/Abort__.d.ts +1 -1
  30. package/out/concepts/Abort__.js +9 -16
  31. package/out/concepts/Abort__.js.map +1 -1
  32. package/out/concepts/AbstractInterface__.d.ts +1 -1
  33. package/out/concepts/AbstractInterface__.js +5 -8
  34. package/out/concepts/AbstractInterface__.js.map +1 -1
  35. package/out/concepts/Anchor__.d.ts +1 -1
  36. package/out/concepts/Anchor__.js +5 -17
  37. package/out/concepts/Anchor__.js.map +1 -1
  38. package/out/concepts/AnonymousFunction__.d.ts +1 -1
  39. package/out/concepts/AnonymousFunction__.js +22 -44
  40. package/out/concepts/AnonymousFunction__.js.map +1 -1
  41. package/out/concepts/App__.d.ts +51 -51
  42. package/out/concepts/App__.js +220 -278
  43. package/out/concepts/App__.js.map +1 -1
  44. package/out/concepts/Argument__.d.ts +1 -1
  45. package/out/concepts/Argument__.js +11 -33
  46. package/out/concepts/Argument__.js.map +1 -1
  47. package/out/concepts/Assignee__.d.ts +1 -1
  48. package/out/concepts/Assignee__.js +29 -36
  49. package/out/concepts/Assignee__.js.map +1 -1
  50. package/out/concepts/AssignmentLine__.d.ts +1 -1
  51. package/out/concepts/AssignmentLine__.js +13 -20
  52. package/out/concepts/AssignmentLine__.js.map +1 -1
  53. package/out/concepts/Assignment__.d.ts +1 -1
  54. package/out/concepts/Assignment__.js +12 -29
  55. package/out/concepts/Assignment__.js.map +1 -1
  56. package/out/concepts/Attribute__.d.ts +1 -1
  57. package/out/concepts/Attribute__.js +16 -73
  58. package/out/concepts/Attribute__.js.map +1 -1
  59. package/out/concepts/AuthInterface__.d.ts +1 -1
  60. package/out/concepts/AuthInterface__.js +11 -23
  61. package/out/concepts/AuthInterface__.js.map +1 -1
  62. package/out/concepts/AuthLogicForCallInterface__.d.ts +1 -1
  63. package/out/concepts/AuthLogicForCallInterface__.js +20 -26
  64. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  65. package/out/concepts/AuthLogic__.d.ts +1 -1
  66. package/out/concepts/AuthLogic__.js +11 -23
  67. package/out/concepts/AuthLogic__.js.map +1 -1
  68. package/out/concepts/BackendVariable__.d.ts +1 -1
  69. package/out/concepts/BackendVariable__.js +29 -53
  70. package/out/concepts/BackendVariable__.js.map +1 -1
  71. package/out/concepts/Backend__.d.ts +1 -1
  72. package/out/concepts/Backend__.js +17 -29
  73. package/out/concepts/Backend__.js.map +1 -1
  74. package/out/concepts/BatchAssignment__.d.ts +1 -1
  75. package/out/concepts/BatchAssignment__.js +24 -36
  76. package/out/concepts/BatchAssignment__.js.map +1 -1
  77. package/out/concepts/BinaryExpression__.d.ts +3 -1
  78. package/out/concepts/BinaryExpression__.js +9 -27
  79. package/out/concepts/BinaryExpression__.js.map +1 -1
  80. package/out/concepts/BindAttribute__.d.ts +1 -1
  81. package/out/concepts/BindAttribute__.js +39 -86
  82. package/out/concepts/BindAttribute__.js.map +1 -1
  83. package/out/concepts/BindDirective__.d.ts +2 -1
  84. package/out/concepts/BindDirective__.js +36 -68
  85. package/out/concepts/BindDirective__.js.map +1 -1
  86. package/out/concepts/BindEvent__.d.ts +4 -2
  87. package/out/concepts/BindEvent__.js +69 -66
  88. package/out/concepts/BindEvent__.js.map +1 -1
  89. package/out/concepts/BindStyle__.d.ts +1 -1
  90. package/out/concepts/BindStyle__.js +17 -34
  91. package/out/concepts/BindStyle__.js.map +1 -1
  92. package/out/concepts/Block__.d.ts +1 -1
  93. package/out/concepts/Block__.js +11 -18
  94. package/out/concepts/Block__.js.map +1 -1
  95. package/out/concepts/BooleanLiteral__.d.ts +1 -1
  96. package/out/concepts/BooleanLiteral__.js +5 -17
  97. package/out/concepts/BooleanLiteral__.js.map +1 -1
  98. package/out/concepts/BusinessComponent__.d.ts +637 -0
  99. package/out/concepts/BusinessComponent__.js +1892 -0
  100. package/out/concepts/BusinessComponent__.js.map +1 -0
  101. package/out/concepts/BusinessLogic__.d.ts +38 -0
  102. package/out/concepts/BusinessLogic__.js +358 -0
  103. package/out/concepts/BusinessLogic__.js.map +1 -0
  104. package/out/concepts/CallAuthInterface__.d.ts +3 -3
  105. package/out/concepts/CallAuthInterface__.js +12 -19
  106. package/out/concepts/CallAuthInterface__.js.map +1 -1
  107. package/out/concepts/CallConnector__.d.ts +1 -1
  108. package/out/concepts/CallConnector__.js +9 -21
  109. package/out/concepts/CallConnector__.js.map +1 -1
  110. package/out/concepts/CallEvent__.d.ts +97 -0
  111. package/out/concepts/CallEvent__.js +263 -0
  112. package/out/concepts/CallEvent__.js.map +1 -0
  113. package/out/concepts/CallFunction__.d.ts +3 -1
  114. package/out/concepts/CallFunction__.js +37 -47
  115. package/out/concepts/CallFunction__.js.map +1 -1
  116. package/out/concepts/CallInterface__.d.ts +5 -3
  117. package/out/concepts/CallInterface__.js +31 -49
  118. package/out/concepts/CallInterface__.js.map +1 -1
  119. package/out/concepts/CallLogic__.d.ts +6 -3
  120. package/out/concepts/CallLogic__.js +69 -113
  121. package/out/concepts/CallLogic__.js.map +1 -1
  122. package/out/concepts/CallQueryComponent__.d.ts +1 -1
  123. package/out/concepts/CallQueryComponent__.js +128 -112
  124. package/out/concepts/CallQueryComponent__.js.map +1 -1
  125. package/out/concepts/Comment__.d.ts +1 -1
  126. package/out/concepts/Comment__.js +5 -17
  127. package/out/concepts/Comment__.js.map +1 -1
  128. package/out/concepts/CompletionProperty__.d.ts +1 -1
  129. package/out/concepts/CompletionProperty__.js +18 -61
  130. package/out/concepts/CompletionProperty__.js.map +1 -1
  131. package/out/concepts/ConfigGroup__.d.ts +1 -1
  132. package/out/concepts/ConfigGroup__.js +17 -29
  133. package/out/concepts/ConfigGroup__.js.map +1 -1
  134. package/out/concepts/ConfigPropertyValue__.d.ts +1 -1
  135. package/out/concepts/ConfigPropertyValue__.js +11 -28
  136. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  137. package/out/concepts/ConfigProperty__.d.ts +1 -1
  138. package/out/concepts/ConfigProperty__.js +17 -39
  139. package/out/concepts/ConfigProperty__.js.map +1 -1
  140. package/out/concepts/Configuration__.d.ts +1 -1
  141. package/out/concepts/Configuration__.js +17 -24
  142. package/out/concepts/Configuration__.js.map +1 -1
  143. package/out/concepts/Connection__.d.ts +1 -1
  144. package/out/concepts/Connection__.js +17 -39
  145. package/out/concepts/Connection__.js.map +1 -1
  146. package/out/concepts/ConnectorTrigger__.d.ts +1 -1
  147. package/out/concepts/ConnectorTrigger__.js +11 -33
  148. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  149. package/out/concepts/Connector__.d.ts +1 -1
  150. package/out/concepts/Connector__.js +59 -96
  151. package/out/concepts/Connector__.js.map +1 -1
  152. package/out/concepts/Constant__.d.ts +1 -1
  153. package/out/concepts/Constant__.js +18 -44
  154. package/out/concepts/Constant__.js.map +1 -1
  155. package/out/concepts/CountersignPolicy__.d.ts +1 -1
  156. package/out/concepts/CountersignPolicy__.js +5 -17
  157. package/out/concepts/CountersignPolicy__.js.map +1 -1
  158. package/out/concepts/DataSource__.d.ts +1 -1
  159. package/out/concepts/DataSource__.js +18 -40
  160. package/out/concepts/DataSource__.js.map +1 -1
  161. package/out/concepts/DatabaseTypeAnnotation__.d.ts +1 -1
  162. package/out/concepts/DatabaseTypeAnnotation__.js +5 -22
  163. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  164. package/out/concepts/DefaultValue__.d.ts +1 -1
  165. package/out/concepts/DefaultValue__.js +13 -24
  166. package/out/concepts/DefaultValue__.js.map +1 -1
  167. package/out/concepts/Destination__.d.ts +1 -1
  168. package/out/concepts/Destination__.js +23 -45
  169. package/out/concepts/Destination__.js.map +1 -1
  170. package/out/concepts/End__.d.ts +1 -1
  171. package/out/concepts/End__.js +11 -17
  172. package/out/concepts/End__.js.map +1 -1
  173. package/out/concepts/EntityIndex__.d.ts +1 -1
  174. package/out/concepts/EntityIndex__.js +15 -42
  175. package/out/concepts/EntityIndex__.js.map +1 -1
  176. package/out/concepts/EntityProperty__.d.ts +1 -1
  177. package/out/concepts/EntityProperty__.js +41 -118
  178. package/out/concepts/EntityProperty__.js.map +1 -1
  179. package/out/concepts/Entity__.d.ts +1 -6
  180. package/out/concepts/Entity__.js +34 -70
  181. package/out/concepts/Entity__.js.map +1 -1
  182. package/out/concepts/EnumItem__.d.ts +1 -1
  183. package/out/concepts/EnumItem__.js +11 -36
  184. package/out/concepts/EnumItem__.js.map +1 -1
  185. package/out/concepts/Enum__.d.ts +1 -1
  186. package/out/concepts/Enum__.js +21 -52
  187. package/out/concepts/Enum__.js.map +1 -1
  188. package/out/concepts/Event__.d.ts +11 -1
  189. package/out/concepts/Event__.js +66 -49
  190. package/out/concepts/Event__.js.map +1 -1
  191. package/out/concepts/ExternalDestination__.d.ts +1 -1
  192. package/out/concepts/ExternalDestination__.js +14 -31
  193. package/out/concepts/ExternalDestination__.js.map +1 -1
  194. package/out/concepts/ForEachStatement__.d.ts +1 -1
  195. package/out/concepts/ForEachStatement__.js +12 -44
  196. package/out/concepts/ForEachStatement__.js.map +1 -1
  197. package/out/concepts/FrontendLibrary__.d.ts +1 -1
  198. package/out/concepts/FrontendLibrary__.js +22 -39
  199. package/out/concepts/FrontendLibrary__.js.map +1 -1
  200. package/out/concepts/FrontendType__.d.ts +308 -0
  201. package/out/concepts/FrontendType__.js +605 -0
  202. package/out/concepts/FrontendType__.js.map +1 -0
  203. package/out/concepts/FrontendVariable__.d.ts +7 -3
  204. package/out/concepts/FrontendVariable__.js +20 -20
  205. package/out/concepts/FrontendVariable__.js.map +1 -1
  206. package/out/concepts/Frontend__.d.ts +1 -89
  207. package/out/concepts/Frontend__.js +40 -224
  208. package/out/concepts/Frontend__.js.map +1 -1
  209. package/out/concepts/Function__.d.ts +1 -1
  210. package/out/concepts/Function__.js +32 -54
  211. package/out/concepts/Function__.js.map +1 -1
  212. package/out/concepts/I18nInfo__.d.ts +1 -1
  213. package/out/concepts/I18nInfo__.js +5 -27
  214. package/out/concepts/I18nInfo__.js.map +1 -1
  215. package/out/concepts/Identifier__.d.ts +6 -1
  216. package/out/concepts/Identifier__.js +38 -45
  217. package/out/concepts/Identifier__.js.map +1 -1
  218. package/out/concepts/IfStatement__.d.ts +1 -1
  219. package/out/concepts/IfStatement__.js +16 -28
  220. package/out/concepts/IfStatement__.js.map +1 -1
  221. package/out/concepts/ImportedInterface__.d.ts +1 -1
  222. package/out/concepts/ImportedInterface__.js +5 -13
  223. package/out/concepts/ImportedInterface__.js.map +1 -1
  224. package/out/concepts/Integration__.d.ts +1 -1
  225. package/out/concepts/Integration__.js +17 -29
  226. package/out/concepts/Integration__.js.map +1 -1
  227. package/out/concepts/InterfaceParam__.d.ts +1 -1
  228. package/out/concepts/InterfaceParam__.js +11 -48
  229. package/out/concepts/InterfaceParam__.js.map +1 -1
  230. package/out/concepts/Interface__.d.ts +3 -3
  231. package/out/concepts/Interface__.js +35 -72
  232. package/out/concepts/Interface__.js.map +1 -1
  233. package/out/concepts/JSBlock__.d.ts +1 -1
  234. package/out/concepts/JSBlock__.js +9 -21
  235. package/out/concepts/JSBlock__.js.map +1 -1
  236. package/out/concepts/JavaLogic__.d.ts +1 -1
  237. package/out/concepts/JavaLogic__.js +5 -27
  238. package/out/concepts/JavaLogic__.js.map +1 -1
  239. package/out/concepts/LogicItem__.d.ts +2 -2
  240. package/out/concepts/LogicItem__.js +15 -42
  241. package/out/concepts/LogicItem__.js.map +1 -1
  242. package/out/concepts/Logic__.d.ts +6 -4
  243. package/out/concepts/Logic__.js +83 -122
  244. package/out/concepts/Logic__.js.map +1 -1
  245. package/out/concepts/MatchCase__.d.ts +1 -1
  246. package/out/concepts/MatchCase__.js +26 -33
  247. package/out/concepts/MatchCase__.js.map +1 -1
  248. package/out/concepts/Match__.d.ts +1 -1
  249. package/out/concepts/Match__.js +20 -37
  250. package/out/concepts/Match__.js.map +1 -1
  251. package/out/concepts/MemberExpression__.d.ts +2 -2
  252. package/out/concepts/MemberExpression__.js +28 -45
  253. package/out/concepts/MemberExpression__.js.map +1 -1
  254. package/out/concepts/MetadataType__.d.ts +1 -1
  255. package/out/concepts/MetadataType__.js +30 -52
  256. package/out/concepts/MetadataType__.js.map +1 -1
  257. package/out/concepts/MicroApp__.d.ts +1 -1
  258. package/out/concepts/MicroApp__.js +5 -47
  259. package/out/concepts/MicroApp__.js.map +1 -1
  260. package/out/concepts/Module__.d.ts +1 -1
  261. package/out/concepts/Module__.js +76 -140
  262. package/out/concepts/Module__.js.map +1 -1
  263. package/out/concepts/MsgTriggerEvent__.d.ts +1 -1
  264. package/out/concepts/MsgTriggerEvent__.js +17 -24
  265. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  266. package/out/concepts/MsgTriggerLauncher__.d.ts +1 -1
  267. package/out/concepts/MsgTriggerLauncher__.js +17 -29
  268. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  269. package/out/concepts/MultiApprovalPolicy__.d.ts +1 -1
  270. package/out/concepts/MultiApprovalPolicy__.js +5 -12
  271. package/out/concepts/MultiApprovalPolicy__.js.map +1 -1
  272. package/out/concepts/Namespace__.d.ts +1 -1
  273. package/out/concepts/Namespace__.js +67 -94
  274. package/out/concepts/Namespace__.js.map +1 -1
  275. package/out/concepts/NewComposite__.d.ts +3 -1
  276. package/out/concepts/NewComposite__.js +37 -45
  277. package/out/concepts/NewComposite__.js.map +1 -1
  278. package/out/concepts/NewList__.d.ts +3 -1
  279. package/out/concepts/NewList__.js +16 -24
  280. package/out/concepts/NewList__.js.map +1 -1
  281. package/out/concepts/NewMap__.d.ts +3 -1
  282. package/out/concepts/NewMap__.js +20 -28
  283. package/out/concepts/NewMap__.js.map +1 -1
  284. package/out/concepts/New__.d.ts +1 -1
  285. package/out/concepts/New__.js +5 -12
  286. package/out/concepts/New__.js.map +1 -1
  287. package/out/concepts/NullLiteral__.d.ts +1 -1
  288. package/out/concepts/NullLiteral__.js +5 -12
  289. package/out/concepts/NullLiteral__.js.map +1 -1
  290. package/out/concepts/NumericLiteral__.d.ts +1 -1
  291. package/out/concepts/NumericLiteral__.js +5 -22
  292. package/out/concepts/NumericLiteral__.js.map +1 -1
  293. package/out/concepts/OqlQueryComponent__.d.ts +1 -1
  294. package/out/concepts/OqlQueryComponent__.js +12 -34
  295. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  296. package/out/concepts/OverriddenLogic__.d.ts +1 -1
  297. package/out/concepts/OverriddenLogic__.js +67 -103
  298. package/out/concepts/OverriddenLogic__.js.map +1 -1
  299. package/out/concepts/ParamWithGroup__.d.ts +39 -0
  300. package/out/concepts/ParamWithGroup__.js +85 -0
  301. package/out/concepts/ParamWithGroup__.js.map +1 -0
  302. package/out/concepts/Param__.d.ts +1 -1
  303. package/out/concepts/Param__.js +38 -62
  304. package/out/concepts/Param__.js.map +1 -1
  305. package/out/concepts/Point__.d.ts +1 -1
  306. package/out/concepts/Point__.js +5 -22
  307. package/out/concepts/Point__.js.map +1 -1
  308. package/out/concepts/ProcessComponent__.d.ts +1 -1
  309. package/out/concepts/ProcessComponent__.js +22 -49
  310. package/out/concepts/ProcessComponent__.js.map +1 -1
  311. package/out/concepts/ProcessElement__.d.ts +1 -1
  312. package/out/concepts/ProcessElement__.js +42 -99
  313. package/out/concepts/ProcessElement__.js.map +1 -1
  314. package/out/concepts/ProcessOutcome__.d.ts +1 -1
  315. package/out/concepts/ProcessOutcome__.js +9 -21
  316. package/out/concepts/ProcessOutcome__.js.map +1 -1
  317. package/out/concepts/ProcessOutcomes__.d.ts +1 -1
  318. package/out/concepts/ProcessOutcomes__.js +13 -20
  319. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  320. package/out/concepts/Process__.d.ts +1 -1
  321. package/out/concepts/Process__.js +42 -64
  322. package/out/concepts/Process__.js.map +1 -1
  323. package/out/concepts/QueryAggregateExpression__.d.ts +1 -1
  324. package/out/concepts/QueryAggregateExpression__.js +5 -27
  325. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  326. package/out/concepts/QueryFieldExpression__.d.ts +1 -1
  327. package/out/concepts/QueryFieldExpression__.js +9 -31
  328. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  329. package/out/concepts/QueryFromExpression__.d.ts +1 -1
  330. package/out/concepts/QueryFromExpression__.js +11 -33
  331. package/out/concepts/QueryFromExpression__.js.map +1 -1
  332. package/out/concepts/QueryGroupByExpression__.d.ts +1 -1
  333. package/out/concepts/QueryGroupByExpression__.js +5 -17
  334. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  335. package/out/concepts/QueryJoinExpression__.d.ts +1 -1
  336. package/out/concepts/QueryJoinExpression__.js +16 -43
  337. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  338. package/out/concepts/QueryLimitExpression__.d.ts +1 -1
  339. package/out/concepts/QueryLimitExpression__.js +5 -22
  340. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  341. package/out/concepts/QueryOrderByExpression__.d.ts +1 -1
  342. package/out/concepts/QueryOrderByExpression__.js +5 -22
  343. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  344. package/out/concepts/QuerySelectExpression__.d.ts +1 -1
  345. package/out/concepts/QuerySelectExpression__.js +20 -27
  346. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  347. package/out/concepts/Rect__.d.ts +1 -1
  348. package/out/concepts/Rect__.js +5 -32
  349. package/out/concepts/Rect__.js.map +1 -1
  350. package/out/concepts/Return__.d.ts +1 -1
  351. package/out/concepts/Return__.js +38 -57
  352. package/out/concepts/Return__.js.map +1 -1
  353. package/out/concepts/Role__.d.ts +1 -1
  354. package/out/concepts/Role__.js +15 -37
  355. package/out/concepts/Role__.js.map +1 -1
  356. package/out/concepts/SelectMembers__.d.ts +1 -1
  357. package/out/concepts/SelectMembers__.js +15 -27
  358. package/out/concepts/SelectMembers__.js.map +1 -1
  359. package/out/concepts/SequentialPolicy__.d.ts +1 -1
  360. package/out/concepts/SequentialPolicy__.js +5 -12
  361. package/out/concepts/SequentialPolicy__.js.map +1 -1
  362. package/out/concepts/Slot__.d.ts +1 -1
  363. package/out/concepts/Slot__.js +11 -48
  364. package/out/concepts/Slot__.js.map +1 -1
  365. package/out/concepts/SqlQueryComponent__.d.ts +1 -1
  366. package/out/concepts/SqlQueryComponent__.js +10 -37
  367. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  368. package/out/concepts/Start__.d.ts +1 -1
  369. package/out/concepts/Start__.js +9 -16
  370. package/out/concepts/Start__.js.map +1 -1
  371. package/out/concepts/StaticString__.d.ts +1 -1
  372. package/out/concepts/StaticString__.js +9 -21
  373. package/out/concepts/StaticString__.js.map +1 -1
  374. package/out/concepts/StringInterpolation__.d.ts +1 -1
  375. package/out/concepts/StringInterpolation__.js +11 -18
  376. package/out/concepts/StringInterpolation__.js.map +1 -1
  377. package/out/concepts/StringLiteral__.d.ts +1 -1
  378. package/out/concepts/StringLiteral__.js +9 -21
  379. package/out/concepts/StringLiteral__.js.map +1 -1
  380. package/out/concepts/StructureProperty__.d.ts +1 -1
  381. package/out/concepts/StructureProperty__.js +23 -65
  382. package/out/concepts/StructureProperty__.js.map +1 -1
  383. package/out/concepts/Structure__.d.ts +3 -3
  384. package/out/concepts/Structure__.js +22 -44
  385. package/out/concepts/Structure__.js.map +1 -1
  386. package/out/concepts/SwitchCase__.d.ts +1 -1
  387. package/out/concepts/SwitchCase__.js +11 -23
  388. package/out/concepts/SwitchCase__.js.map +1 -1
  389. package/out/concepts/SwitchStatement__.d.ts +1 -1
  390. package/out/concepts/SwitchStatement__.js +11 -18
  391. package/out/concepts/SwitchStatement__.js.map +1 -1
  392. package/out/concepts/Theme__.d.ts +1 -1
  393. package/out/concepts/Theme__.js +13 -20
  394. package/out/concepts/Theme__.js.map +1 -1
  395. package/out/concepts/Transactional__.d.ts +1 -1
  396. package/out/concepts/Transactional__.js +11 -33
  397. package/out/concepts/Transactional__.js.map +1 -1
  398. package/out/concepts/TriggerEvent__.d.ts +1 -1
  399. package/out/concepts/TriggerEvent__.js +5 -22
  400. package/out/concepts/TriggerEvent__.js.map +1 -1
  401. package/out/concepts/TriggerLauncher__.d.ts +1 -1
  402. package/out/concepts/TriggerLauncher__.js +11 -38
  403. package/out/concepts/TriggerLauncher__.js.map +1 -1
  404. package/out/concepts/TypeAnnotation__.d.ts +4 -4
  405. package/out/concepts/TypeAnnotation__.js +28 -60
  406. package/out/concepts/TypeAnnotation__.js.map +1 -1
  407. package/out/concepts/TypeParam__.d.ts +1 -1
  408. package/out/concepts/TypeParam__.js +11 -23
  409. package/out/concepts/TypeParam__.js.map +1 -1
  410. package/out/concepts/UnaryExpression__.d.ts +1 -1
  411. package/out/concepts/UnaryExpression__.js +5 -22
  412. package/out/concepts/UnaryExpression__.js.map +1 -1
  413. package/out/concepts/Unparsed__.d.ts +1 -1
  414. package/out/concepts/Unparsed__.js +5 -17
  415. package/out/concepts/Unparsed__.js.map +1 -1
  416. package/out/concepts/UseComponent__.d.ts +1 -1
  417. package/out/concepts/UseComponent__.js +5 -22
  418. package/out/concepts/UseComponent__.js.map +1 -1
  419. package/out/concepts/ValidationRule__.d.ts +1 -1
  420. package/out/concepts/ValidationRule__.js +19 -46
  421. package/out/concepts/ValidationRule__.js.map +1 -1
  422. package/out/concepts/Variable__.d.ts +2 -2
  423. package/out/concepts/Variable__.js +37 -55
  424. package/out/concepts/Variable__.js.map +1 -1
  425. package/out/concepts/ViewBlock__.d.ts +1 -1
  426. package/out/concepts/ViewBlock__.js +5 -27
  427. package/out/concepts/ViewBlock__.js.map +1 -1
  428. package/out/concepts/ViewComponent__.d.ts +1 -1
  429. package/out/concepts/ViewComponent__.js +42 -74
  430. package/out/concepts/ViewComponent__.js.map +1 -1
  431. package/out/concepts/ViewElement__.d.ts +18 -2
  432. package/out/concepts/ViewElement__.js +194 -115
  433. package/out/concepts/ViewElement__.js.map +1 -1
  434. package/out/concepts/View__.d.ts +1 -1
  435. package/out/concepts/View__.js +66 -128
  436. package/out/concepts/View__.js.map +1 -1
  437. package/out/concepts/WhileStatement__.d.ts +1 -1
  438. package/out/concepts/WhileStatement__.js +11 -23
  439. package/out/concepts/WhileStatement__.js.map +1 -1
  440. package/out/concepts/basics/stdlib/nasl.util.js +30 -30
  441. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  442. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +2 -2
  443. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  444. package/out/concepts/index.d.ts +2 -2
  445. package/out/concepts/index.js +3 -3
  446. package/out/concepts/index.js.map +1 -1
  447. package/out/concepts/index__.d.ts +5 -1
  448. package/out/concepts/index__.js +5 -1
  449. package/out/concepts/index__.js.map +1 -1
  450. package/out/concepts/utils/asserts.d.ts +258 -54
  451. package/out/concepts/utils/asserts.js +351 -81
  452. package/out/concepts/utils/asserts.js.map +1 -1
  453. package/out/concepts/utils/quick-info.d.ts +13 -0
  454. package/out/concepts/utils/quick-info.js +51 -0
  455. package/out/concepts/utils/quick-info.js.map +1 -0
  456. package/out/concepts/utils/types.d.ts +20 -6
  457. package/out/generator/genBundleFiles.js +25 -11
  458. package/out/generator/genBundleFiles.js.map +1 -1
  459. package/out/generator/genReleaseBody.js +12 -3
  460. package/out/generator/genReleaseBody.js.map +1 -1
  461. package/out/generator/permission.js +3 -3
  462. package/out/generator/permission.js.map +1 -1
  463. package/out/manager/diagnostic.js +3 -1
  464. package/out/manager/diagnostic.js.map +1 -1
  465. package/out/server/extendBaseNode.js +6 -4
  466. package/out/server/extendBaseNode.js.map +1 -1
  467. package/out/server/formatTsUtils.d.ts +3 -3
  468. package/out/server/formatTsUtils.js.map +1 -1
  469. package/out/server/getConnector.js +18 -0
  470. package/out/server/getConnector.js.map +1 -1
  471. package/out/server/getLogics.js +62 -27
  472. package/out/server/getLogics.js.map +1 -1
  473. package/out/server/getMemberIdentifier.d.ts +4 -4
  474. package/out/server/getMemberIdentifier.js +6 -1
  475. package/out/server/getMemberIdentifier.js.map +1 -1
  476. package/out/server/naslServer.d.ts +3 -3
  477. package/out/server/naslServer.js +53 -103
  478. package/out/server/naslServer.js.map +1 -1
  479. package/out/server/translator.js +11 -17
  480. package/out/server/translator.js.map +1 -1
  481. package/out/service/storage/init.js +8 -20
  482. package/out/service/storage/init.js.map +1 -1
  483. package/out/templator/genCreateBlock.js +6 -6
  484. package/out/templator/genCreateBlock.js.map +1 -1
  485. package/out/templator/genCurdEditMultipleKeyBlock.js +16 -16
  486. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  487. package/out/templator/genCurdMultipleKeyBlock.js +36 -36
  488. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  489. package/out/templator/genGetBlock.js +4 -4
  490. package/out/templator/genGetBlock.js.map +1 -1
  491. package/out/templator/genGridViewBlock.js +12 -12
  492. package/out/templator/genGridViewBlock.js.map +1 -1
  493. package/out/templator/genListViewBlock.js +4 -4
  494. package/out/templator/genListViewBlock.js.map +1 -1
  495. package/out/templator/genQueryComponent.js +37 -32
  496. package/out/templator/genQueryComponent.js.map +1 -1
  497. package/out/templator/genSelectBlock.js +3 -3
  498. package/out/templator/genSelectBlock.js.map +1 -1
  499. package/out/templator/genTableBlock.js +10 -10
  500. package/out/templator/genTableBlock.js.map +1 -1
  501. package/out/templator/genUpdateBlock.js +8 -8
  502. package/out/templator/genUpdateBlock.js.map +1 -1
  503. package/out/templator/utils.d.ts +26 -21
  504. package/out/templator/utils.js +27 -17
  505. package/out/templator/utils.js.map +1 -1
  506. package/out/translator/utils.d.ts +2 -2
  507. package/out/utils/i18nInfo.js +7 -2
  508. package/out/utils/i18nInfo.js.map +1 -1
  509. package/out/utils/index.js +1 -1
  510. package/out/utils/index.js.map +1 -1
  511. package/out/utils/time-slicing/controller.js +48 -46
  512. package/out/utils/time-slicing/controller.js.map +1 -1
  513. package/out/utils/time-slicing/performance.js +0 -1
  514. package/out/utils/time-slicing/performance.js.map +1 -1
  515. package/package.json +1 -1
  516. package/sandbox/stdlib/nasl.util.ts +1 -2
  517. package/src/bak/translator.js +121 -43
  518. package/src/breakpoint/generator/BreakpointNode.ts +12 -0
  519. package/src/breakpoint/generator/CallbackNode.ts +17 -0
  520. package/src/breakpoint/shared/constants.ts +1 -1
  521. package/src/breakpoint/shared/utils.ts +13 -8
  522. package/src/common/BaseNode.ts +52 -64
  523. package/src/common/utils.ts +2 -2
  524. package/src/concepts/Abort__.ts +4 -5
  525. package/src/concepts/AbstractInterface__.ts +4 -5
  526. package/src/concepts/Anchor__.ts +4 -6
  527. package/src/concepts/AnonymousFunction__.ts +11 -15
  528. package/src/concepts/App__.ts +148 -157
  529. package/src/concepts/Argument__.ts +4 -8
  530. package/src/concepts/Assignee__.ts +7 -8
  531. package/src/concepts/AssignmentLine__.ts +4 -5
  532. package/src/concepts/Assignment__.ts +6 -9
  533. package/src/concepts/Attribute__.ts +4 -15
  534. package/src/concepts/AuthInterface__.ts +4 -6
  535. package/src/concepts/AuthLogicForCallInterface__.ts +16 -14
  536. package/src/concepts/AuthLogic__.ts +4 -6
  537. package/src/concepts/BackendVariable__.ts +14 -12
  538. package/src/concepts/Backend__.ts +5 -7
  539. package/src/concepts/BatchAssignment__.ts +6 -8
  540. package/src/concepts/BinaryExpression__.ts +9 -9
  541. package/src/concepts/BindAttribute__.ts +23 -25
  542. package/src/concepts/BindDirective__.ts +24 -18
  543. package/src/concepts/BindEvent__.ts +53 -29
  544. package/src/concepts/BindStyle__.ts +5 -8
  545. package/src/concepts/Block__.ts +5 -6
  546. package/src/concepts/BooleanLiteral__.ts +4 -6
  547. package/src/concepts/BusinessComponent__.ts +2659 -0
  548. package/src/concepts/BusinessLogic__.ts +376 -0
  549. package/src/concepts/CallAuthInterface__.ts +6 -7
  550. package/src/concepts/CallConnector__.ts +4 -6
  551. package/src/concepts/CallEvent__.ts +334 -0
  552. package/src/concepts/CallFunction__.ts +24 -15
  553. package/src/concepts/CallInterface__.ts +13 -12
  554. package/src/concepts/CallLogic__.ts +56 -83
  555. package/src/concepts/CallQueryComponent__.ts +137 -63
  556. package/src/concepts/Comment__.ts +4 -6
  557. package/src/concepts/CompletionProperty__.ts +4 -12
  558. package/src/concepts/ConfigGroup__.ts +5 -7
  559. package/src/concepts/ConfigPropertyValue__.ts +4 -7
  560. package/src/concepts/ConfigProperty__.ts +5 -9
  561. package/src/concepts/Configuration__.ts +5 -6
  562. package/src/concepts/Connection__.ts +5 -9
  563. package/src/concepts/ConnectorTrigger__.ts +4 -8
  564. package/src/concepts/Connector__.ts +11 -18
  565. package/src/concepts/Constant__.ts +9 -16
  566. package/src/concepts/CountersignPolicy__.ts +4 -6
  567. package/src/concepts/DataSource__.ts +5 -9
  568. package/src/concepts/DatabaseTypeAnnotation__.ts +4 -7
  569. package/src/concepts/DefaultValue__.ts +9 -8
  570. package/src/concepts/Destination__.ts +9 -13
  571. package/src/concepts/End__.ts +5 -5
  572. package/src/concepts/EntityIndex__.ts +4 -9
  573. package/src/concepts/EntityProperty__.ts +4 -19
  574. package/src/concepts/Entity__.ts +10 -30
  575. package/src/concepts/EnumItem__.ts +4 -7
  576. package/src/concepts/Enum__.ts +5 -9
  577. package/src/concepts/Event__.ts +62 -11
  578. package/src/concepts/ExternalDestination__.ts +8 -11
  579. package/src/concepts/ForEachStatement__.ts +6 -12
  580. package/src/concepts/FrontendLibrary__.ts +6 -9
  581. package/src/concepts/FrontendType__.ts +919 -0
  582. package/src/concepts/FrontendVariable__.ts +15 -9
  583. package/src/concepts/Frontend__.ts +10 -266
  584. package/src/concepts/Function__.ts +8 -12
  585. package/src/concepts/I18nInfo__.ts +4 -8
  586. package/src/concepts/Identifier__.ts +35 -22
  587. package/src/concepts/IfStatement__.ts +6 -8
  588. package/src/concepts/ImportedInterface__.ts +4 -6
  589. package/src/concepts/Integration__.ts +5 -7
  590. package/src/concepts/InterfaceParam__.ts +4 -11
  591. package/src/concepts/Interface__.ts +7 -14
  592. package/src/concepts/JSBlock__.ts +4 -6
  593. package/src/concepts/JavaLogic__.ts +4 -8
  594. package/src/concepts/LogicItem__.ts +5 -10
  595. package/src/concepts/Logic__.ts +52 -49
  596. package/src/concepts/MatchCase__.ts +12 -13
  597. package/src/concepts/Match__.ts +10 -12
  598. package/src/concepts/MemberExpression__.ts +20 -23
  599. package/src/concepts/MetadataType__.ts +6 -10
  600. package/src/concepts/MicroApp__.ts +4 -12
  601. package/src/concepts/Module__.ts +16 -26
  602. package/src/concepts/MsgTriggerEvent__.ts +5 -6
  603. package/src/concepts/MsgTriggerLauncher__.ts +5 -7
  604. package/src/concepts/MultiApprovalPolicy__.ts +4 -5
  605. package/src/concepts/Namespace__.ts +16 -21
  606. package/src/concepts/NewComposite__.ts +12 -14
  607. package/src/concepts/NewList__.ts +12 -10
  608. package/src/concepts/NewMap__.ts +12 -11
  609. package/src/concepts/New__.ts +4 -5
  610. package/src/concepts/NullLiteral__.ts +4 -5
  611. package/src/concepts/NumericLiteral__.ts +4 -7
  612. package/src/concepts/OqlQueryComponent__.ts +4 -8
  613. package/src/concepts/OverriddenLogic__.ts +33 -33
  614. package/src/concepts/ParamWithGroup__.ts +101 -0
  615. package/src/concepts/Param__.ts +17 -15
  616. package/src/concepts/Point__.ts +4 -7
  617. package/src/concepts/ProcessComponent__.ts +6 -11
  618. package/src/concepts/ProcessElement__.ts +10 -21
  619. package/src/concepts/ProcessOutcome__.ts +4 -6
  620. package/src/concepts/ProcessOutcomes__.ts +4 -5
  621. package/src/concepts/Process__.ts +10 -14
  622. package/src/concepts/QueryAggregateExpression__.ts +4 -8
  623. package/src/concepts/QueryFieldExpression__.ts +4 -8
  624. package/src/concepts/QueryFromExpression__.ts +5 -9
  625. package/src/concepts/QueryGroupByExpression__.ts +4 -6
  626. package/src/concepts/QueryJoinExpression__.ts +6 -11
  627. package/src/concepts/QueryLimitExpression__.ts +4 -7
  628. package/src/concepts/QueryOrderByExpression__.ts +4 -7
  629. package/src/concepts/QuerySelectExpression__.ts +6 -7
  630. package/src/concepts/Rect__.ts +4 -9
  631. package/src/concepts/Return__.ts +19 -21
  632. package/src/concepts/Role__.ts +4 -8
  633. package/src/concepts/SelectMembers__.ts +5 -7
  634. package/src/concepts/SequentialPolicy__.ts +4 -5
  635. package/src/concepts/Slot__.ts +4 -11
  636. package/src/concepts/SqlQueryComponent__.ts +4 -9
  637. package/src/concepts/Start__.ts +4 -5
  638. package/src/concepts/StaticString__.ts +4 -6
  639. package/src/concepts/StringInterpolation__.ts +5 -6
  640. package/src/concepts/StringLiteral__.ts +4 -6
  641. package/src/concepts/StructureProperty__.ts +4 -12
  642. package/src/concepts/Structure__.ts +6 -10
  643. package/src/concepts/SwitchCase__.ts +5 -7
  644. package/src/concepts/SwitchStatement__.ts +5 -6
  645. package/src/concepts/Theme__.ts +4 -5
  646. package/src/concepts/Transactional__.ts +4 -8
  647. package/src/concepts/TriggerEvent__.ts +4 -7
  648. package/src/concepts/TriggerLauncher__.ts +4 -9
  649. package/src/concepts/TypeAnnotation__.ts +9 -15
  650. package/src/concepts/TypeParam__.ts +4 -6
  651. package/src/concepts/UnaryExpression__.ts +4 -7
  652. package/src/concepts/Unparsed__.ts +4 -6
  653. package/src/concepts/UseComponent__.ts +4 -7
  654. package/src/concepts/ValidationRule__.ts +5 -10
  655. package/src/concepts/Variable__.ts +22 -19
  656. package/src/concepts/ViewBlock__.ts +4 -8
  657. package/src/concepts/ViewComponent__.ts +10 -16
  658. package/src/concepts/ViewElement__.ts +183 -59
  659. package/src/concepts/View__.ts +27 -37
  660. package/src/concepts/WhileStatement__.ts +5 -7
  661. package/src/concepts/basics/stdlib/nasl.util.ts +30 -30
  662. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +2 -2
  663. package/src/concepts/index.ts +2 -2
  664. package/src/concepts/index__.ts +5 -1
  665. package/src/concepts/utils/asserts.ts +367 -77
  666. package/src/concepts/utils/quick-info.ts +64 -0
  667. package/src/concepts/utils/types.ts +28 -5
  668. package/src/generator/genBundleFiles.ts +33 -15
  669. package/src/generator/genReleaseBody.ts +14 -3
  670. package/src/generator/permission.ts +8 -6
  671. package/src/server/extendBaseNode.ts +22 -20
  672. package/src/server/formatTsUtils.ts +8 -8
  673. package/src/server/getConnector.ts +21 -2
  674. package/src/server/getLogics.ts +79 -41
  675. package/src/server/getMemberIdentifier.ts +11 -5
  676. package/src/server/naslServer.ts +38 -78
  677. package/src/server/translator.ts +12 -17
  678. package/src/service/storage/init.ts +3 -4
  679. package/src/templator/genCreateBlock.ts +6 -6
  680. package/src/templator/genCurdEditMultipleKeyBlock.ts +16 -16
  681. package/src/templator/genCurdMultipleKeyBlock.ts +36 -36
  682. package/src/templator/genGetBlock.ts +4 -4
  683. package/src/templator/genGridViewBlock.ts +12 -12
  684. package/src/templator/genListViewBlock.ts +4 -4
  685. package/src/templator/genQueryComponent.ts +38 -33
  686. package/src/templator/genSelectBlock.ts +3 -3
  687. package/src/templator/genTableBlock.ts +10 -10
  688. package/src/templator/genUpdateBlock.ts +8 -8
  689. package/src/templator/utils.ts +29 -20
  690. package/src/translator/utils.ts +2 -2
  691. package/src/utils/i18nInfo.ts +7 -2
  692. package/src/utils/index.ts +1 -1
  693. package/test/concepts/binary-expression/__snapshots__/getQuickInfoOffset.spec.ts.snap +25 -0
  694. package/test/concepts/binary-expression/getQuickInfoOffset.spec.ts +19 -0
  695. package/test/concepts/call-function/__snapshots__/getQuickInfoOffset.spec.ts.snap +41 -0
  696. package/test/concepts/call-function/fixtures/from-string.json +68 -59
  697. package/test/concepts/call-function/fixtures/to-string-global-tz.json +67 -58
  698. package/test/concepts/call-function/fixtures/to-string-no-tz.json +57 -48
  699. package/test/concepts/call-function/fixtures/to-string-user-tz.json +69 -60
  700. package/test/concepts/call-function/fixtures/to-string-utc-tz.json +69 -60
  701. package/test/concepts/call-function/getQuickInfoOffset.spec.ts +19 -0
  702. package/test/concepts/call-interface/__snapshots__/getQuickInfoOffset.spec.ts.snap +86 -0
  703. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  704. package/test/concepts/call-interface/fixtures/only-interface.json +81 -72
  705. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +223 -214
  706. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +85 -76
  707. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +100 -91
  708. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +88 -79
  709. package/test/concepts/call-interface/fixtures/with-headers.json +90 -81
  710. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +88 -79
  711. package/test/concepts/call-interface/fixtures/with-query.json +90 -81
  712. package/test/concepts/call-interface/getQuickInfoOffset.spec.ts +19 -0
  713. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +4 -2
  714. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +104 -95
  715. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +209 -200
  716. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +97 -88
  717. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +124 -115
  718. package/test/concepts/call-logic/fixtures/json-deserialize.json +120 -111
  719. package/test/concepts/call-logic/fixtures/json-serialize-with-string.json +124 -115
  720. package/test/concepts/call-logic/fixtures/json-serialize.json +124 -115
  721. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +91 -82
  722. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +88 -79
  723. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +144 -135
  724. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -7
  725. package/test/concepts/identifier/fixtures/view-variable.json +145 -136
  726. package/test/concepts/new-composite/__snapshots__/getQuickInfoOffset.spec.ts.snap +104 -0
  727. package/test/concepts/new-composite/__snapshots__/toEmbeddedTS.spec.ts.snap +97 -0
  728. package/test/concepts/new-composite/__snapshots__/toJS.spec.ts.snap +43 -0
  729. package/test/concepts/new-composite/constant.ts +5 -0
  730. package/test/concepts/new-composite/fixtures/nested-transform.json +241 -0
  731. package/test/concepts/new-composite/fixtures/nested.json +146 -0
  732. package/test/concepts/new-composite/fixtures/normal.json +63 -0
  733. package/test/concepts/new-composite/getQuickInfoOffset.spec.ts +19 -0
  734. package/test/concepts/new-composite/toEmbeddedTS.spec.ts +15 -0
  735. package/test/concepts/new-composite/toJS.spec.ts +14 -0
  736. package/test/concepts/new-list/__snapshots__/getQuickInfoOffset.spec.ts.snap +165 -0
  737. package/test/concepts/new-list/__snapshots__/toEmbeddedTS.spec.ts.snap +207 -0
  738. package/test/concepts/new-list/__snapshots__/toJS.spec.ts.snap +63 -0
  739. package/test/concepts/new-list/constant.ts +5 -0
  740. package/test/concepts/new-list/fixtures/nested-map.json +117 -0
  741. package/test/concepts/new-list/fixtures/nested-tranform.json +140 -0
  742. package/test/concepts/new-list/fixtures/nested.json +107 -0
  743. package/test/concepts/new-list/fixtures/normal.json +95 -0
  744. package/test/concepts/new-list/getQuickInfoOffset.spec.ts +19 -0
  745. package/test/concepts/new-list/toEmbeddedTS.spec.ts +15 -0
  746. package/test/concepts/new-list/toJS.spec.ts +14 -0
  747. package/test/concepts/new-map/__snapshots__/getQuickInfoOffset.spec.ts.snap +115 -0
  748. package/test/concepts/new-map/__snapshots__/toEmbeddedTS.spec.ts.snap +192 -0
  749. package/test/concepts/new-map/__snapshots__/toJS.spec.ts.snap +54 -0
  750. package/test/concepts/new-map/constant.ts +5 -0
  751. package/test/concepts/new-map/fixtures/nested-transform.json +169 -0
  752. package/test/concepts/new-map/fixtures/nested.json +141 -0
  753. package/test/concepts/new-map/fixtures/normal.json +101 -0
  754. package/test/concepts/new-map/getQuickInfoOffset.spec.ts +19 -0
  755. package/test/concepts/new-map/toEmbeddedTS.spec.ts +15 -0
  756. package/test/concepts/new-map/toJS.spec.ts +14 -0
  757. package/test/concepts/utils.ts +17 -0
  758. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +1 -1
  759. package/test/concepts/view-element/fixtures/default-login.json +221 -212
  760. package/test/concepts/view-element/fixtures/default-not-found.json +183 -174
  761. package/test/concepts/view-element/fixtures/with-role-auth.json +91 -82
  762. package/test/concepts/view-element/fixtures/with-table.json +1894 -1885
  763. package/test/concepts/view-element/toVue.spec.ts +1 -0
  764. package/tsconfig.json +2 -1
  765. package/out/concepts/Paginate__.d.ts +0 -80
  766. package/out/concepts/Paginate__.js +0 -250
  767. package/out/concepts/Paginate__.js.map +0 -1
  768. package/src/concepts/Paginate__.ts +0 -287
@@ -0,0 +1,1892 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var BusinessComponent_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BusinessComponent = void 0;
37
+ const time_slicing_1 = require("../utils/time-slicing");
38
+ const translator_1 = require("../translator");
39
+ const translator_2 = __importDefault(require("../bak/translator"));
40
+ const PAGE_COMPONENT_INCLUDE_TAG_MAP = {
41
+ 'u-list-view': {
42
+ 'page-size': {
43
+ value: 'size',
44
+ label: '分页大小',
45
+ },
46
+ 'page-number': {
47
+ value: 'page',
48
+ label: '当前页数',
49
+ },
50
+ 'data-source': {
51
+ value: 'data',
52
+ label: '数据',
53
+ },
54
+ },
55
+ 'u-grid-view': {
56
+ 'page-size': {
57
+ value: 'size',
58
+ label: '分页大小',
59
+ },
60
+ 'page-number': {
61
+ value: 'page',
62
+ label: '当前页数',
63
+ },
64
+ 'data-source': {
65
+ value: 'data',
66
+ label: '数据',
67
+ },
68
+ },
69
+ 'u-list-components': {
70
+ 'data-source': {
71
+ value: 'data',
72
+ label: '数据',
73
+ },
74
+ },
75
+ 'u-table-view': {
76
+ 'page-size': {
77
+ value: 'size',
78
+ label: '分页大小',
79
+ },
80
+ 'page-number': {
81
+ value: 'page',
82
+ label: '当前页数',
83
+ },
84
+ sorting: {
85
+ value: 'sort',
86
+ label: '排序属性',
87
+ },
88
+ value: {
89
+ value: 'value',
90
+ label: '单选选中值',
91
+ },
92
+ values: {
93
+ value: 'values',
94
+ label: '多选选中值',
95
+ },
96
+ 'data-source': {
97
+ value: 'data',
98
+ label: '数据',
99
+ },
100
+ },
101
+ 'u-radios': {
102
+ value: {
103
+ value: 'value',
104
+ label: '选中值',
105
+ },
106
+ 'data-source': {
107
+ value: 'data',
108
+ label: '数据',
109
+ },
110
+ },
111
+ 'u-checkboxes': {
112
+ value: {
113
+ value: 'value',
114
+ label: '选中值',
115
+ },
116
+ 'data-source': {
117
+ value: 'data',
118
+ label: '数据',
119
+ },
120
+ },
121
+ 'u-select': {
122
+ value: {
123
+ value: 'value',
124
+ label: '选中值',
125
+ },
126
+ 'data-source': {
127
+ value: 'data',
128
+ label: '数据',
129
+ },
130
+ opened: {
131
+ value: 'opened',
132
+ label: '弹出状态',
133
+ },
134
+ 'page-size': {
135
+ value: 'size',
136
+ label: '分页大小',
137
+ },
138
+ 'page-number': {
139
+ value: 'page',
140
+ label: '当前页数',
141
+ },
142
+ },
143
+ 'u-cascader': {
144
+ value: {
145
+ value: 'value',
146
+ label: '选中值',
147
+ },
148
+ 'data-source': {
149
+ value: 'data',
150
+ label: '数据',
151
+ },
152
+ },
153
+ 'u-tree-select-new': {
154
+ value: {
155
+ value: 'value',
156
+ label: '选中值',
157
+ },
158
+ 'data-source': {
159
+ value: 'data',
160
+ label: '数据',
161
+ },
162
+ },
163
+ 'van-radio-group': {
164
+ value: {
165
+ value: 'value',
166
+ label: '选中值',
167
+ },
168
+ 'data-source': {
169
+ value: 'data',
170
+ label: '数据',
171
+ },
172
+ },
173
+ 'van-checkbox-group': {
174
+ value: {
175
+ value: 'value',
176
+ label: '选中值',
177
+ },
178
+ 'data-source': {
179
+ value: 'data',
180
+ label: '数据',
181
+ },
182
+ },
183
+ 'van-pickerson': {
184
+ pvalue: {
185
+ value: 'value',
186
+ label: '选中值',
187
+ },
188
+ 'data-source': {
189
+ value: 'data',
190
+ label: '数据',
191
+ },
192
+ 'page-size': {
193
+ value: 'size',
194
+ label: '分页大小',
195
+ },
196
+ 'page-number': {
197
+ value: 'page',
198
+ label: '当前页数',
199
+ },
200
+ },
201
+ 'van-cascader': {
202
+ value: {
203
+ value: 'value',
204
+ label: '选中值',
205
+ },
206
+ 'data-source': {
207
+ value: 'data',
208
+ label: '数据',
209
+ },
210
+ },
211
+ 'van-list-view': {
212
+ 'page-size': {
213
+ value: 'size',
214
+ label: '分页大小',
215
+ },
216
+ 'page-number': {
217
+ value: 'page',
218
+ label: '当前页数',
219
+ },
220
+ 'data-source': {
221
+ value: 'data',
222
+ label: '数据',
223
+ },
224
+ },
225
+ 'van-grid-view': {
226
+ 'page-size': {
227
+ value: 'size',
228
+ label: '分页大小',
229
+ },
230
+ 'page-number': {
231
+ value: 'page',
232
+ label: '当前页数',
233
+ },
234
+ 'data-source': {
235
+ value: 'data',
236
+ label: '数据',
237
+ },
238
+ },
239
+ 'van-for-components': {
240
+ 'data-source': {
241
+ value: 'data',
242
+ label: '数据',
243
+ },
244
+ },
245
+ };
246
+ const getBranchCopyUniCode = () => window?.BranchCopyUniCode;
247
+ const removedViewElementCache = {}; // 临时记录删除的页面元素计数的最大值
248
+ const decorators_1 = require("../decorators");
249
+ const utils = __importStar(require("../utils"));
250
+ const asserts = __importStar(require("./utils/asserts"));
251
+ const BaseNode_1 = __importDefault(require("../common/BaseNode"));
252
+ /**
253
+ * 业务组件
254
+ */
255
+ let BusinessComponent = BusinessComponent_1 = class BusinessComponent extends BaseNode_1.default {
256
+ /**
257
+ * @param source 需要合并的部分参数
258
+ */
259
+ constructor(source) {
260
+ source = Object.assign({}, BusinessComponent_1.getDefaultOptions(), source);
261
+ super(source);
262
+ /**
263
+ * 组件事件列表
264
+ */
265
+ this.events = [];
266
+ /**
267
+ * 参数分组列表
268
+ */
269
+ this.params = [];
270
+ /**
271
+ * 变量列表
272
+ */
273
+ this.variables = [];
274
+ /**
275
+ * 元素绑定事件列表
276
+ */
277
+ this.bindEvents = [];
278
+ /**
279
+ * 业务组件逻辑列表
280
+ */
281
+ this.logics = [];
282
+ /**
283
+ * 页面元素列表
284
+ */
285
+ this.elements = [];
286
+ /**
287
+ * 获取当前业务组件下所有elements上bindEvents下的logic
288
+ */
289
+ this.elementLogicRoot = [];
290
+ this.existingViewElement = new Set();
291
+ super.subConstructor(source);
292
+ }
293
+ static from(source, parentNode, parentKey) {
294
+ return super.from(source, parentNode, parentKey);
295
+ }
296
+ /**
297
+ * 从父级删除该节点
298
+ * @internal
299
+ */
300
+ _delete() {
301
+ let params = null;
302
+ if (this.parentNode) {
303
+ params = this.parentNode?.__removeBusinessComponent?.(this);
304
+ }
305
+ return params;
306
+ }
307
+ /**
308
+ * 设置业务组件名称
309
+ */
310
+ setName(name) {
311
+ const object = {
312
+ name,
313
+ };
314
+ this.update({
315
+ ...object,
316
+ field: 'name',
317
+ });
318
+ }
319
+ /**
320
+ * 设置业务组件标题
321
+ */
322
+ setTitle(title) {
323
+ const object = {
324
+ title,
325
+ };
326
+ this.update({
327
+ ...object,
328
+ });
329
+ }
330
+ /**
331
+ * 设置业务组件描述
332
+ */
333
+ setDescription(description) {
334
+ const object = {
335
+ description,
336
+ };
337
+ this.update({
338
+ ...object,
339
+ });
340
+ }
341
+ /**
342
+ * 设置icon
343
+ */
344
+ setIcon(icon) {
345
+ const object = {
346
+ icon,
347
+ };
348
+ this.update({
349
+ ...object,
350
+ });
351
+ }
352
+ getEventExistingNames(excludedList = []) {
353
+ const excludedSet = new Set(excludedList);
354
+ return (this.events || []).filter((item) => !excludedSet.has(item)).map((item) => item?.name);
355
+ }
356
+ getEventUniqueName(name = 'event1') {
357
+ return utils.unique(name, this.getEventExistingNames(), undefined, false);
358
+ }
359
+ _insertEventAt(options, index) {
360
+ const eventOptions = {};
361
+ const relationOptions = { parentNode: this, parentKey: 'events' };
362
+ const Event = (0, decorators_1.getConceptConstructor)('Event');
363
+ let event;
364
+ if (!options) {
365
+ event = Event.from({
366
+ ...eventOptions,
367
+ name: this.getEventUniqueName(),
368
+ }, this, 'events');
369
+ }
370
+ else if (typeof options === 'string') {
371
+ event = Event.from({
372
+ ...eventOptions,
373
+ name: options,
374
+ }, this, 'events');
375
+ }
376
+ else if (asserts.isEvent(options)) {
377
+ options.ensureDelete(); // 同一实例不支持多处存在
378
+ event = options;
379
+ Object.assign(event, relationOptions);
380
+ }
381
+ else {
382
+ event = Event.from({
383
+ ...eventOptions,
384
+ ...options,
385
+ }, this, 'events');
386
+ }
387
+ this.events.splice(index, 0, event);
388
+ return event;
389
+ }
390
+ insertEventAt(options, index) {
391
+ const node = this._insertEventAt(options, index);
392
+ node.create({
393
+ index,
394
+ parentNode: this,
395
+ parentKey: 'events',
396
+ });
397
+ return node;
398
+ }
399
+ _addEvent(options) {
400
+ const index = this.events.length;
401
+ return this._insertEventAt(options, index);
402
+ }
403
+ addEvent(options) {
404
+ const node = this._addEvent(options);
405
+ const index = this.events.indexOf(node);
406
+ node.create({
407
+ index,
408
+ parentNode: this,
409
+ parentKey: 'events',
410
+ });
411
+ return node;
412
+ }
413
+ getParamUniqueName(name = 'param1') {
414
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
415
+ }
416
+ _insertParamAt(options, index) {
417
+ const paramOptions = {};
418
+ const relationOptions = { parentNode: this, parentKey: 'params' };
419
+ const ParamWithGroup = (0, decorators_1.getConceptConstructor)('ParamWithGroup');
420
+ let param;
421
+ if (!options) {
422
+ param = ParamWithGroup.from({
423
+ ...paramOptions,
424
+ name: this.getParamUniqueName(),
425
+ }, this, 'params');
426
+ }
427
+ else if (typeof options === 'string') {
428
+ param = ParamWithGroup.from({
429
+ ...paramOptions,
430
+ name: options,
431
+ }, this, 'params');
432
+ }
433
+ else if (asserts.isParamWithGroup(options)) {
434
+ options.ensureDelete(); // 同一实例不支持多处存在
435
+ param = options;
436
+ Object.assign(param, relationOptions);
437
+ }
438
+ else {
439
+ param = ParamWithGroup.from({
440
+ ...paramOptions,
441
+ ...options,
442
+ }, this, 'params');
443
+ }
444
+ this.params.splice(index, 0, param);
445
+ return param;
446
+ }
447
+ insertParamAt(options, index) {
448
+ const node = this._insertParamAt(options, index);
449
+ node.create({
450
+ index,
451
+ parentNode: this,
452
+ parentKey: 'params',
453
+ });
454
+ return node;
455
+ }
456
+ _addParam(options) {
457
+ const index = this.params.length;
458
+ return this._insertParamAt(options, index);
459
+ }
460
+ addParam(options) {
461
+ const node = this._addParam(options);
462
+ const index = this.params.indexOf(node);
463
+ node.create({
464
+ index,
465
+ parentNode: this,
466
+ parentKey: 'params',
467
+ });
468
+ return node;
469
+ }
470
+ getVariableUniqueName(name = 'variable1') {
471
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
472
+ }
473
+ _insertVariableAt(options, index) {
474
+ const variableOptions = {};
475
+ const relationOptions = { parentNode: this, parentKey: 'variables' };
476
+ const Variable = (0, decorators_1.getConceptConstructor)('Variable');
477
+ let variable;
478
+ if (!options) {
479
+ variable = Variable.from({
480
+ ...variableOptions,
481
+ name: this.getVariableUniqueName(),
482
+ }, this, 'variables');
483
+ }
484
+ else if (typeof options === 'string') {
485
+ variable = Variable.from({
486
+ ...variableOptions,
487
+ name: options,
488
+ }, this, 'variables');
489
+ }
490
+ else if (asserts.isVariable(options)) {
491
+ options.ensureDelete(); // 同一实例不支持多处存在
492
+ variable = options;
493
+ Object.assign(variable, relationOptions);
494
+ }
495
+ else {
496
+ variable = Variable.from({
497
+ ...variableOptions,
498
+ ...options,
499
+ }, this, 'variables');
500
+ }
501
+ this.variables.splice(index, 0, variable);
502
+ return variable;
503
+ }
504
+ insertVariableAt(options, index) {
505
+ const node = this._insertVariableAt(options, index);
506
+ node.create({
507
+ index,
508
+ parentNode: this,
509
+ parentKey: 'variables',
510
+ });
511
+ return node;
512
+ }
513
+ _addVariable(options) {
514
+ const index = this.variables.length;
515
+ return this._insertVariableAt(options, index);
516
+ }
517
+ addVariable(options) {
518
+ const node = this._addVariable(options);
519
+ const index = this.variables.indexOf(node);
520
+ node.create({
521
+ index,
522
+ parentNode: this,
523
+ parentKey: 'variables',
524
+ });
525
+ return node;
526
+ }
527
+ getBindEventExistingNames(excludedList = []) {
528
+ const excludedSet = new Set(excludedList);
529
+ return (this.bindEvents || []).filter((item) => !excludedSet.has(item)).map((item) => item?.name);
530
+ }
531
+ getBindEventUniqueName(name = 'bindEvent1') {
532
+ return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
533
+ }
534
+ _insertBindEventAt(options, index) {
535
+ const bindEventOptions = {};
536
+ const relationOptions = { parentNode: this, parentKey: 'bindEvents' };
537
+ const BindEvent = (0, decorators_1.getConceptConstructor)('BindEvent');
538
+ let bindEvent;
539
+ if (!options) {
540
+ bindEvent = BindEvent.from({
541
+ ...bindEventOptions,
542
+ name: this.getBindEventUniqueName(),
543
+ }, this, 'bindEvents');
544
+ }
545
+ else if (typeof options === 'string') {
546
+ bindEvent = BindEvent.from({
547
+ ...bindEventOptions,
548
+ name: options,
549
+ }, this, 'bindEvents');
550
+ }
551
+ else if (asserts.isBindEvent(options)) {
552
+ options.ensureDelete(); // 同一实例不支持多处存在
553
+ bindEvent = options;
554
+ Object.assign(bindEvent, relationOptions);
555
+ }
556
+ else {
557
+ bindEvent = BindEvent.from({
558
+ ...bindEventOptions,
559
+ ...options,
560
+ }, this, 'bindEvents');
561
+ }
562
+ this.bindEvents.splice(index, 0, bindEvent);
563
+ return bindEvent;
564
+ }
565
+ insertBindEventAt(options, index) {
566
+ const node = this._insertBindEventAt(options, index);
567
+ node.create({
568
+ index,
569
+ parentNode: this,
570
+ parentKey: 'bindEvents',
571
+ });
572
+ return node;
573
+ }
574
+ _addBindEvent(options) {
575
+ const index = this.bindEvents.length;
576
+ return this._insertBindEventAt(options, index);
577
+ }
578
+ addBindEvent(options) {
579
+ const node = this._addBindEvent(options);
580
+ const index = this.bindEvents.indexOf(node);
581
+ node.create({
582
+ index,
583
+ parentNode: this,
584
+ parentKey: 'bindEvents',
585
+ });
586
+ return node;
587
+ }
588
+ getLogicExistingNames(excludedList = []) {
589
+ const excludedSet = new Set(excludedList);
590
+ return (this.logics || []).filter((item) => !excludedSet.has(item)).map((item) => item?.name);
591
+ }
592
+ getLogicUniqueName(name = 'logic1') {
593
+ return utils.unique(name, this.getLogicExistingNames(), undefined, false);
594
+ }
595
+ _insertLogicAt(options, index) {
596
+ const logicOptions = {};
597
+ const relationOptions = { parentNode: this, parentKey: 'logics' };
598
+ const BusinessLogic = (0, decorators_1.getConceptConstructor)('BusinessLogic');
599
+ let logic;
600
+ if (!options) {
601
+ logic = BusinessLogic.from({
602
+ ...logicOptions,
603
+ name: this.getLogicUniqueName(),
604
+ }, this, 'logics');
605
+ }
606
+ else if (typeof options === 'string') {
607
+ logic = BusinessLogic.from({
608
+ ...logicOptions,
609
+ name: options,
610
+ }, this, 'logics');
611
+ }
612
+ else if (asserts.isBusinessLogic(options)) {
613
+ options.ensureDelete(); // 同一实例不支持多处存在
614
+ logic = options;
615
+ Object.assign(logic, relationOptions);
616
+ }
617
+ else {
618
+ logic = BusinessLogic.from({
619
+ ...logicOptions,
620
+ ...options,
621
+ }, this, 'logics');
622
+ }
623
+ this.logics.splice(index, 0, logic);
624
+ return logic;
625
+ }
626
+ insertLogicAt(options, index) {
627
+ const node = this._insertLogicAt(options, index);
628
+ node.create({
629
+ index,
630
+ parentNode: this,
631
+ parentKey: 'logics',
632
+ });
633
+ return node;
634
+ }
635
+ _addLogic(options) {
636
+ const index = this.logics.length;
637
+ return this._insertLogicAt(options, index);
638
+ }
639
+ addLogic(options) {
640
+ const node = this._addLogic(options);
641
+ const index = this.logics.indexOf(node);
642
+ node.create({
643
+ index,
644
+ parentNode: this,
645
+ parentKey: 'logics',
646
+ });
647
+ return node;
648
+ }
649
+ _insertViewElementAt(options, index) {
650
+ const viewElementOptions = {};
651
+ const relationOptions = { parentNode: this, parentKey: 'elements' };
652
+ const ViewElement = (0, decorators_1.getConceptConstructor)('ViewElement');
653
+ let viewElement;
654
+ if (!options) {
655
+ viewElement = ViewElement.from({
656
+ ...viewElementOptions,
657
+ name: this.getViewElementUniqueName(),
658
+ }, this, 'elements');
659
+ }
660
+ else if (typeof options === 'string') {
661
+ viewElement = ViewElement.from({
662
+ ...viewElementOptions,
663
+ name: options,
664
+ }, this, 'elements');
665
+ }
666
+ else if (asserts.isViewElement(options)) {
667
+ options.ensureDelete(); // 同一实例不支持多处存在
668
+ viewElement = options;
669
+ Object.assign(viewElement, relationOptions);
670
+ }
671
+ else {
672
+ viewElement = ViewElement.from({
673
+ ...viewElementOptions,
674
+ ...options,
675
+ }, this, 'elements');
676
+ }
677
+ this.elements.splice(index, 0, viewElement);
678
+ return viewElement;
679
+ }
680
+ insertViewElementAt(options, index) {
681
+ const node = this._insertViewElementAt(options, index);
682
+ node.create({
683
+ index,
684
+ parentNode: this,
685
+ parentKey: 'elements',
686
+ });
687
+ return node;
688
+ }
689
+ _addViewElement(options) {
690
+ const index = this.elements.length;
691
+ return this._insertViewElementAt(options, index);
692
+ }
693
+ addViewElement(options) {
694
+ const node = this._addViewElement(options);
695
+ const index = this.elements.indexOf(node);
696
+ node.create({
697
+ index,
698
+ parentNode: this,
699
+ parentKey: 'elements',
700
+ });
701
+ return node;
702
+ }
703
+ removeEvent(options) {
704
+ let event;
705
+ if (typeof options === 'string') {
706
+ event = this.events.find((item) => item.name === options);
707
+ if (!event) {
708
+ throw new Error('找不到组件事件 ' + options);
709
+ }
710
+ }
711
+ else {
712
+ event = options;
713
+ }
714
+ return event.delete();
715
+ }
716
+ __removeEvent(event) {
717
+ const parentKey = event.parentKey;
718
+ const params = {
719
+ parentNode: this,
720
+ parentKey,
721
+ index: -1,
722
+ object: null,
723
+ oldObject: event,
724
+ };
725
+ if (parentKey) {
726
+ params.parentKey = parentKey;
727
+ // @ts-ignore
728
+ const t = this.__v_raw || this;
729
+ // @ts-ignore
730
+ const n = event.__v_raw || event;
731
+ if (Array.isArray(t[parentKey])) {
732
+ // @ts-ignore
733
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
734
+ ~index && this[parentKey].splice(index, 1);
735
+ params.index = index;
736
+ }
737
+ else {
738
+ const q = t[parentKey];
739
+ if ((q.__v_raw || q) === n) {
740
+ params.index = 0;
741
+ this[parentKey] = undefined;
742
+ }
743
+ }
744
+ }
745
+ return params;
746
+ }
747
+ removeParam(options) {
748
+ let param;
749
+ if (typeof options === 'string') {
750
+ param = this.params.find((item) => item.name === options);
751
+ if (!param) {
752
+ throw new Error('找不到参数分组 ' + options);
753
+ }
754
+ }
755
+ else {
756
+ param = options;
757
+ }
758
+ return param.delete();
759
+ }
760
+ __removeParam(param) {
761
+ const parentKey = param.parentKey;
762
+ const params = {
763
+ parentNode: this,
764
+ parentKey,
765
+ index: -1,
766
+ object: null,
767
+ oldObject: param,
768
+ };
769
+ if (parentKey) {
770
+ params.parentKey = parentKey;
771
+ // @ts-ignore
772
+ const t = this.__v_raw || this;
773
+ // @ts-ignore
774
+ const n = param.__v_raw || param;
775
+ if (Array.isArray(t[parentKey])) {
776
+ // @ts-ignore
777
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
778
+ ~index && this[parentKey].splice(index, 1);
779
+ params.index = index;
780
+ }
781
+ else {
782
+ const q = t[parentKey];
783
+ if ((q.__v_raw || q) === n) {
784
+ params.index = 0;
785
+ this[parentKey] = undefined;
786
+ }
787
+ }
788
+ }
789
+ return params;
790
+ }
791
+ removeVariable(options) {
792
+ let variable;
793
+ if (typeof options === 'string') {
794
+ variable = this.variables.find((item) => item.name === options);
795
+ if (!variable) {
796
+ throw new Error('找不到变量 ' + options);
797
+ }
798
+ }
799
+ else {
800
+ variable = options;
801
+ }
802
+ return variable.delete();
803
+ }
804
+ __removeVariable(variable) {
805
+ const parentKey = variable.parentKey;
806
+ const params = {
807
+ parentNode: this,
808
+ parentKey,
809
+ index: -1,
810
+ object: null,
811
+ oldObject: variable,
812
+ };
813
+ if (parentKey) {
814
+ params.parentKey = parentKey;
815
+ // @ts-ignore
816
+ const t = this.__v_raw || this;
817
+ // @ts-ignore
818
+ const n = variable.__v_raw || variable;
819
+ if (Array.isArray(t[parentKey])) {
820
+ // @ts-ignore
821
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
822
+ ~index && this[parentKey].splice(index, 1);
823
+ params.index = index;
824
+ }
825
+ else {
826
+ const q = t[parentKey];
827
+ if ((q.__v_raw || q) === n) {
828
+ params.index = 0;
829
+ this[parentKey] = undefined;
830
+ }
831
+ }
832
+ }
833
+ return params;
834
+ }
835
+ removeBindEvent(options) {
836
+ let bindEvent;
837
+ if (typeof options === 'string') {
838
+ bindEvent = this.bindEvents.find((item) => item.name === options);
839
+ if (!bindEvent) {
840
+ throw new Error('找不到元素绑定事件 ' + options);
841
+ }
842
+ }
843
+ else {
844
+ bindEvent = options;
845
+ }
846
+ return bindEvent.delete();
847
+ }
848
+ __removeBindEvent(bindEvent) {
849
+ const parentKey = bindEvent.parentKey;
850
+ const params = {
851
+ parentNode: this,
852
+ parentKey,
853
+ index: -1,
854
+ object: null,
855
+ oldObject: bindEvent,
856
+ };
857
+ if (parentKey) {
858
+ params.parentKey = parentKey;
859
+ // @ts-ignore
860
+ const t = this.__v_raw || this;
861
+ // @ts-ignore
862
+ const n = bindEvent.__v_raw || bindEvent;
863
+ if (Array.isArray(t[parentKey])) {
864
+ // @ts-ignore
865
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
866
+ ~index && this[parentKey].splice(index, 1);
867
+ params.index = index;
868
+ }
869
+ else {
870
+ const q = t[parentKey];
871
+ if ((q.__v_raw || q) === n) {
872
+ params.index = 0;
873
+ this[parentKey] = undefined;
874
+ }
875
+ }
876
+ }
877
+ return params;
878
+ }
879
+ removeLogic(options) {
880
+ let logic;
881
+ if (typeof options === 'string') {
882
+ logic = this.logics.find((item) => item.name === options);
883
+ if (!logic) {
884
+ throw new Error('找不到业务组件逻辑 ' + options);
885
+ }
886
+ }
887
+ else {
888
+ logic = options;
889
+ }
890
+ return logic.delete();
891
+ }
892
+ __removeLogic(logic) {
893
+ const parentKey = logic.parentKey;
894
+ const params = {
895
+ parentNode: this,
896
+ parentKey,
897
+ index: -1,
898
+ object: null,
899
+ oldObject: logic,
900
+ };
901
+ if (parentKey) {
902
+ params.parentKey = parentKey;
903
+ // @ts-ignore
904
+ const t = this.__v_raw || this;
905
+ // @ts-ignore
906
+ const n = logic.__v_raw || logic;
907
+ if (Array.isArray(t[parentKey])) {
908
+ // @ts-ignore
909
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
910
+ ~index && this[parentKey].splice(index, 1);
911
+ params.index = index;
912
+ }
913
+ else {
914
+ const q = t[parentKey];
915
+ if ((q.__v_raw || q) === n) {
916
+ params.index = 0;
917
+ this[parentKey] = undefined;
918
+ }
919
+ }
920
+ }
921
+ return params;
922
+ }
923
+ removeViewElement(options) {
924
+ let viewElement;
925
+ if (typeof options === 'string') {
926
+ viewElement = this.elements.find((item) => item.name === options);
927
+ if (!viewElement) {
928
+ throw new Error('找不到页面元素 ' + options);
929
+ }
930
+ }
931
+ else {
932
+ viewElement = options;
933
+ }
934
+ return viewElement.delete();
935
+ }
936
+ __removeViewElement(viewElement) {
937
+ const parentKey = viewElement.parentKey;
938
+ const params = {
939
+ parentNode: this,
940
+ parentKey,
941
+ index: -1,
942
+ object: null,
943
+ oldObject: viewElement,
944
+ };
945
+ if (parentKey) {
946
+ params.parentKey = parentKey;
947
+ // @ts-ignore
948
+ const t = this.__v_raw || this;
949
+ // @ts-ignore
950
+ const n = viewElement.__v_raw || viewElement;
951
+ if (Array.isArray(t[parentKey])) {
952
+ // @ts-ignore
953
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
954
+ ~index && this[parentKey].splice(index, 1);
955
+ params.index = index;
956
+ }
957
+ else {
958
+ const q = t[parentKey];
959
+ if ((q.__v_raw || q) === n) {
960
+ params.index = 0;
961
+ this[parentKey] = undefined;
962
+ }
963
+ }
964
+ }
965
+ return params;
966
+ }
967
+ //================================================================================
968
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
969
+ // 自动生成的代码已结束。下面可以手动编写。
970
+ //================================================================================
971
+ static getDefaultOptions() {
972
+ return {
973
+ title: '业务组件',
974
+ };
975
+ }
976
+ getNamespace() {
977
+ if (this.parentNode && this.parentNode.getNamespace) {
978
+ const parentNamespace = this.parentNode.getNamespace();
979
+ const parentName = this.parentNode.name;
980
+ const arr = [parentNamespace];
981
+ if (this.parentNode.concept !== 'App' && parentName) {
982
+ arr.push(parentName);
983
+ }
984
+ return `${arr.join('.')}.businessComponents`;
985
+ }
986
+ throw new Error('无法获取命名空间,请设置 parentNode!');
987
+ }
988
+ getTsNamespace() {
989
+ const parentNodeNamespace = this.getNamespace();
990
+ let tsCalleeNamespace = parentNodeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
991
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
992
+ return tsCalleeNamespace;
993
+ }
994
+ getElementLogicRoot() {
995
+ const Param = (0, decorators_1.getConceptConstructor)('Param');
996
+ const logics = [];
997
+ // 页面上的绑定的事件
998
+ this.bindEvents.forEach((bindEvent) => {
999
+ bindEvent.logics.forEach((logic) => {
1000
+ // 键盘事件
1001
+ if (['keydown', 'keyup'].includes(bindEvent.name)) {
1002
+ logic.virtualParams = [
1003
+ Param.from({
1004
+ name: 'event',
1005
+ typeAnnotation: null,
1006
+ }, logic, 'virtualParams'),
1007
+ ];
1008
+ }
1009
+ // 生命周期没有event
1010
+ logics.push(logic);
1011
+ });
1012
+ });
1013
+ this.elements.forEach((item) => {
1014
+ utils.traverse((current) => {
1015
+ current.node.bindEvents.forEach((bindEvent) => {
1016
+ bindEvent.logics.forEach((logic) => {
1017
+ if (logic.name.startsWith('__')) {
1018
+ return;
1019
+ }
1020
+ // 绑定参数才有 event 的 current
1021
+ logic.virtualParams = bindEvent.getContextRenderLogicParams(logic);
1022
+ logics.push(logic);
1023
+ });
1024
+ });
1025
+ }, { node: item });
1026
+ });
1027
+ if (logics.length) {
1028
+ const expanded = (this.elementLogicRoot.length && this.elementLogicRoot[0].expanded) || false;
1029
+ this.elementLogicRoot = [
1030
+ {
1031
+ concept: 'elementLogicRoot',
1032
+ expanded,
1033
+ children: logics,
1034
+ },
1035
+ ];
1036
+ }
1037
+ else {
1038
+ this.elementLogicRoot = [];
1039
+ }
1040
+ }
1041
+ getVarExistingNames(excludedList = []) {
1042
+ const excludedSet = new Set(excludedList);
1043
+ const varList = [];
1044
+ if (Array.isArray(this.params)) {
1045
+ varList.push(...this.params);
1046
+ }
1047
+ if (Array.isArray(this.variables)) {
1048
+ varList.push(...this.variables);
1049
+ }
1050
+ if (Array.isArray(this.logics)) {
1051
+ this.logics.forEach((logic) => {
1052
+ varList.push(logic);
1053
+ if (Array.isArray(logic.params)) {
1054
+ varList.push(...logic.params);
1055
+ }
1056
+ if (Array.isArray(logic.returns)) {
1057
+ varList.push(...logic.returns);
1058
+ }
1059
+ if (Array.isArray(logic.variables)) {
1060
+ varList.push(...logic.variables);
1061
+ }
1062
+ });
1063
+ }
1064
+ // 事件逻辑的变量不允许和页面逻辑下的重复
1065
+ if (Array.isArray(this.elementLogicRoot) && this.elementLogicRoot.length) {
1066
+ this.elementLogicRoot[0]?.children.forEach((logic) => {
1067
+ if (Array.isArray(logic.variables)) {
1068
+ varList.push(...logic.variables);
1069
+ }
1070
+ });
1071
+ }
1072
+ return varList.filter((item) => !excludedSet.has(item)).map((item) => item.name);
1073
+ }
1074
+ // 收集已经存在的ViewElement
1075
+ collectExistingViewElementName(excludedList = []) {
1076
+ const excludedSet = new Set(excludedList);
1077
+ this.elements.forEach((element) => {
1078
+ utils.traverse(({ node }) => {
1079
+ if (!excludedSet.has(node)) {
1080
+ this.existingViewElement.add(node.name);
1081
+ }
1082
+ }, {
1083
+ node: element,
1084
+ });
1085
+ });
1086
+ }
1087
+ // 获取当前业务组件的所有组件的名字
1088
+ getViewElementExistingNames(excludedList = []) {
1089
+ if (!this.existingViewElement.size) {
1090
+ this.collectExistingViewElementName();
1091
+ }
1092
+ return Array.from(this.existingViewElement);
1093
+ }
1094
+ getViewElementUniqueNameOld(name = 'viewElement1') {
1095
+ this.collectExistingViewElementName();
1096
+ const viewElementUniqueName = utils.unique(name, this.existingViewElement);
1097
+ this.existingViewElement.add(viewElementUniqueName);
1098
+ return viewElementUniqueName;
1099
+ }
1100
+ getViewElementUniqueName(name = 'viewElement_1') {
1101
+ this.collectExistingViewElementName();
1102
+ const BranchCopyUniCode = getBranchCopyUniCode();
1103
+ let newName = name;
1104
+ const prefix = name.replace(/\d*$/, '');
1105
+ if (BranchCopyUniCode && prefix.indexOf(`_${BranchCopyUniCode}_`) === -1) {
1106
+ newName = name.replace(/\d*$/, (m) => `_${BranchCopyUniCode}_${m}`);
1107
+ }
1108
+ // 主分支无 BranchCopyUniCode
1109
+ if (!BranchCopyUniCode && prefix.at(-1) !== '_') {
1110
+ newName = name.replace(/\d*$/, (m) => `_${m}`);
1111
+ }
1112
+ const newPrefix = newName.replace(/\d*$/, '');
1113
+ const newPrefixNum = removedViewElementCache?.[newPrefix] ? removedViewElementCache[newPrefix] : 1;
1114
+ const startNum = newPrefixNum < Number.MAX_SAFE_INTEGER ? newPrefixNum + 1 : BigInt(newPrefixNum) + BigInt(1);
1115
+ const viewElementUniqueName = utils.uniqueMax(newName, this.existingViewElement, removedViewElementCache?.[newPrefix] ? startNum : newPrefixNum);
1116
+ this.existingViewElement.add(viewElementUniqueName);
1117
+ return viewElementUniqueName;
1118
+ }
1119
+ // 获取当前element,铺平
1120
+ elementsMethods(elements, allMethods, parentNodeNames) {
1121
+ if (elements) {
1122
+ elements.forEach((item) => {
1123
+ const { bindAttrs = [], name } = item;
1124
+ const isDataSource = bindAttrs.some((attr) => attr.name === 'data-source');
1125
+ const isInclude = parentNodeNames.includes(name);
1126
+ allMethods.push(item);
1127
+ if (item.children) {
1128
+ if (isDataSource) {
1129
+ if (isInclude) {
1130
+ this.elementsMethods(item.children, allMethods, parentNodeNames);
1131
+ }
1132
+ }
1133
+ else {
1134
+ this.elementsMethods(item.children, allMethods, parentNodeNames);
1135
+ }
1136
+ }
1137
+ });
1138
+ }
1139
+ }
1140
+ mergeBlock({ code, nodePath, position, cb }) {
1141
+ const ViewElement = (0, decorators_1.getConceptConstructor)('ViewElement');
1142
+ const Logic = (0, decorators_1.getConceptConstructor)('Logic');
1143
+ const ParamWithGroup = (0, decorators_1.getConceptConstructor)('ParamWithGroup');
1144
+ const Variable = (0, decorators_1.getConceptConstructor)('Variable');
1145
+ const BindEvent = (0, decorators_1.getConceptConstructor)('BindEvent');
1146
+ const Structure = (0, decorators_1.getConceptConstructor)('Structure');
1147
+ const template = utils.sliceTagContent(code, 'template');
1148
+ let targetNode = this.getAncestor('App')?.findNodeByPath(nodePath);
1149
+ let parentNode = position === 'append' ? targetNode : targetNode.parentNode;
1150
+ const definitionStr = utils.sliceTagContent(code, 'definition') || '{}';
1151
+ const definition = JSON.parse(definitionStr);
1152
+ let node = null;
1153
+ if (template) {
1154
+ node = ViewElement.fromHTML(template, {
1155
+ view: this,
1156
+ definition,
1157
+ });
1158
+ if (!parentNode) {
1159
+ return;
1160
+ }
1161
+ if (position === 'append') {
1162
+ parentNode.addViewElement(node);
1163
+ cb && cb(parentNode, node);
1164
+ }
1165
+ else {
1166
+ const index = targetNode.getIndexOfParent();
1167
+ if (position === 'insertBefore') {
1168
+ parentNode.insertViewElementAt(node, index);
1169
+ }
1170
+ else if (position === 'insertAfter') {
1171
+ parentNode.insertViewElementAt(node, index + 1);
1172
+ }
1173
+ }
1174
+ }
1175
+ // 服务端逻辑
1176
+ if (Array.isArray(definition.logics)) {
1177
+ definition.logics.forEach((logicOption) => {
1178
+ const logic = Logic.from({
1179
+ ...logicOption,
1180
+ }, this.rootNode, 'logics');
1181
+ this.rootNode.addLogic(logic);
1182
+ });
1183
+ }
1184
+ // 全局结构体
1185
+ if (Array.isArray(definition.structures)) {
1186
+ definition.structures.forEach((structureOption) => {
1187
+ const structure = Structure.from({
1188
+ ...structureOption,
1189
+ }, this.rootNode, 'structures');
1190
+ this.rootNode.addStructure(structure);
1191
+ });
1192
+ }
1193
+ // 页面入参
1194
+ if (Array.isArray(definition.viewParams)) {
1195
+ definition.viewParams.forEach((paramsOption) => {
1196
+ const param = ParamWithGroup.from({
1197
+ ...paramsOption,
1198
+ }, this, 'params');
1199
+ this._addParam(param);
1200
+ param.addParamsPrepare();
1201
+ });
1202
+ }
1203
+ // 页面变量
1204
+ if (Array.isArray(definition.viewVariables)) {
1205
+ definition.viewVariables.forEach((variableOption) => {
1206
+ const variable = Variable.from({
1207
+ ...variableOption,
1208
+ }, this, 'variables');
1209
+ this.addVariable(variable);
1210
+ });
1211
+ }
1212
+ // 页面事件
1213
+ if (Array.isArray(definition.viewBindEvents)) {
1214
+ definition.viewBindEvents.forEach((eventOption) => {
1215
+ const newLogic = definition.viewLogics.find((logic) => eventOption.calleeName === logic.name);
1216
+ const bindEvent = this.bindEvents.find((currentEventItem) => currentEventItem.name === eventOption.name);
1217
+ // 如果没有event对象就先新增一个,如果已经有了就在内部添加logic
1218
+ if (!bindEvent) {
1219
+ const event = BindEvent.from({
1220
+ ...eventOption,
1221
+ calleeName: '',
1222
+ logics: [newLogic],
1223
+ }, this, 'events');
1224
+ this.addBindEvent(event);
1225
+ }
1226
+ else {
1227
+ bindEvent.addLogic(newLogic);
1228
+ }
1229
+ });
1230
+ }
1231
+ return node;
1232
+ }
1233
+ onChange($event) {
1234
+ this.emit('change', $event);
1235
+ }
1236
+ /**
1237
+ * 转换成设计器中使用的 Vue template 内容
1238
+ * @param options
1239
+ */
1240
+ genDesignerVueTemplate(options) {
1241
+ return this.elements
1242
+ .map((element) => `${element.toDesignerVue({
1243
+ isRoot: true,
1244
+ asCompontent: options?.asCompontent,
1245
+ })}\n`)
1246
+ .join('');
1247
+ }
1248
+ get frontendType() {
1249
+ return this.getAncestor('FrontendType');
1250
+ }
1251
+ get path() {
1252
+ return `/${this.frontendType?.kind}/${this.name}`;
1253
+ }
1254
+ get slotElems() {
1255
+ const slotElems = [];
1256
+ this.elements.forEach((element) => {
1257
+ utils.traverse(({ node }) => {
1258
+ if (node.tag === 'slot') {
1259
+ slotElems.push(node);
1260
+ }
1261
+ }, {
1262
+ node: element,
1263
+ });
1264
+ });
1265
+ return slotElems;
1266
+ }
1267
+ /**
1268
+ * 生成宿主语言的文件路径
1269
+ * @param name 一般不用传,用于 rename
1270
+ */
1271
+ getEmbeddedFilePath(name = this.name) {
1272
+ return `/embedded/${this.rootNode?.name || this.parentNode.name}/frontendTypes/${this.getAncestor('FrontendType')?.name}/${name}.ts`;
1273
+ }
1274
+ *toEmbeddedTSFile() {
1275
+ let code = `namespace ${this.getTsNamespace()} {\n`;
1276
+ const state = (0, translator_1.createCompilerState)(code, {
1277
+ tabSize: 1,
1278
+ });
1279
+ try {
1280
+ code += yield* this.toEmbeddedTS(state);
1281
+ }
1282
+ catch (err) {
1283
+ code += '';
1284
+ console.log(err);
1285
+ }
1286
+ code += '}\n';
1287
+ return {
1288
+ code,
1289
+ filePath: this.getEmbeddedFilePath(),
1290
+ sourceMap: state.sourceMap,
1291
+ };
1292
+ }
1293
+ getAncestorViewElementsWithDataSource(logic) {
1294
+ let element = logic;
1295
+ const viewElements = [];
1296
+ while (element) {
1297
+ if (element.concept &&
1298
+ element.concept === 'ViewElement' &&
1299
+ element.bindAttrs.find((bAttr) => bAttr.name === 'data-source')) {
1300
+ viewElements.push(element);
1301
+ }
1302
+ element = element.parentNode;
1303
+ }
1304
+ return viewElements;
1305
+ }
1306
+ *handleCurrentItemCode(code, logic) {
1307
+ const viewElementsWithDataSource = this.getAncestorViewElementsWithDataSource(logic);
1308
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(viewElementsWithDataSource, function* wrapForEach(viewElement, index) {
1309
+ const currentIndex = viewElementsWithDataSource.length - 1 - index;
1310
+ const currentItemCode = `current${currentIndex === 0 ? '' : currentIndex}.item`;
1311
+ if (code.includes(currentItemCode)) {
1312
+ const dataSource = viewElement.bindAttrs.find((bAttr) => bAttr.name === 'data-source');
1313
+ if (dataSource) {
1314
+ const businessComponent = viewElement.getAncestor('BusinessComponent');
1315
+ const dataSourceTS = yield* dataSource.expression.toEmbeddedTS();
1316
+ const logic = businessComponent.logics.find((logic) => logic.name === dataSourceTS);
1317
+ if (logic) {
1318
+ code = code.replaceAll(currentItemCode, `nasl.ui.getCurrentItemType(${dataSourceTS}(${logic.params.map(() => 'null').join(',')}))`);
1319
+ }
1320
+ else {
1321
+ const variable = businessComponent.variables.find((variable) => variable.name === dataSourceTS);
1322
+ code = code.replaceAll(currentItemCode, `nasl.ui.getCurrentItemType(${variable ? variable.name : dataSourceTS})`);
1323
+ }
1324
+ }
1325
+ }
1326
+ });
1327
+ return code;
1328
+ }
1329
+ removeExistingViewElement(viewElement) {
1330
+ if (this.existingViewElement.has(viewElement.name)) {
1331
+ this.existingViewElement.delete(viewElement.name);
1332
+ }
1333
+ const prefix = viewElement?.name.replace(/\d*$/, '');
1334
+ let lastDigit = viewElement?.name.match(/\d+$/)?.[0];
1335
+ if (lastDigit === undefined)
1336
+ return;
1337
+ //@ts-ignore
1338
+ lastDigit = lastDigit < Number.MAX_SAFE_INTEGER ? parseInt(lastDigit) : BigInt(lastDigit);
1339
+ if (removedViewElementCache?.[prefix]) {
1340
+ //@ts-ignore
1341
+ if (lastDigit > removedViewElementCache[prefix])
1342
+ //@ts-ignore
1343
+ removedViewElementCache[prefix] = lastDigit;
1344
+ }
1345
+ else {
1346
+ //@ts-ignore
1347
+ removedViewElementCache[prefix] = lastDigit;
1348
+ }
1349
+ }
1350
+ *getRightCode(code, assignment, rightNode) {
1351
+ code = code.replaceAll('\n', ' ');
1352
+ const logic = assignment.logic;
1353
+ const logicRtn = logic?.returns[0];
1354
+ // 调用接口,参数替换成 null
1355
+ if (asserts.isCallInterface(rightNode)) {
1356
+ const { _interface } = rightNode.getModuleInterface();
1357
+ return _interface
1358
+ ? `${rightNode.tsCalleeKey}(${_interface.params.map(() => 'null').join(',')})`
1359
+ : null;
1360
+ }
1361
+ // 调用服务端逻辑,参数替换成 null
1362
+ if (asserts.isCallLogic(rightNode) && rightNode.calleeNamespace === 'app.logics') {
1363
+ const calleeName = rightNode?.calleeName;
1364
+ const calleeLogic = this.getAncestor('App').logics.find((l) => l.name === calleeName);
1365
+ return calleeLogic ? `app.logics.${calleeName}(${calleeLogic.params.map(() => 'null').join(',')})` : null;
1366
+ }
1367
+ // view 局部变量,申明提升前增加判断,使用 logic 内的 result 直接替换成对应 logic,logic 内部变量替换成 null
1368
+ if (logicRtn && code.includes(logicRtn.name)) {
1369
+ if (code === logicRtn.name)
1370
+ return `${logic.name}(${logic.params.map(() => 'null').join(',')})`;
1371
+ code = this.handleReplaceCode(code, logicRtn.name, `${logic.name}(${logic.params.map(() => 'null').join(',')})`);
1372
+ logic.params.forEach((param) => {
1373
+ if (code.includes(param.name))
1374
+ code = this.handleReplaceCode(code, param.name, 'null');
1375
+ });
1376
+ logic.variables.forEach((variable) => {
1377
+ if (code.includes(variable.name))
1378
+ code = this.handleReplaceCode(code, variable.name, 'null');
1379
+ });
1380
+ return code;
1381
+ }
1382
+ // 处理 current.item、current1.item 等数据
1383
+ if (/current(\d)*\.item/.test(code)) {
1384
+ code = yield* this.handleCurrentItemCode(code, logic);
1385
+ return code;
1386
+ }
1387
+ // 直接赋值 logic 内局部变量、输入参数直接提示系统无法推断类型
1388
+ const useLogicVar = logic.params.find((param) => code.includes(param.name)) ||
1389
+ logic.variables.find((variable) => code.includes(variable.name));
1390
+ return useLogicVar ? 'null' : code;
1391
+ }
1392
+ handleReplaceCode(code, variable, replaceCode) {
1393
+ return code.replace(/\S+/g, ($1) => {
1394
+ if ($1 === `${variable},`)
1395
+ return `${replaceCode},`;
1396
+ if ($1 === variable)
1397
+ return replaceCode;
1398
+ let fnCode = $1;
1399
+ if ($1.startsWith(`${variable}.`))
1400
+ fnCode = $1.replaceAll(`${variable}.`, `${replaceCode}.`);
1401
+ if ($1.startsWith(`${variable},`))
1402
+ fnCode = $1.replaceAll(`${variable},`, `${replaceCode},`);
1403
+ if ($1.includes(`(${variable},`))
1404
+ fnCode = $1.replaceAll(`(${variable},`, `(${replaceCode},`);
1405
+ if ($1.includes(`(${variable}.`))
1406
+ fnCode = $1.replaceAll(`(${variable}.`, `(${replaceCode}.`);
1407
+ if ($1.includes(`(${variable})`))
1408
+ fnCode = $1.replaceAll(`(${variable})`, `(${replaceCode})`);
1409
+ if ($1.includes(`,${variable},`))
1410
+ fnCode = $1.replaceAll(`,${variable},`, `,${replaceCode},`);
1411
+ if ($1.includes(`,${variable}.`))
1412
+ fnCode = $1.replaceAll(`,${variable}.`, `,${replaceCode}.`);
1413
+ if ($1.includes(`,${variable})`))
1414
+ fnCode = $1.replaceAll(`,${variable})`, `,${replaceCode})`);
1415
+ return fnCode;
1416
+ });
1417
+ }
1418
+ // 获取当前element,铺平
1419
+ elementsAttrs(elements, componentList) {
1420
+ if (elements) {
1421
+ elements.forEach((item) => {
1422
+ if (PAGE_COMPONENT_INCLUDE_TAG_MAP?.[item.tag]) {
1423
+ componentList.push(item);
1424
+ }
1425
+ if (item.children.length > 0) {
1426
+ this.elementsAttrs(item.children, componentList);
1427
+ }
1428
+ });
1429
+ }
1430
+ }
1431
+ elementsAttrsAll(elements, componentListExtra) {
1432
+ if (elements) {
1433
+ elements.forEach((item) => {
1434
+ if (!PAGE_COMPONENT_INCLUDE_TAG_MAP?.[item.tag]) {
1435
+ componentListExtra.push(item);
1436
+ }
1437
+ if (item.children.length > 0) {
1438
+ this.elementsAttrsAll(item.children, componentListExtra);
1439
+ }
1440
+ });
1441
+ }
1442
+ }
1443
+ *toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
1444
+ const self = this;
1445
+ // 获取虚拟logic的参数和内容
1446
+ // 用作展示和tots查找引用
1447
+ self.getElementLogicRoot();
1448
+ let code = `export class ${self.tsName} extends nasl.ui.VueComponent {\n`;
1449
+ // 需要类型推导的局部变量/返回值需要调整申明顺序
1450
+ code += `constructor(
1451
+ options?: {
1452
+ [propname: string]: any,
1453
+ bindAttr?: {
1454
+ __NASLIF?: nasl.core.Boolean,
1455
+ `;
1456
+ if (Array.isArray(self.params)) {
1457
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.params, function* warpForEachGenerator(param, index) {
1458
+ code += `${param.name}?: `;
1459
+ code += yield* param.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code));
1460
+ code += ',\n';
1461
+ });
1462
+ }
1463
+ code += `
1464
+ },
1465
+ slotDefault?: () => Array<any>,
1466
+ }) {
1467
+ super();\n`;
1468
+ // 绑定事件
1469
+ if (Array.isArray(self.bindEvents)) {
1470
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.bindEvents, function* warpForEachGenerator(event) {
1471
+ code += yield* event.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
1472
+ tabSize: state?.tabSize || 0,
1473
+ }), true);
1474
+ code += '\n';
1475
+ });
1476
+ }
1477
+ code += `\n}`;
1478
+ // 自定义事件的定义
1479
+ if (Array.isArray(self.events) && self.events.length) {
1480
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1481
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.events, function* warpForEachGenerator(event) {
1482
+ code += yield* event.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
1483
+ tabSize: (state?.tabSize || 0) + 2,
1484
+ }));
1485
+ code += '\n';
1486
+ });
1487
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1488
+ }
1489
+ // 逻辑
1490
+ if (Array.isArray(self.logics) && self.logics.length) {
1491
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1492
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.logics, function* warpForEachGenerator(logic) {
1493
+ code += yield* logic.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
1494
+ tabSize: (state?.tabSize || 0) + 2,
1495
+ }), 'noExport');
1496
+ code += '\n';
1497
+ });
1498
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1499
+ }
1500
+ // render函数
1501
+ code += `\n${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
1502
+ code += `__render(`;
1503
+ code += `){\n`;
1504
+ code += (0, translator_1.indent)(state?.tabSize || 0);
1505
+ // elements 元素
1506
+ if (Array.isArray(self.elements)) {
1507
+ // 生成嵌套式的内容
1508
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.elements, function* warpForEachGenerator(element) {
1509
+ code += yield* element.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
1510
+ tabSize: (state?.tabSize || 0) + 3,
1511
+ }));
1512
+ code += '\n';
1513
+ });
1514
+ }
1515
+ code += `\n${(0, translator_1.indent)((state?.tabSize || 0) + 1)}}\n`;
1516
+ if (Array.isArray(self.params)) {
1517
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}$destination(options: {`;
1518
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.params, function* warpForEachGenerator(param, index) {
1519
+ code += `${param.name}?: `;
1520
+ code += yield* param.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code));
1521
+ code += ', ';
1522
+ });
1523
+ // 锚点
1524
+ code += `_anchor?: nasl.core.String`;
1525
+ code += '}){}\n';
1526
+ }
1527
+ code += `${(0, translator_1.indent)(state?.tabSize || 0)}}\n`;
1528
+ // elements类型声明定义
1529
+ code += `interface __elements {\n`;
1530
+ // 生成所有的name和类型定义
1531
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.elements, function* warpForEachGenerator(element) {
1532
+ code += yield* element.toEmbeddedTSDefinition((0, translator_1.shiftState)(state, code, {
1533
+ tabSize: (state?.tabSize || 0) + 1,
1534
+ }));
1535
+ });
1536
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}}\n`;
1537
+ code += `let __elements: __elements;\n`;
1538
+ if (Array.isArray(self.elements)) {
1539
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}interface `;
1540
+ code += `__elements_completionProperty {\n`;
1541
+ const componentList = [];
1542
+ self.elementsAttrs(self.elements, componentList);
1543
+ const variableList = [];
1544
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.elements, function* warpForEachGenerator(item) {
1545
+ code += yield* item.toEmbeddedTSVariableDefinition((0, translator_1.shiftState)(state, code, { inline: true }), variableList);
1546
+ });
1547
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + `}\n`;
1548
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1549
+ code += `let __elements_completionProperty: __elements_completionProperty;\n`;
1550
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1551
+ code += `let __elements_variable_function = {\n`;
1552
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.elements, function* warpForEachGenerator(item) {
1553
+ code += yield* item.toEmbeddedTSVariableFunctionDefinition((0, translator_1.shiftState)(state, code, { inline: true }));
1554
+ });
1555
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + `}\n`;
1556
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
1557
+ code += `let __elements_stashFunctionVariable = {\n`;
1558
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(variableList, function* warpForEachGenerator(item) {
1559
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 2);
1560
+ code += `${item}`;
1561
+ });
1562
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1) + `}\n`;
1563
+ }
1564
+ const advanceMap = new Map();
1565
+ yield* self.traverseChildrenGenerator(function* traverseChildrenGenerator(el) {
1566
+ if (el && (asserts.isBatchAssignment(el) || (asserts.isAssignment(el) && el.left?.name))) {
1567
+ if (asserts.isAssignment(el)) {
1568
+ const advanceVar = self.variables?.find((variable) => !variable.typeAnnotation && el.left?.name === variable.name);
1569
+ if (advanceVar && !advanceMap.get(advanceVar)) {
1570
+ advanceMap.set(advanceVar, el);
1571
+ }
1572
+ }
1573
+ else if (asserts.isBatchAssignment(el)) {
1574
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(el.assignmentLines, function* warpForEachGenerator({ leftIndex }) {
1575
+ const leftCode = leftIndex.length === 1
1576
+ ? yield* el.left?.expression?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) ??
1577
+ (0, time_slicing_1.returnOrigin)('')
1578
+ : yield* el.left?.members[leftIndex[1]]?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) ??
1579
+ (0, time_slicing_1.returnOrigin)('');
1580
+ const advanceVar = self.variables?.find((variable) => !variable.typeAnnotation && leftCode === variable.name);
1581
+ if (advanceVar && !advanceMap.get(advanceVar)) {
1582
+ advanceMap.set(advanceVar, el);
1583
+ }
1584
+ });
1585
+ }
1586
+ }
1587
+ });
1588
+ // 用来储存默认值翻译结构是__IDENTIFIER__或者__IDENTIFIER__()的节点
1589
+ const IDENTIFIERMAP = new Set();
1590
+ if (Array.isArray(self.params)) {
1591
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.params, function* warpForEachGenerator(param) {
1592
+ code += `let ${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
1593
+ code += yield* param.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1594
+ code += ';\n';
1595
+ });
1596
+ }
1597
+ if (Array.isArray(self.variables)) {
1598
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(self.variables, function* warpForEachGenerator(variable) {
1599
+ const ts = yield* variable.defaultValue?.toEmbeddedTS?.() ?? (0, time_slicing_1.returnOrigin)('');
1600
+ if (['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
1601
+ IDENTIFIERMAP.add(variable);
1602
+ }
1603
+ if (!advanceMap.get(variable)) {
1604
+ code += `let ${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
1605
+ code += yield* variable.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1606
+ code += ';\n';
1607
+ }
1608
+ });
1609
+ }
1610
+ yield* (0, time_slicing_1.wrapIteratorToGenerator)(advanceMap.entries(), function* warpForEachGenerator([variable, assignment]) {
1611
+ // 有默认值的用默认值来推导类型, 但是如果是__IDENTIFIER__或者__IDENTIFIER__(),就不需要默认值来推导了
1612
+ if (variable.defaultValue?.expression && !IDENTIFIERMAP.has(variable)) {
1613
+ code += `let ${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
1614
+ code += yield* variable.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1615
+ return;
1616
+ }
1617
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}// @ts-ignore\n`;
1618
+ code += `let ${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
1619
+ code += yield* variable.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1620
+ code += ' = ';
1621
+ if (asserts.isBatchAssignment(assignment)) {
1622
+ yield* (0, time_slicing_1.wrapForEachToGenerator)(assignment.assignmentLines, function* warpForEachGenerator({ leftIndex, rightIndex }) {
1623
+ const leftCode = leftIndex.length === 1
1624
+ ? yield* assignment.left.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))
1625
+ : yield* assignment.left.members[leftIndex[1]]?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) ??
1626
+ (0, time_slicing_1.returnOrigin)('');
1627
+ if (leftCode === variable.name) {
1628
+ const rightNode = rightIndex.length === 1
1629
+ ? assignment.rights[rightIndex[0]]?.expression
1630
+ : assignment.rights[rightIndex[0]]?.members[rightIndex[1]];
1631
+ const rightCode = yield* rightNode?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })) ??
1632
+ (0, time_slicing_1.returnOrigin)('');
1633
+ code += yield* self.getRightCode(rightCode, assignment, rightNode);
1634
+ }
1635
+ });
1636
+ }
1637
+ else {
1638
+ let rightCode = '';
1639
+ // 因为右侧枚举要赋值就得new 一下;
1640
+ if (assignment.right &&
1641
+ asserts.isIdentifier(assignment.right) &&
1642
+ assignment.right.namespace &&
1643
+ assignment.right.namespace.endsWith('enums')) {
1644
+ rightCode += 'new ';
1645
+ }
1646
+ rightCode +=
1647
+ assignment.right && assignment.right.toEmbeddedTS
1648
+ ? yield* assignment.right.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))
1649
+ : '__RIGHT__';
1650
+ code += yield* self.getRightCode(rightCode, assignment, assignment.right);
1651
+ }
1652
+ code += ';\n';
1653
+ });
1654
+ /* 默认值草稿区 ---------------------------*/
1655
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}function __playground(){\n`;
1656
+ /* 参数的默认值是__IDENTIFIER__或者__IDENTIFIER__()时不赋默认值,但是需要ts翻译出来进行报错校验 */
1657
+ for (const node of IDENTIFIERMAP.values()) {
1658
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 2)}`;
1659
+ code += yield* node.defaultValue.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1660
+ code += '; ';
1661
+ }
1662
+ code += '\n';
1663
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 2)}return\n`;
1664
+ function* setPlaygroundCode(arr, name) {
1665
+ if (arr.length) {
1666
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}/* -----以下是 ${name} 的默认值草稿------ */\n`;
1667
+ }
1668
+ for (const item1 of arr) {
1669
+ for (const item of item1.defaultValue?.playground ?? []) {
1670
+ code += yield* item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
1671
+ code += ';\n';
1672
+ }
1673
+ }
1674
+ }
1675
+ yield* setPlaygroundCode(self.variables, 'variables');
1676
+ yield* setPlaygroundCode(self.params, 'params');
1677
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}}\n`;
1678
+ return code;
1679
+ }
1680
+ /**
1681
+ * 转换成 VueOptions
1682
+ * @TODO 后面 template 可以优化成 render 函数
1683
+ */
1684
+ toVueOptions(options) {
1685
+ return {
1686
+ template: this.genVueTemplate(options),
1687
+ script: this.genScript(),
1688
+ };
1689
+ }
1690
+ genVueTemplate(options) {
1691
+ return this.elements?.map((element) => `${element?.toVue(options)}\n`).join('');
1692
+ }
1693
+ getViewBindEvents() {
1694
+ const bindEvents = [];
1695
+ // 页面上的绑定的事件
1696
+ this.bindEvents.forEach((bindEvent) => {
1697
+ bindEvents.push(bindEvent);
1698
+ });
1699
+ this.elements.forEach((item) => {
1700
+ utils.traverse((current) => {
1701
+ current.node.bindEvents.forEach((bindEvent) => {
1702
+ bindEvents.push(bindEvent);
1703
+ });
1704
+ }, { node: item });
1705
+ });
1706
+ return bindEvents;
1707
+ }
1708
+ // 获取页面上需要替换的表达式
1709
+ getViewExpressions() {
1710
+ const bindExpressions = [];
1711
+ this.elements.forEach((item) => {
1712
+ utils.traverse((current) => {
1713
+ const { node } = current;
1714
+ const playgroundNodePath = (node?.nodePath || '').split('.').find((nodePathNode) => {
1715
+ return nodePathNode.match(/(.+)\[.+\]/)?.[1] === 'playground';
1716
+ });
1717
+ if (!playgroundNodePath) {
1718
+ //// 处理三种情况
1719
+ //if (
1720
+ // ['BindAttribute', 'BindDirective', 'BindStyle'].includes(node.concept)
1721
+ // && node.needReplaceWithIdentifier
1722
+ //) {
1723
+ // bindExpressions.push(node);
1724
+ //}
1725
+ if (node?.concept === 'Match') {
1726
+ bindExpressions.push(node);
1727
+ }
1728
+ }
1729
+ }, {
1730
+ node: item,
1731
+ }, {
1732
+ mode: 'anyObject',
1733
+ depthFirst: true,
1734
+ excludedKeySet: new Set([
1735
+ 'bindEvents',
1736
+ 'parentNode',
1737
+ 'sourceMap',
1738
+ 'storageJSON',
1739
+ 'tsErrorDetail',
1740
+ 'NaslAnnotatedJSON',
1741
+ 'calledFrom',
1742
+ '_events',
1743
+ '_collectingList',
1744
+ '_historyList',
1745
+ ]),
1746
+ });
1747
+ });
1748
+ return bindExpressions;
1749
+ }
1750
+ /**
1751
+ * 生成 Vue 中需要的 JS 代码
1752
+ * @TODO 这一版先做成 componentOptions 式的,后面再美化
1753
+ */
1754
+ genScript() {
1755
+ const componentList = [];
1756
+ const componentListExtra = [];
1757
+ this.elementsAttrs(this.elements, componentList);
1758
+ this.elementsAttrsAll(this.elements, componentListExtra);
1759
+ const definition = {
1760
+ params: this.params,
1761
+ variables: this.variables,
1762
+ logics: this.logics,
1763
+ events: this.bindEvents,
1764
+ title: this.title,
1765
+ viewBindEvents: this.getViewBindEvents(),
1766
+ viewExpressions: this.getViewExpressions(),
1767
+ elements: componentList,
1768
+ elementsAll: componentListExtra,
1769
+ };
1770
+ let code = '';
1771
+ const keyboardEventMixinCode = `const keyboardEventMixin = {
1772
+ mounted() {
1773
+ document.addEventListener('keydown', this.onKeyDown);
1774
+ document.addEventListener('keyup', this.onKeyUp);
1775
+ },
1776
+ beforeDestory() {
1777
+ document.removeEventListener('keydown', this.onKeyDown);
1778
+ document.removeEventListener('keyup', this.onKeyUp);
1779
+ },
1780
+ methods: {
1781
+ async onKeyDown(e) {
1782
+ ${this.bindEvents
1783
+ .filter((event) => ['keydown'].includes(event.name))
1784
+ .map((event) => `await this.${event.view.name}_${event.name}(e);`)
1785
+ .join('\n')}
1786
+ },
1787
+ async onKeyUp(e) {
1788
+ ${this.bindEvents
1789
+ .filter((event) => ['keyup'].includes(event.name))
1790
+ .map((event) => `await this.${event.view.name}_${event.name}(e);`)
1791
+ .join('\n')}
1792
+ }
1793
+ }
1794
+ };\n`;
1795
+ code += keyboardEventMixinCode;
1796
+ code += 'export default {\n';
1797
+ code += 'mixins: [';
1798
+ const mixins = [];
1799
+ // 键盘事件mixin
1800
+ mixins.push('keyboardEventMixin');
1801
+ code += mixins.join(',');
1802
+ code += '],';
1803
+ code += (0, translator_2.default)(definition, this);
1804
+ code += '};\n';
1805
+ return code;
1806
+ }
1807
+ // 生成预览的模板
1808
+ genPreviewTemplate() {
1809
+ return `<template>
1810
+ <bs-${this.name}>
1811
+ ${this.slotElems.map((slotElem) => {
1812
+ const slotName = slotElem.name;
1813
+ return `<template #${slotName}></template>`;
1814
+ }).join('')}
1815
+ </bs-${this.name}>
1816
+ </template>`;
1817
+ }
1818
+ };
1819
+ /** 类名 */
1820
+ BusinessComponent.ConceptName = 'BusinessComponent';
1821
+ /** 继承链 */
1822
+ BusinessComponent.inheritanceChain = ['BaseNode'];
1823
+ __decorate([
1824
+ (0, decorators_1.property)('concept')
1825
+ ], BusinessComponent.prototype, "concept", void 0);
1826
+ __decorate([
1827
+ (0, decorators_1.property)()
1828
+ ], BusinessComponent.prototype, "name", void 0);
1829
+ __decorate([
1830
+ (0, decorators_1.property)()
1831
+ ], BusinessComponent.prototype, "title", void 0);
1832
+ __decorate([
1833
+ (0, decorators_1.property)()
1834
+ ], BusinessComponent.prototype, "description", void 0);
1835
+ __decorate([
1836
+ (0, decorators_1.property)({
1837
+ objectRef: 'Event',
1838
+ isArray: true,
1839
+ defaultValue: [],
1840
+ })
1841
+ ], BusinessComponent.prototype, "events", void 0);
1842
+ __decorate([
1843
+ (0, decorators_1.property)({
1844
+ objectRef: 'ParamWithGroup',
1845
+ isArray: true,
1846
+ defaultValue: [],
1847
+ })
1848
+ ], BusinessComponent.prototype, "params", void 0);
1849
+ __decorate([
1850
+ (0, decorators_1.property)({
1851
+ objectRef: 'Variable',
1852
+ isArray: true,
1853
+ defaultValue: [],
1854
+ })
1855
+ ], BusinessComponent.prototype, "variables", void 0);
1856
+ __decorate([
1857
+ (0, decorators_1.property)({
1858
+ objectRef: 'BindEvent',
1859
+ isArray: true,
1860
+ defaultValue: [],
1861
+ })
1862
+ ], BusinessComponent.prototype, "bindEvents", void 0);
1863
+ __decorate([
1864
+ (0, decorators_1.property)({
1865
+ objectRef: 'BusinessLogic',
1866
+ isArray: true,
1867
+ defaultValue: [],
1868
+ })
1869
+ ], BusinessComponent.prototype, "logics", void 0);
1870
+ __decorate([
1871
+ (0, decorators_1.property)({
1872
+ objectRef: 'ViewElement',
1873
+ isArray: true,
1874
+ defaultValue: [],
1875
+ })
1876
+ ], BusinessComponent.prototype, "elements", void 0);
1877
+ __decorate([
1878
+ (0, decorators_1.property)()
1879
+ ], BusinessComponent.prototype, "icon", void 0);
1880
+ __decorate([
1881
+ translator_1.withSourceMapGenerator
1882
+ ], BusinessComponent.prototype, "toEmbeddedTS", null);
1883
+ BusinessComponent = BusinessComponent_1 = __decorate([
1884
+ (0, decorators_1.concept)('业务组件')
1885
+ ], BusinessComponent);
1886
+ exports.BusinessComponent = BusinessComponent;
1887
+ exports.default = BusinessComponent;
1888
+ //================================================================================
1889
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1890
+ // 自动生成的代码已结束。下面可以手动编写。
1891
+ //================================================================================
1892
+ //# sourceMappingURL=BusinessComponent__.js.map