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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (842) hide show
  1. package/out/automate/engine/utils.js +4 -0
  2. package/out/automate/engine/utils.js.map +1 -1
  3. package/out/automate/upgrader/2.20.js +1 -1
  4. package/out/automate/upgrader/2.20.js.map +1 -1
  5. package/out/bak/translator.js +11 -15
  6. package/out/bak/translator.js.map +1 -1
  7. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  8. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  9. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  10. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  11. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  12. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  13. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  14. package/out/breakpoint/generator/CallbackNode.js +22 -0
  15. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  16. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  17. package/out/breakpoint/generator/FragmentNode.js +18 -0
  18. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  19. package/out/breakpoint/generator/index.js +25 -4
  20. package/out/breakpoint/generator/index.js.map +1 -1
  21. package/out/breakpoint/shared/constants.d.ts +3 -0
  22. package/out/breakpoint/shared/constants.js +6 -1
  23. package/out/breakpoint/shared/constants.js.map +1 -1
  24. package/out/breakpoint/shared/operations.js.map +1 -1
  25. package/out/breakpoint/shared/socket.d.ts +1 -1
  26. package/out/breakpoint/shared/socket.js +36 -7
  27. package/out/breakpoint/shared/socket.js.map +1 -1
  28. package/out/breakpoint/shared/utils.d.ts +2 -0
  29. package/out/breakpoint/shared/utils.js +15 -2
  30. package/out/breakpoint/shared/utils.js.map +1 -1
  31. package/out/breakpoint/store/core.d.ts +48 -2
  32. package/out/breakpoint/store/core.js +58 -32
  33. package/out/breakpoint/store/core.js.map +1 -1
  34. package/out/breakpoint/store/dock.js +1 -1
  35. package/out/breakpoint/store/dock.js.map +1 -1
  36. package/out/common/BaseNode.d.ts +2 -2
  37. package/out/common/BaseNode.js +110 -53
  38. package/out/common/BaseNode.js.map +1 -1
  39. package/out/common/Command.d.ts +13 -2
  40. package/out/common/Command.js +37 -9
  41. package/out/common/Command.js.map +1 -1
  42. package/out/common/EventEmitter.js.map +1 -1
  43. package/out/common/Messager.d.ts +3 -3
  44. package/out/common/Messager.js +6 -7
  45. package/out/common/Messager.js.map +1 -1
  46. package/out/common/asyncFuncMap.js.map +1 -1
  47. package/out/concepts/Abort__.js +6 -5
  48. package/out/concepts/Abort__.js.map +1 -1
  49. package/out/concepts/Anchor__.d.ts +4 -3
  50. package/out/concepts/Anchor__.js +24 -7
  51. package/out/concepts/Anchor__.js.map +1 -1
  52. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  53. package/out/concepts/AnonymousFunction__.js +48 -22
  54. package/out/concepts/AnonymousFunction__.js.map +1 -1
  55. package/out/concepts/App__.d.ts +421 -247
  56. package/out/concepts/App__.js +288 -54
  57. package/out/concepts/App__.js.map +1 -1
  58. package/out/concepts/Argument__.d.ts +4 -3
  59. package/out/concepts/Argument__.js +42 -11
  60. package/out/concepts/Argument__.js.map +1 -1
  61. package/out/concepts/Assignee__.d.ts +45 -45
  62. package/out/concepts/Assignee__.js +15 -15
  63. package/out/concepts/Assignee__.js.map +1 -1
  64. package/out/concepts/AssignmentLine__.js +6 -5
  65. package/out/concepts/AssignmentLine__.js.map +1 -1
  66. package/out/concepts/Assignment__.d.ts +7 -6
  67. package/out/concepts/Assignment__.js +41 -23
  68. package/out/concepts/Assignment__.js.map +1 -1
  69. package/out/concepts/Attribute__.d.ts +3 -3
  70. package/out/concepts/Attribute__.js +8 -7
  71. package/out/concepts/Attribute__.js.map +1 -1
  72. package/out/concepts/AuthInterface__.js +4 -3
  73. package/out/concepts/AuthInterface__.js.map +1 -1
  74. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  75. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  76. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  77. package/out/concepts/AuthLogic__.js +27 -13
  78. package/out/concepts/AuthLogic__.js.map +1 -1
  79. package/out/concepts/BackendVariable__.d.ts +5 -5
  80. package/out/concepts/BackendVariable__.js +23 -26
  81. package/out/concepts/BackendVariable__.js.map +1 -1
  82. package/out/concepts/Backend__.d.ts +18 -18
  83. package/out/concepts/Backend__.js +13 -13
  84. package/out/concepts/Backend__.js.map +1 -1
  85. package/out/concepts/BatchAssignment__.d.ts +34 -33
  86. package/out/concepts/BatchAssignment__.js +83 -43
  87. package/out/concepts/BatchAssignment__.js.map +1 -1
  88. package/out/concepts/BinaryExpression__.d.ts +7 -6
  89. package/out/concepts/BinaryExpression__.js +60 -24
  90. package/out/concepts/BinaryExpression__.js.map +1 -1
  91. package/out/concepts/BindAttribute__.d.ts +37 -37
  92. package/out/concepts/BindAttribute__.js +102 -58
  93. package/out/concepts/BindAttribute__.js.map +1 -1
  94. package/out/concepts/BindDirective__.d.ts +13 -13
  95. package/out/concepts/BindDirective__.js +23 -21
  96. package/out/concepts/BindDirective__.js.map +1 -1
  97. package/out/concepts/BindEvent__.d.ts +28 -28
  98. package/out/concepts/BindEvent__.js +150 -57
  99. package/out/concepts/BindEvent__.js.map +1 -1
  100. package/out/concepts/BindStyle__.d.ts +14 -15
  101. package/out/concepts/BindStyle__.js +16 -16
  102. package/out/concepts/BindStyle__.js.map +1 -1
  103. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  104. package/out/concepts/BooleanLiteral__.js +12 -5
  105. package/out/concepts/BooleanLiteral__.js.map +1 -1
  106. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  107. package/out/concepts/CallAuthInterface__.js +23 -22
  108. package/out/concepts/CallAuthInterface__.js.map +1 -1
  109. package/out/concepts/CallConnector__.d.ts +11 -9
  110. package/out/concepts/CallConnector__.js +79 -36
  111. package/out/concepts/CallConnector__.js.map +1 -1
  112. package/out/concepts/CallFunction__.d.ts +17 -16
  113. package/out/concepts/CallFunction__.js +95 -63
  114. package/out/concepts/CallFunction__.js.map +1 -1
  115. package/out/concepts/CallInterface__.d.ts +9 -8
  116. package/out/concepts/CallInterface__.js +109 -80
  117. package/out/concepts/CallInterface__.js.map +1 -1
  118. package/out/concepts/CallLogic__.d.ts +24 -20
  119. package/out/concepts/CallLogic__.js +209 -162
  120. package/out/concepts/CallLogic__.js.map +1 -1
  121. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  122. package/out/concepts/CallQueryComponent__.js +66 -63
  123. package/out/concepts/CallQueryComponent__.js.map +1 -1
  124. package/out/concepts/Comment__.d.ts +1 -0
  125. package/out/concepts/Comment__.js +13 -6
  126. package/out/concepts/Comment__.js.map +1 -1
  127. package/out/concepts/CompletionProperty__.d.ts +3 -3
  128. package/out/concepts/CompletionProperty__.js +16 -8
  129. package/out/concepts/CompletionProperty__.js.map +1 -1
  130. package/out/concepts/ConfigGroup__.d.ts +15 -15
  131. package/out/concepts/ConfigGroup__.js +9 -9
  132. package/out/concepts/ConfigGroup__.js.map +1 -1
  133. package/out/concepts/ConfigPropertyValue__.js +4 -3
  134. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  135. package/out/concepts/ConfigProperty__.d.ts +15 -15
  136. package/out/concepts/ConfigProperty__.js +10 -10
  137. package/out/concepts/ConfigProperty__.js.map +1 -1
  138. package/out/concepts/Configuration__.d.ts +15 -15
  139. package/out/concepts/Configuration__.js +9 -9
  140. package/out/concepts/Configuration__.js.map +1 -1
  141. package/out/concepts/Connection__.d.ts +166 -0
  142. package/out/concepts/Connection__.js +332 -0
  143. package/out/concepts/Connection__.js.map +1 -0
  144. package/out/concepts/ConnectorTrigger__.js +4 -3
  145. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  146. package/out/concepts/Connector__.d.ts +66 -66
  147. package/out/concepts/Connector__.js +16 -15
  148. package/out/concepts/Connector__.js.map +1 -1
  149. package/out/concepts/Constant__.d.ts +3 -3
  150. package/out/concepts/Constant__.js +8 -7
  151. package/out/concepts/Constant__.js.map +1 -1
  152. package/out/concepts/DataElement__.d.ts +3 -3
  153. package/out/concepts/DataElement__.js +6 -5
  154. package/out/concepts/DataElement__.js.map +1 -1
  155. package/out/concepts/DataSource__.d.ts +15 -15
  156. package/out/concepts/DataSource__.js +55 -39
  157. package/out/concepts/DataSource__.js.map +1 -1
  158. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  159. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  160. package/out/concepts/Destination__.d.ts +12 -11
  161. package/out/concepts/Destination__.js +93 -36
  162. package/out/concepts/Destination__.js.map +1 -1
  163. package/out/concepts/End__.js +15 -13
  164. package/out/concepts/End__.js.map +1 -1
  165. package/out/concepts/EntityIndex__.d.ts +1 -1
  166. package/out/concepts/EntityIndex__.js +6 -5
  167. package/out/concepts/EntityIndex__.js.map +1 -1
  168. package/out/concepts/EntityProperty__.d.ts +8 -7
  169. package/out/concepts/EntityProperty__.js +39 -24
  170. package/out/concepts/EntityProperty__.js.map +1 -1
  171. package/out/concepts/Entity__.d.ts +31 -30
  172. package/out/concepts/Entity__.js +40 -16
  173. package/out/concepts/Entity__.js.map +1 -1
  174. package/out/concepts/EnumItem__.d.ts +1 -0
  175. package/out/concepts/EnumItem__.js +12 -5
  176. package/out/concepts/EnumItem__.js.map +1 -1
  177. package/out/concepts/Enum__.d.ts +9 -8
  178. package/out/concepts/Enum__.js +24 -11
  179. package/out/concepts/Enum__.js.map +1 -1
  180. package/out/concepts/Event__.d.ts +15 -15
  181. package/out/concepts/Event__.js +6 -5
  182. package/out/concepts/Event__.js.map +1 -1
  183. package/out/concepts/ExternalDestination__.d.ts +6 -6
  184. package/out/concepts/ExternalDestination__.js +12 -11
  185. package/out/concepts/ExternalDestination__.js.map +1 -1
  186. package/out/concepts/ForEachStatement__.d.ts +25 -24
  187. package/out/concepts/ForEachStatement__.js +101 -36
  188. package/out/concepts/ForEachStatement__.js.map +1 -1
  189. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  190. package/out/concepts/FrontendLibrary__.js +12 -13
  191. package/out/concepts/FrontendLibrary__.js.map +1 -1
  192. package/out/concepts/FrontendVariable__.js +4 -3
  193. package/out/concepts/FrontendVariable__.js.map +1 -1
  194. package/out/concepts/Frontend__.d.ts +64 -65
  195. package/out/concepts/Frontend__.js +23 -27
  196. package/out/concepts/Frontend__.js.map +1 -1
  197. package/out/concepts/Function__.d.ts +64 -63
  198. package/out/concepts/Function__.js +49 -21
  199. package/out/concepts/Function__.js.map +1 -1
  200. package/out/concepts/Identifier__.js +37 -31
  201. package/out/concepts/Identifier__.js.map +1 -1
  202. package/out/concepts/IfStatement__.d.ts +20 -19
  203. package/out/concepts/IfStatement__.js +64 -34
  204. package/out/concepts/IfStatement__.js.map +1 -1
  205. package/out/concepts/Integration__.d.ts +3 -3
  206. package/out/concepts/Integration__.js +8 -7
  207. package/out/concepts/Integration__.js.map +1 -1
  208. package/out/concepts/InterfaceParam__.d.ts +3 -3
  209. package/out/concepts/InterfaceParam__.js +7 -6
  210. package/out/concepts/InterfaceParam__.js.map +1 -1
  211. package/out/concepts/Interface__.d.ts +33 -33
  212. package/out/concepts/Interface__.js +19 -20
  213. package/out/concepts/Interface__.js.map +1 -1
  214. package/out/concepts/JSBlock__.d.ts +1 -0
  215. package/out/concepts/JSBlock__.js +12 -5
  216. package/out/concepts/JSBlock__.js.map +1 -1
  217. package/out/concepts/JavaLogic__.js +10 -9
  218. package/out/concepts/JavaLogic__.js.map +1 -1
  219. package/out/concepts/LogicItem__.d.ts +6 -0
  220. package/out/concepts/LogicItem__.js +14 -5
  221. package/out/concepts/LogicItem__.js.map +1 -1
  222. package/out/concepts/Logic__.d.ts +80 -79
  223. package/out/concepts/Logic__.js +204 -58
  224. package/out/concepts/Logic__.js.map +1 -1
  225. package/out/concepts/MatchCase__.d.ts +39 -38
  226. package/out/concepts/MatchCase__.js +122 -37
  227. package/out/concepts/MatchCase__.js.map +1 -1
  228. package/out/concepts/Match__.d.ts +13 -11
  229. package/out/concepts/Match__.js +128 -60
  230. package/out/concepts/Match__.js.map +1 -1
  231. package/out/concepts/MemberExpression__.d.ts +7 -6
  232. package/out/concepts/MemberExpression__.js +52 -22
  233. package/out/concepts/MemberExpression__.js.map +1 -1
  234. package/out/concepts/MicroApp__.js +4 -3
  235. package/out/concepts/MicroApp__.js.map +1 -1
  236. package/out/concepts/Module__.d.ts +242 -154
  237. package/out/concepts/Module__.js +139 -33
  238. package/out/concepts/Module__.js.map +1 -1
  239. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  240. package/out/concepts/MsgTriggerEvent__.js +6 -5
  241. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  242. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  243. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  244. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  245. package/out/concepts/Namespace__.d.ts +180 -180
  246. package/out/concepts/Namespace__.js +33 -34
  247. package/out/concepts/Namespace__.js.map +1 -1
  248. package/out/concepts/NewComposite__.d.ts +49 -48
  249. package/out/concepts/NewComposite__.js +164 -49
  250. package/out/concepts/NewComposite__.js.map +1 -1
  251. package/out/concepts/NewList__.d.ts +19 -18
  252. package/out/concepts/NewList__.js +29 -12
  253. package/out/concepts/NewList__.js.map +1 -1
  254. package/out/concepts/NewMap__.d.ts +34 -33
  255. package/out/concepts/NewMap__.js +81 -72
  256. package/out/concepts/NewMap__.js.map +1 -1
  257. package/out/concepts/New__.js +6 -5
  258. package/out/concepts/New__.js.map +1 -1
  259. package/out/concepts/NullLiteral__.js +6 -5
  260. package/out/concepts/NullLiteral__.js.map +1 -1
  261. package/out/concepts/NumericLiteral__.d.ts +4 -3
  262. package/out/concepts/NumericLiteral__.js +15 -8
  263. package/out/concepts/NumericLiteral__.js.map +1 -1
  264. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  265. package/out/concepts/OqlQueryComponent__.js +25 -16
  266. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  267. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  268. package/out/concepts/OverriddenLogic__.js +79 -58
  269. package/out/concepts/OverriddenLogic__.js.map +1 -1
  270. package/out/concepts/Param__.d.ts +6 -5
  271. package/out/concepts/Param__.js +66 -29
  272. package/out/concepts/Param__.js.map +1 -1
  273. package/out/concepts/Point__.js +4 -3
  274. package/out/concepts/Point__.js.map +1 -1
  275. package/out/concepts/ProcessComponent__.d.ts +30 -30
  276. package/out/concepts/ProcessComponent__.js +8 -7
  277. package/out/concepts/ProcessComponent__.js.map +1 -1
  278. package/out/concepts/ProcessElement__.d.ts +96 -96
  279. package/out/concepts/ProcessElement__.js +34 -34
  280. package/out/concepts/ProcessElement__.js.map +1 -1
  281. package/out/concepts/ProcessOutcome__.js +6 -5
  282. package/out/concepts/ProcessOutcome__.js.map +1 -1
  283. package/out/concepts/ProcessOutcomes__.js +6 -5
  284. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  285. package/out/concepts/Process__.d.ts +75 -75
  286. package/out/concepts/Process__.js +33 -30
  287. package/out/concepts/Process__.js.map +1 -1
  288. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  289. package/out/concepts/QueryAggregateExpression__.js +8 -7
  290. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  291. package/out/concepts/QueryFieldExpression__.js +7 -6
  292. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  293. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  294. package/out/concepts/QueryFromExpression__.js +8 -7
  295. package/out/concepts/QueryFromExpression__.js.map +1 -1
  296. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  297. package/out/concepts/QueryGroupByExpression__.js +9 -10
  298. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  299. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  300. package/out/concepts/QueryJoinExpression__.js +11 -10
  301. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  302. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  303. package/out/concepts/QueryLimitExpression__.js +9 -8
  304. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  305. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  306. package/out/concepts/QueryOrderByExpression__.js +9 -8
  307. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  308. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  309. package/out/concepts/QuerySelectExpression__.js +9 -8
  310. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  311. package/out/concepts/Rect__.js +4 -3
  312. package/out/concepts/Rect__.js.map +1 -1
  313. package/out/concepts/Return__.d.ts +4 -3
  314. package/out/concepts/Return__.js +37 -18
  315. package/out/concepts/Return__.js.map +1 -1
  316. package/out/concepts/Role__.js +9 -9
  317. package/out/concepts/Role__.js.map +1 -1
  318. package/out/concepts/SelectMembers__.d.ts +18 -18
  319. package/out/concepts/SelectMembers__.js +10 -9
  320. package/out/concepts/SelectMembers__.js.map +1 -1
  321. package/out/concepts/Slot__.d.ts +3 -3
  322. package/out/concepts/Slot__.js +6 -5
  323. package/out/concepts/Slot__.js.map +1 -1
  324. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  325. package/out/concepts/SqlQueryComponent__.js +21 -12
  326. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  327. package/out/concepts/Start__.js +6 -5
  328. package/out/concepts/Start__.js.map +1 -1
  329. package/out/concepts/StringInterpolation__.d.ts +16 -15
  330. package/out/concepts/StringInterpolation__.js +37 -14
  331. package/out/concepts/StringInterpolation__.js.map +1 -1
  332. package/out/concepts/StringLiteral__.d.ts +1 -0
  333. package/out/concepts/StringLiteral__.js +13 -8
  334. package/out/concepts/StringLiteral__.js.map +1 -1
  335. package/out/concepts/StructureProperty__.d.ts +4 -3
  336. package/out/concepts/StructureProperty__.js +22 -9
  337. package/out/concepts/StructureProperty__.js.map +1 -1
  338. package/out/concepts/Structure__.d.ts +31 -30
  339. package/out/concepts/Structure__.js +27 -15
  340. package/out/concepts/Structure__.js.map +1 -1
  341. package/out/concepts/SwitchCase__.d.ts +12 -11
  342. package/out/concepts/SwitchCase__.js +69 -31
  343. package/out/concepts/SwitchCase__.js.map +1 -1
  344. package/out/concepts/SwitchStatement__.d.ts +9 -8
  345. package/out/concepts/SwitchStatement__.js +27 -7
  346. package/out/concepts/SwitchStatement__.js.map +1 -1
  347. package/out/concepts/Theme__.js +4 -3
  348. package/out/concepts/Theme__.js.map +1 -1
  349. package/out/concepts/Transactional__.js +4 -3
  350. package/out/concepts/Transactional__.js.map +1 -1
  351. package/out/concepts/TriggerEvent__.d.ts +15 -15
  352. package/out/concepts/TriggerEvent__.js +6 -5
  353. package/out/concepts/TriggerEvent__.js.map +1 -1
  354. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  355. package/out/concepts/TriggerLauncher__.js +54 -32
  356. package/out/concepts/TriggerLauncher__.js.map +1 -1
  357. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  358. package/out/concepts/TypeAnnotation__.js +144 -124
  359. package/out/concepts/TypeAnnotation__.js.map +1 -1
  360. package/out/concepts/TypeParam__.d.ts +1 -0
  361. package/out/concepts/TypeParam__.js +12 -5
  362. package/out/concepts/TypeParam__.js.map +1 -1
  363. package/out/concepts/UnaryExpression__.d.ts +4 -3
  364. package/out/concepts/UnaryExpression__.js +31 -20
  365. package/out/concepts/UnaryExpression__.js.map +1 -1
  366. package/out/concepts/Unparsed__.d.ts +1 -0
  367. package/out/concepts/Unparsed__.js +12 -5
  368. package/out/concepts/Unparsed__.js.map +1 -1
  369. package/out/concepts/UseComponent__.js +4 -3
  370. package/out/concepts/UseComponent__.js.map +1 -1
  371. package/out/concepts/ValidationRule__.d.ts +14 -14
  372. package/out/concepts/ValidationRule__.js +19 -17
  373. package/out/concepts/ValidationRule__.js.map +1 -1
  374. package/out/concepts/Variable__.d.ts +4 -3
  375. package/out/concepts/Variable__.js +39 -23
  376. package/out/concepts/Variable__.js.map +1 -1
  377. package/out/concepts/ViewBlock__.js +4 -3
  378. package/out/concepts/ViewBlock__.js.map +1 -1
  379. package/out/concepts/ViewComponent__.d.ts +90 -90
  380. package/out/concepts/ViewComponent__.js +16 -15
  381. package/out/concepts/ViewComponent__.js.map +1 -1
  382. package/out/concepts/ViewElement__.d.ts +92 -86
  383. package/out/concepts/ViewElement__.js +258 -200
  384. package/out/concepts/ViewElement__.js.map +1 -1
  385. package/out/concepts/View__.d.ts +92 -92
  386. package/out/concepts/View__.js +173 -63
  387. package/out/concepts/View__.js.map +1 -1
  388. package/out/concepts/WhileStatement__.d.ts +12 -11
  389. package/out/concepts/WhileStatement__.js +46 -23
  390. package/out/concepts/WhileStatement__.js.map +1 -1
  391. package/out/concepts/basics/stdlib/index.js +17 -1
  392. package/out/concepts/basics/stdlib/index.js.map +1 -1
  393. package/out/concepts/basics/stdlib/nasl.browser.js +36 -0
  394. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  395. package/out/concepts/basics/stdlib/nasl.event.d.ts +3 -0
  396. package/out/concepts/basics/stdlib/nasl.event.js +23 -0
  397. package/out/concepts/basics/stdlib/nasl.event.js.map +1 -0
  398. package/out/concepts/basics/stdlib/nasl.ui.js +45 -0
  399. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  400. package/out/concepts/basics/stdlib/nasl.util.js +6 -22
  401. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  402. package/out/concepts/index__.d.ts +2 -1
  403. package/out/concepts/index__.js +2 -1
  404. package/out/concepts/index__.js.map +1 -1
  405. package/out/concepts/types__.d.ts +2 -1
  406. package/out/decorators/index.d.ts +1 -1
  407. package/out/decorators/index.js +20 -7
  408. package/out/decorators/index.js.map +1 -1
  409. package/out/decorators/promise.d.ts +7 -0
  410. package/out/decorators/promise.js +28 -0
  411. package/out/decorators/promise.js.map +1 -0
  412. package/out/enums/KEYWORDS.js.map +1 -1
  413. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  414. package/out/generator/compileComponent.js.map +1 -1
  415. package/out/generator/genBundleFiles.d.ts +4 -1
  416. package/out/generator/genBundleFiles.js +15 -11
  417. package/out/generator/genBundleFiles.js.map +1 -1
  418. package/out/generator/genHash.js.map +1 -1
  419. package/out/generator/genMetaData.js +12 -8
  420. package/out/generator/genMetaData.js.map +1 -1
  421. package/out/generator/genReleaseBody.js +33 -35
  422. package/out/generator/genReleaseBody.js.map +1 -1
  423. package/out/generator/microApp.js +2 -1
  424. package/out/generator/microApp.js.map +1 -1
  425. package/out/generator/permission.js +31 -30
  426. package/out/generator/permission.js.map +1 -1
  427. package/out/generator/styleReplacer.js +4 -7
  428. package/out/generator/styleReplacer.js.map +1 -1
  429. package/out/index.d.ts +0 -2
  430. package/out/index.js +0 -3
  431. package/out/index.js.map +1 -1
  432. package/out/manager/diagnostic.d.ts +1 -1
  433. package/out/manager/diagnostic.js.map +1 -1
  434. package/out/manager/stepRecorder.js +13 -9
  435. package/out/manager/stepRecorder.js.map +1 -1
  436. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  437. package/out/natural/RequirementAnalyzer.js +196 -0
  438. package/out/natural/RequirementAnalyzer.js.map +1 -0
  439. package/out/natural/RequirementExecutor.d.ts +51 -0
  440. package/out/natural/RequirementExecutor.js +692 -0
  441. package/out/natural/RequirementExecutor.js.map +1 -0
  442. package/out/natural/componentData.d.ts +31 -0
  443. package/out/natural/componentData.js +85 -0
  444. package/out/natural/componentData.js.map +1 -0
  445. package/out/natural/genNaturalTS.d.ts +3 -0
  446. package/out/natural/genNaturalTS.js +76 -0
  447. package/out/natural/genNaturalTS.js.map +1 -0
  448. package/out/natural/index.d.ts +4 -0
  449. package/out/natural/index.js +21 -0
  450. package/out/natural/index.js.map +1 -0
  451. package/out/natural/knowledgeMap.d.ts +4 -0
  452. package/out/natural/knowledgeMap.js +40 -0
  453. package/out/natural/knowledgeMap.js.map +1 -0
  454. package/out/natural/naslStdlibMap.d.ts +2 -0
  455. package/out/natural/naslStdlibMap.js +26 -0
  456. package/out/natural/naslStdlibMap.js.map +1 -0
  457. package/out/natural/transformTSCode.d.ts +7 -0
  458. package/out/natural/transformTSCode.js +760 -0
  459. package/out/natural/transformTSCode.js.map +1 -0
  460. package/out/sentry/index.d.ts +2 -1
  461. package/out/sentry/index.js.map +1 -1
  462. package/out/server/createUiTs.js +28 -16
  463. package/out/server/createUiTs.js.map +1 -1
  464. package/out/server/entity2LogicNamespace.js +24 -22
  465. package/out/server/entity2LogicNamespace.js.map +1 -1
  466. package/out/server/event.d.ts +12 -0
  467. package/out/server/event.js +52 -28
  468. package/out/server/event.js.map +1 -1
  469. package/out/server/extendBaseNode.js +55 -70
  470. package/out/server/extendBaseNode.js.map +1 -1
  471. package/out/server/formatTsUtils.js +46 -50
  472. package/out/server/formatTsUtils.js.map +1 -1
  473. package/out/server/getConnector.d.ts +3 -3
  474. package/out/server/getConnector.js +7 -8
  475. package/out/server/getConnector.js.map +1 -1
  476. package/out/server/getExtensionModules.js +2 -2
  477. package/out/server/getExtensionModules.js.map +1 -1
  478. package/out/server/getFunctions.js.map +1 -1
  479. package/out/server/getInterfaces.js.map +1 -1
  480. package/out/server/getLogging.js.map +1 -1
  481. package/out/server/getLogics.d.ts +1 -1
  482. package/out/server/getLogics.js +55 -8
  483. package/out/server/getLogics.js.map +1 -1
  484. package/out/server/getMemberIdentifier.js +13 -10
  485. package/out/server/getMemberIdentifier.js.map +1 -1
  486. package/out/server/getProcessComponents.js.map +1 -1
  487. package/out/server/getProcesses.js +21 -29
  488. package/out/server/getProcesses.js.map +1 -1
  489. package/out/server/getScope.js.map +1 -1
  490. package/out/server/getValidates.js.map +1 -1
  491. package/out/server/index.js +0 -1
  492. package/out/server/index.js.map +1 -1
  493. package/out/server/naslServer.d.ts +99 -94
  494. package/out/server/naslServer.js +490 -469
  495. package/out/server/naslServer.js.map +1 -1
  496. package/out/server/naslStdlibMap.js +6 -2
  497. package/out/server/naslStdlibMap.js.map +1 -1
  498. package/out/server/process2LogicNamespace.js.map +1 -1
  499. package/out/server/translator.d.ts +1 -1
  500. package/out/server/translator.js +52 -47
  501. package/out/server/translator.js.map +1 -1
  502. package/out/service/storage/init.d.ts +15 -1
  503. package/out/service/storage/init.js +65 -56
  504. package/out/service/storage/init.js.map +1 -1
  505. package/out/templator/genCallComponentLogic.js +1 -2
  506. package/out/templator/genCallComponentLogic.js.map +1 -1
  507. package/out/templator/genCreateBlock.js +14 -9
  508. package/out/templator/genCreateBlock.js.map +1 -1
  509. package/out/templator/genCurdEditMultipleKeyBlock.js +23 -14
  510. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  511. package/out/templator/genCurdMultipleKeyBlock.js +26 -30
  512. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  513. package/out/templator/genEditTableBlock.d.ts +1 -1
  514. package/out/templator/genEditTableBlock.js +14 -19
  515. package/out/templator/genEditTableBlock.js.map +1 -1
  516. package/out/templator/genEnumSelectBlock.js +1 -1
  517. package/out/templator/genEnumSelectBlock.js.map +1 -1
  518. package/out/templator/genGetBlock.js +2 -2
  519. package/out/templator/genGetBlock.js.map +1 -1
  520. package/out/templator/genGridViewBlock.d.ts +2 -2
  521. package/out/templator/genGridViewBlock.js +18 -28
  522. package/out/templator/genGridViewBlock.js.map +1 -1
  523. package/out/templator/genListViewBlock.d.ts +2 -2
  524. package/out/templator/genListViewBlock.js +9 -16
  525. package/out/templator/genListViewBlock.js.map +1 -1
  526. package/out/templator/genQueryComponent.js +22 -15
  527. package/out/templator/genQueryComponent.js.map +1 -1
  528. package/out/templator/genSelectBlock.d.ts +2 -2
  529. package/out/templator/genSelectBlock.js +21 -48
  530. package/out/templator/genSelectBlock.js.map +1 -1
  531. package/out/templator/genTableBlock.d.ts +1 -1
  532. package/out/templator/genTableBlock.js +11 -17
  533. package/out/templator/genTableBlock.js.map +1 -1
  534. package/out/templator/genUpdateBlock.js +13 -8
  535. package/out/templator/genUpdateBlock.js.map +1 -1
  536. package/out/templator/index.d.ts +4 -2
  537. package/out/templator/index.js +2 -2
  538. package/out/templator/index.js.map +1 -1
  539. package/out/templator/utils.d.ts +9 -2
  540. package/out/templator/utils.js +22 -22
  541. package/out/templator/utils.js.map +1 -1
  542. package/out/translator/index.js +27 -28
  543. package/out/translator/index.js.map +1 -1
  544. package/out/utils/index.d.ts +2 -1
  545. package/out/utils/index.js +8 -14
  546. package/out/utils/index.js.map +1 -1
  547. package/out/utils/logger.js.map +1 -1
  548. package/out/utils/sortTsString.js +3 -1
  549. package/out/utils/sortTsString.js.map +1 -1
  550. package/out/utils/string.js +8 -11
  551. package/out/utils/string.js.map +1 -1
  552. package/out/utils/time-slicing.d.ts +41 -0
  553. package/out/utils/time-slicing.js +81 -0
  554. package/out/utils/time-slicing.js.map +1 -0
  555. package/out/utils/traverse.js +4 -6
  556. package/out/utils/traverse.js.map +1 -1
  557. package/package.json +22 -20
  558. package/sandbox/stdlib/nasl.auth.ts +49 -46
  559. package/sandbox/stdlib/nasl.browser.ts +1 -0
  560. package/sandbox/stdlib/nasl.event.ts +4 -0
  561. package/sandbox/stdlib/nasl.http.ts +29 -31
  562. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  563. package/sandbox/stdlib/nasl.ui.ts +11 -0
  564. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  565. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  566. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  567. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  568. package/sandbox-natural/tsconfig.json +12 -0
  569. package/src/automate/engine/utils.js +3 -0
  570. package/src/automate/upgrader/2.20.js +1 -1
  571. package/src/bak/translator.js +92 -99
  572. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  573. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  574. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  575. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  576. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  577. package/src/breakpoint/generator/index.ts +107 -80
  578. package/src/breakpoint/shared/constants.ts +59 -53
  579. package/src/breakpoint/shared/operations.ts +6 -6
  580. package/src/breakpoint/shared/socket.ts +277 -223
  581. package/src/breakpoint/shared/utils.ts +166 -146
  582. package/src/breakpoint/store/core.ts +326 -297
  583. package/src/breakpoint/store/dock.ts +103 -103
  584. package/src/breakpoint/types/index.d.ts +11 -11
  585. package/src/common/BaseNode.ts +1103 -1020
  586. package/src/common/Command.ts +46 -16
  587. package/src/common/ComponentAPI.ts +72 -72
  588. package/src/common/EventEmitter.ts +80 -76
  589. package/src/common/Messager.ts +223 -224
  590. package/src/common/asyncFuncMap.ts +12 -12
  591. package/src/concepts/Abort__.ts +53 -60
  592. package/src/concepts/Anchor__.ts +158 -149
  593. package/src/concepts/AnonymousFunction__.ts +584 -551
  594. package/src/concepts/App__.ts +4278 -3669
  595. package/src/concepts/Argument__.ts +234 -210
  596. package/src/concepts/Assignee__.ts +680 -656
  597. package/src/concepts/AssignmentLine__.ts +80 -84
  598. package/src/concepts/Assignment__.ts +276 -264
  599. package/src/concepts/Attribute__.ts +183 -184
  600. package/src/concepts/AuthInterface__.ts +61 -63
  601. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  602. package/src/concepts/AuthLogic__.ts +210 -194
  603. package/src/concepts/BackendVariable__.ts +414 -415
  604. package/src/concepts/Backend__.ts +317 -303
  605. package/src/concepts/BatchAssignment__.ts +987 -939
  606. package/src/concepts/BinaryExpression__.ts +370 -341
  607. package/src/concepts/BindAttribute__.ts +1056 -1011
  608. package/src/concepts/BindDirective__.ts +540 -542
  609. package/src/concepts/BindEvent__.ts +992 -866
  610. package/src/concepts/BindStyle__.ts +442 -451
  611. package/src/concepts/BooleanLiteral__.ts +89 -90
  612. package/src/concepts/CallAuthInterface__.ts +458 -433
  613. package/src/concepts/CallConnector__.ts +209 -164
  614. package/src/concepts/CallFunction__.ts +600 -600
  615. package/src/concepts/CallInterface__.ts +752 -725
  616. package/src/concepts/CallLogic__.ts +1328 -1236
  617. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  618. package/src/concepts/Comment__.ts +69 -68
  619. package/src/concepts/CompletionProperty__.ts +250 -250
  620. package/src/concepts/ConfigGroup__.ts +312 -296
  621. package/src/concepts/ConfigPropertyValue__.ts +81 -82
  622. package/src/concepts/ConfigProperty__.ts +374 -357
  623. package/src/concepts/Configuration__.ts +288 -276
  624. package/src/concepts/Connection__.ts +426 -0
  625. package/src/concepts/ConnectorTrigger__.ts +146 -142
  626. package/src/concepts/Connector__.ts +1090 -1048
  627. package/src/concepts/Constant__.ts +226 -219
  628. package/src/concepts/DataElement__.ts +108 -115
  629. package/src/concepts/DataSource__.ts +508 -472
  630. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  631. package/src/concepts/Destination__.ts +808 -746
  632. package/src/concepts/End__.ts +85 -89
  633. package/src/concepts/EntityIndex__.ts +206 -202
  634. package/src/concepts/EntityProperty__.ts +825 -791
  635. package/src/concepts/Entity__.ts +921 -864
  636. package/src/concepts/EnumItem__.ts +133 -125
  637. package/src/concepts/Enum__.ts +347 -337
  638. package/src/concepts/Event__.ts +305 -292
  639. package/src/concepts/ExternalDestination__.ts +269 -280
  640. package/src/concepts/ForEachStatement__.ts +583 -531
  641. package/src/concepts/FrontendLibrary__.ts +507 -485
  642. package/src/concepts/FrontendVariable__.ts +44 -49
  643. package/src/concepts/Frontend__.ts +1239 -1187
  644. package/src/concepts/Function__.ts +1110 -1045
  645. package/src/concepts/Identifier__.ts +276 -272
  646. package/src/concepts/IfStatement__.ts +467 -436
  647. package/src/concepts/Integration__.ts +136 -137
  648. package/src/concepts/InterfaceParam__.ts +239 -238
  649. package/src/concepts/Interface__.ts +969 -948
  650. package/src/concepts/JSBlock__.ts +83 -83
  651. package/src/concepts/JavaLogic__.ts +101 -106
  652. package/src/concepts/LogicItem__.ts +307 -237
  653. package/src/concepts/Logic__.ts +2301 -2088
  654. package/src/concepts/MatchCase__.ts +886 -779
  655. package/src/concepts/Match__.ts +728 -659
  656. package/src/concepts/MemberExpression__.ts +330 -311
  657. package/src/concepts/MicroApp__.ts +91 -97
  658. package/src/concepts/Module__.ts +2590 -2275
  659. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  660. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  661. package/src/concepts/Namespace__.ts +2579 -2466
  662. package/src/concepts/NewComposite__.ts +1487 -1350
  663. package/src/concepts/NewList__.ts +464 -450
  664. package/src/concepts/NewMap__.ts +691 -674
  665. package/src/concepts/New__.ts +42 -49
  666. package/src/concepts/NullLiteral__.ts +66 -72
  667. package/src/concepts/NumericLiteral__.ts +169 -169
  668. package/src/concepts/OqlQueryComponent__.ts +282 -279
  669. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  670. package/src/concepts/Param__.ts +500 -442
  671. package/src/concepts/Point__.ts +53 -59
  672. package/src/concepts/ProcessComponent__.ts +497 -475
  673. package/src/concepts/ProcessElement__.ts +1852 -1780
  674. package/src/concepts/ProcessOutcome__.ts +59 -64
  675. package/src/concepts/ProcessOutcomes__.ts +59 -64
  676. package/src/concepts/Process__.ts +1491 -1428
  677. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  678. package/src/concepts/QueryFieldExpression__.ts +138 -142
  679. package/src/concepts/QueryFromExpression__.ts +246 -254
  680. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  681. package/src/concepts/QueryJoinExpression__.ts +441 -438
  682. package/src/concepts/QueryLimitExpression__.ts +159 -166
  683. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  684. package/src/concepts/QuerySelectExpression__.ts +464 -439
  685. package/src/concepts/Rect__.ts +73 -79
  686. package/src/concepts/Return__.ts +366 -345
  687. package/src/concepts/Role__.ts +146 -147
  688. package/src/concepts/SelectMembers__.ts +358 -350
  689. package/src/concepts/Slot__.ts +152 -153
  690. package/src/concepts/SqlQueryComponent__.ts +230 -228
  691. package/src/concepts/Start__.ts +45 -52
  692. package/src/concepts/StringInterpolation__.ts +323 -296
  693. package/src/concepts/StringLiteral__.ts +113 -115
  694. package/src/concepts/StructureProperty__.ts +306 -295
  695. package/src/concepts/Structure__.ts +615 -578
  696. package/src/concepts/SwitchCase__.ts +326 -290
  697. package/src/concepts/SwitchStatement__.ts +236 -229
  698. package/src/concepts/Theme__.ts +64 -68
  699. package/src/concepts/Transactional__.ts +159 -153
  700. package/src/concepts/TriggerEvent__.ts +285 -274
  701. package/src/concepts/TriggerLauncher__.ts +232 -196
  702. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  703. package/src/concepts/TypeParam__.ts +48 -50
  704. package/src/concepts/UnaryExpression__.ts +163 -153
  705. package/src/concepts/Unparsed__.ts +81 -82
  706. package/src/concepts/UseComponent__.ts +53 -59
  707. package/src/concepts/ValidationRule__.ts +524 -544
  708. package/src/concepts/Variable__.ts +419 -397
  709. package/src/concepts/ViewBlock__.ts +58 -64
  710. package/src/concepts/ViewComponent__.ts +1323 -1261
  711. package/src/concepts/ViewElement__.ts +2537 -2351
  712. package/src/concepts/View__.ts +2461 -2245
  713. package/src/concepts/WhileStatement__.ts +293 -272
  714. package/src/concepts/basics/stdlib/index.ts +17 -1
  715. package/src/concepts/basics/stdlib/nasl.browser.ts +36 -0
  716. package/src/concepts/basics/stdlib/nasl.event.ts +18 -0
  717. package/src/concepts/basics/stdlib/nasl.ui.ts +45 -0
  718. package/src/concepts/basics/stdlib/nasl.util.ts +6 -22
  719. package/src/concepts/index__.ts +2 -1
  720. package/src/concepts/types__.ts +123 -121
  721. package/src/decorators/index.ts +75 -77
  722. package/src/decorators/promise.ts +28 -0
  723. package/src/enums/KEYWORDS.ts +1228 -1228
  724. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  725. package/src/generator/compileComponent.ts +10 -10
  726. package/src/generator/genBundleFiles.ts +300 -291
  727. package/src/generator/genHash.ts +2 -2
  728. package/src/generator/genMetaData.ts +280 -261
  729. package/src/generator/genReleaseBody.ts +312 -291
  730. package/src/generator/icestark.ts +1 -1
  731. package/src/generator/microApp.ts +17 -20
  732. package/src/generator/permission.ts +241 -232
  733. package/src/generator/qiankun.ts +1 -1
  734. package/src/generator/styleReplacer.ts +28 -31
  735. package/src/index.ts +0 -3
  736. package/src/manager/diagnostic.ts +84 -82
  737. package/src/manager/stepRecorder.ts +106 -94
  738. package/src/natural/RequirementAnalyzer.ts +208 -0
  739. package/src/natural/RequirementExecutor.ts +685 -0
  740. package/src/natural/componentData.ts +81 -0
  741. package/src/natural/genNaturalTS.ts +77 -0
  742. package/src/natural/index.ts +4 -0
  743. package/src/natural/knowledgeMap.ts +39 -0
  744. package/src/natural/naslStdlibMap.ts +24 -0
  745. package/src/natural/transformTSCode.ts +692 -0
  746. package/src/sentry/index.ts +109 -104
  747. package/src/server/createUiTs.ts +190 -184
  748. package/src/server/entity2LogicNamespace.ts +379 -359
  749. package/src/server/event.js +145 -121
  750. package/src/server/extendBaseNode.ts +461 -456
  751. package/src/server/formatTsUtils.ts +712 -713
  752. package/src/server/getConnector.ts +33 -33
  753. package/src/server/getExtensionModules.ts +23 -22
  754. package/src/server/getFunctions.ts +6 -6
  755. package/src/server/getInterfaces.ts +38 -37
  756. package/src/server/getLogging.ts +1 -1
  757. package/src/server/getLogics.ts +391 -312
  758. package/src/server/getMemberIdentifier.ts +286 -281
  759. package/src/server/getProcessComponents.ts +2 -2
  760. package/src/server/getProcesses.ts +548 -534
  761. package/src/server/getScope.ts +51 -51
  762. package/src/server/getValidates.ts +3 -3
  763. package/src/server/index.ts +29 -30
  764. package/src/server/naslServer.ts +4303 -4222
  765. package/src/server/naslStdlibMap.ts +43 -39
  766. package/src/server/process2LogicNamespace.ts +97 -97
  767. package/src/server/translator.ts +740 -746
  768. package/src/service/storage/init.ts +761 -728
  769. package/src/templator/genCallComponentLogic.ts +14 -15
  770. package/src/templator/genCreateBlock.ts +257 -229
  771. package/src/templator/genCurdEditMultipleKeyBlock.ts +333 -317
  772. package/src/templator/genCurdMultipleKeyBlock.ts +503 -475
  773. package/src/templator/genEditTableBlock.ts +194 -187
  774. package/src/templator/genEnumSelectBlock.ts +13 -7
  775. package/src/templator/genGetBlock.ts +57 -55
  776. package/src/templator/genGridViewBlock.ts +195 -211
  777. package/src/templator/genListViewBlock.ts +62 -72
  778. package/src/templator/genQueryComponent.ts +337 -287
  779. package/src/templator/genSelectBlock.ts +283 -297
  780. package/src/templator/genTableBlock.ts +160 -166
  781. package/src/templator/genUpdateBlock.ts +269 -255
  782. package/src/templator/index.ts +4 -4
  783. package/src/templator/utils.ts +491 -463
  784. package/src/translator/index.ts +84 -84
  785. package/src/translator/lsp.ts +22 -22
  786. package/src/translator/tsp.ts +6 -6
  787. package/src/utils/index.ts +115 -117
  788. package/src/utils/logger.ts +3 -4
  789. package/src/utils/sortTsString.ts +34 -32
  790. package/src/utils/string.ts +47 -48
  791. package/src/utils/time-slicing.ts +109 -0
  792. package/src/utils/traverse.ts +114 -126
  793. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +71 -0
  794. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +140 -0
  795. package/test/concepts/call-interface/constant.ts +5 -0
  796. package/test/concepts/call-interface/fixtures/only-interface.json +158 -0
  797. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +455 -0
  798. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +187 -0
  799. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +225 -0
  800. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +213 -0
  801. package/test/concepts/call-interface/fixtures/with-headers.json +192 -0
  802. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +213 -0
  803. package/test/concepts/call-interface/fixtures/with-query.json +192 -0
  804. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +14 -0
  805. package/test/concepts/call-interface/toJS.spec.ts +14 -0
  806. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  807. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +141 -0
  808. package/test/concepts/call-logic/constant.ts +5 -0
  809. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +223 -0
  810. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +359 -0
  811. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +209 -0
  812. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +311 -0
  813. package/test/concepts/call-logic/fixtures/only-call-logic.json +10 -0
  814. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +128 -0
  815. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +126 -0
  816. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +244 -0
  817. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +14 -0
  818. package/test/concepts/call-logic/toJS.spec.ts +14 -0
  819. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  820. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  821. package/test/concepts/match/constant.ts +5 -0
  822. package/test/concepts/match/fixtures/isExpression.json +259 -0
  823. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  824. package/test/concepts/match/fixtures/noExpression.json +176 -0
  825. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  826. package/test/concepts/match/toJS.spec.ts +14 -0
  827. package/test/concepts/utils.ts +76 -3
  828. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  829. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +16 -0
  830. package/test/concepts/validation-rule/constant.ts +5 -0
  831. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +10 -17
  832. package/test/concepts/validation-rule/toJS.spec.ts +14 -0
  833. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +68 -0
  834. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +44 -0
  835. package/test/concepts/view-element/constant.ts +5 -0
  836. package/test/concepts/view-element/fixtures/default-not-found.json +322 -0
  837. package/test/concepts/view-element/toEmbeddedTS.spec.ts +14 -0
  838. package/test/concepts/view-element/toVue.spec.ts +14 -0
  839. package/test/setup.ts +7 -0
  840. package/ts-worker/src/index.js +0 -2
  841. package/tsconfig.json +21 -21
  842. package/bin/naslc +0 -3
@@ -1,16 +1,16 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
2
- import { AssetsInfo } from './App__';
3
+ import App, { AssetsInfo } from './App__';
3
4
  import Namespace from './Namespace__';
4
5
  import Variable from './Variable__';
5
- //================================================================================
6
+ //= ===============================================================================
6
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
8
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
8
- //================================================================================
9
+ //= ===============================================================================
9
10
  import { EventPayload, Params } from '../common/EventEmitter';
10
11
  import { concept, excludedInJSON, property } from '../decorators';
11
12
 
12
13
  import * as utils from '../utils';
13
- import { v4 as uuidv4 } from 'uuid';
14
14
  import BaseNode from '../common/BaseNode';
15
15
  import classMap from '../common/classMap';
16
16
  import BindEvent from './BindEvent__';
@@ -18,1219 +18,1271 @@ import View from './View__';
18
18
  import FrontendVariable from './FrontendVariable__';
19
19
  import Theme from './Theme__';
20
20
  import Module from './Module__';
21
- import App from './App__';
22
21
 
23
22
  /**
24
23
  * 端
25
24
  */
26
25
  @concept('端')
27
26
  export class Frontend extends BaseNode {
28
- /**
29
- * 产品概念
30
- */
31
- @property()
32
- concept: 'Frontend' = 'Frontend';
33
-
34
- /**
35
- * 端标识
36
- */
37
- @property()
38
- name: string = undefined;
39
-
40
- /**
41
- * pc端
42
- */
43
- @property()
44
- title: string = undefined;
45
-
46
- /**
47
- * PC/H5 端
48
- */
49
- @property()
50
- type: 'pc' | 'h5' = undefined;
51
-
52
- /**
53
- * 基础路径
54
- */
55
- @property()
56
- path: string = undefined;
57
-
58
- /**
59
- * 制品应用标题
60
- */
61
- @property()
62
- documentTitle: string = undefined;
63
-
64
- /**
65
- * 制品应用图标
66
- */
67
- @property()
68
- documentIcon: string = undefined;
69
-
70
- /**
71
- * 元素绑定事件列表
72
- */
73
- @property('BindEvent')
74
- bindEvents: Array<BindEvent> = [];
75
-
76
- /**
77
- * 页面列表
78
- */
79
- @property('View')
80
- views: Array<View> = [];
81
-
82
- /**
83
- * 前端全局变量列表
84
- */
85
- @property('FrontendVariable')
86
- variables: Array<FrontendVariable> = [];
87
-
88
- /**
89
- * 主题配置
90
- */
91
- @property('Theme')
92
- theme: Theme = new Theme();
93
-
94
- /**
95
- * 扩展组件列表(兼容老版)
96
- */
97
- @property('Module')
98
- componentDependencies: Array<Module> = [];
99
-
100
- /**
101
- * 全局缩放开关
102
- */
103
- @property()
104
- globalScaleEnabled: boolean = false;
105
-
106
- /**
107
- * 画布宽度
108
- */
109
- @property()
110
- canvasWidth: number = 0;
111
-
112
- /**
113
- * 祖先 App
114
- */
115
- get app() {
116
- return this.getAncestor('App') as App;
117
- }
118
-
119
- /**
120
- * @param source 需要合并的部分参数
121
- */
122
- constructor(source?: Partial<Frontend>) {
123
- source = Object.assign({}, Frontend.getDefaultOptions(), source);
124
- super(source);
125
- super.subConstructor(source);
126
- }
127
- getClassName() {
128
- return 'Frontend';
129
- }
130
-
131
- static from(source: any, parentNode?: any, parentKey?: string): Frontend {
132
- return super.from(source, parentNode, parentKey) as Frontend;
133
- }
134
-
135
- /**
136
- * 从父级删除该节点
137
- * @internal
138
- */
139
- _delete() {
140
- let params: Params = null;
141
- if (this.parentNode) {
142
- params = (this.parentNode as any)?.__removeFrontend?.(this);
143
- }
144
- return params;
145
- }
146
- /**
147
- * 设置端标识
148
- */
149
- setName(name: string) {
150
- const object = {
151
- name,
152
- };
153
- this.update({
154
- ...object,
155
- field: 'name',
156
- });
157
- }
158
-
159
- /**
160
- * 设置pc端
161
- */
162
- setTitle(title: string) {
163
- const object = {
164
- title,
165
- };
166
- this.update({
167
- ...object,
168
- });
169
- }
170
-
171
- /**
172
- * 设置基础路径
173
- */
174
- setPath(path: string) {
175
- const object = {
176
- path,
177
- };
178
- this.update({
179
- ...object,
180
- });
181
- }
182
-
183
- /**
184
- * 设置制品应用标题
185
- */
186
- setDocumentTitle(documentTitle: string) {
187
- const object = {
188
- documentTitle,
189
- };
190
- this.update({
191
- ...object,
192
- });
193
- }
194
-
195
- /**
196
- * 设置制品应用图标
197
- */
198
- setDocumentIcon(documentIcon: string) {
199
- const object = {
200
- documentIcon,
201
- };
202
- this.update({
203
- ...object,
204
- });
205
- }
206
-
207
- /**
208
- * 设置全局缩放开关
209
- */
210
- setGlobalScaleEnabled(globalScaleEnabled: boolean) {
211
- const object = {
212
- globalScaleEnabled,
213
- };
214
- this.update({
215
- ...object,
216
- });
217
- }
218
-
219
- /**
220
- * 设置画布宽度
221
- */
222
- setCanvasWidth(canvasWidth: number) {
223
- const object = {
224
- canvasWidth,
225
- };
226
- this.update({
227
- ...object,
228
- });
229
- }
230
-
231
- getBindEventExistingNames(excludedList: Array<BindEvent> = []) {
232
- const excludedSet = new Set(excludedList);
233
- return ((this.bindEvents as BindEvent[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
234
- }
235
- getBindEventUniqueName(name = 'bindEvent1') {
236
- return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
237
- }
238
-
239
- /**
240
- * 插入元素绑定事件
241
- * @internal
242
- * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
243
- */
244
- _insertBindEventAt(name: string, index: number): BindEvent;
245
-
246
- /**
247
- * 插入元素绑定事件
248
- * @internal
249
- * @param bindEventOptions 元素绑定事件参数
250
- */
251
- _insertBindEventAt(bindEventOptions: Partial<BindEvent>, index: number): BindEvent;
252
-
253
- /**
254
- * 插入元素绑定事件
255
- * @internal
256
- * @param bindEvent 已有的元素绑定事件实例
257
- */
258
- _insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent;
259
-
260
- _insertBindEventAt(options: string | Partial<BindEvent> | BindEvent, index: number) {
261
- const bindEventOptions: any = {};
262
- const relationOptions = { parentNode: this, parentKey: 'bindEvents' };
263
- let bindEvent: BindEvent;
264
- if (!options) {
265
- bindEvent = BindEvent.from({
266
- ...bindEventOptions,
267
- name: this.getBindEventUniqueName(),
268
- }, this, 'bindEvents');
269
- } else if (typeof options === 'string') {
270
- bindEvent = BindEvent.from({
271
- ...bindEventOptions,
272
- name: options,
273
- }, this, 'bindEvents');
274
- } else if (options instanceof BindEvent) {
275
- options.ensureDelete(); // 同一实例不支持多处存在
276
- bindEvent = options;
277
- Object.assign(bindEvent, relationOptions);
278
- } else {
279
- bindEvent = BindEvent.from({
280
- ...bindEventOptions,
281
- ...options,
282
- }, this, 'bindEvents');
283
- }
284
- this.bindEvents.splice(index, 0, bindEvent);
285
- return bindEvent;
27
+ /**
28
+ * 产品概念
29
+ */
30
+ @property()
31
+ concept: 'Frontend' = 'Frontend';
32
+
33
+ /**
34
+ * 端标识
35
+ */
36
+ @property()
37
+ name: string = undefined;
38
+
39
+ /**
40
+ * pc端
41
+ */
42
+ @property()
43
+ title: string = undefined;
44
+
45
+ /**
46
+ * PC/H5 端
47
+ */
48
+ @property()
49
+ type: 'pc' | 'h5' = undefined;
50
+
51
+ /**
52
+ * 基础路径
53
+ */
54
+ @property()
55
+ path: string = undefined;
56
+
57
+ /**
58
+ * 制品应用标题
59
+ */
60
+ @property()
61
+ documentTitle: string = undefined;
62
+
63
+ /**
64
+ * 制品应用图标
65
+ */
66
+ @property()
67
+ documentIcon: string = undefined;
68
+
69
+ /**
70
+ * 元素绑定事件列表
71
+ */
72
+ @property('BindEvent')
73
+ bindEvents: Array<BindEvent> = [];
74
+
75
+ /**
76
+ * 页面列表
77
+ */
78
+ @property('View')
79
+ views: Array<View> = [];
80
+
81
+ /**
82
+ * 前端全局变量列表
83
+ */
84
+ @property('FrontendVariable')
85
+ variables: Array<FrontendVariable> = [];
86
+
87
+ /**
88
+ * 主题配置
89
+ */
90
+ @property('Theme')
91
+ theme: Theme = new Theme();
92
+
93
+ /**
94
+ * 扩展组件列表(兼容老版)
95
+ */
96
+ @property('Module')
97
+ componentDependencies: Array<Module> = [];
98
+
99
+ /**
100
+ * 全局缩放开关
101
+ */
102
+ @property()
103
+ globalScaleEnabled: boolean = false;
104
+
105
+ /**
106
+ * 画布宽度
107
+ */
108
+ @property()
109
+ canvasWidth: number = 0;
110
+
111
+ /**
112
+ * 祖先 App
113
+ */
114
+ get app() {
115
+ return this.getAncestor('App') as App;
116
+ }
117
+
118
+ /**
119
+ * @param source 需要合并的部分参数
120
+ */
121
+ constructor(source?: Partial<Frontend>) {
122
+ // @ts-ignore
123
+ source = { ...Frontend.getDefaultOptions(), ...source };
124
+ super(source);
125
+ super.subConstructor(source);
126
+ }
127
+
128
+ getClassName() {
129
+ return 'Frontend';
130
+ }
131
+
132
+ static from(source: any, parentNode?: any, parentKey?: string): Frontend {
133
+ return super.from(source, parentNode, parentKey) as Frontend;
134
+ }
135
+
136
+ /**
137
+ * 从父级删除该节点
138
+ * @internal
139
+ */
140
+ _delete() {
141
+ let params: Params = null;
142
+ if (this.parentNode) {
143
+ params = (this.parentNode as any)?.__removeFrontend?.(this);
286
144
  }
287
-
288
- /**
289
- * 插入元素绑定事件
290
- * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
291
- */
292
- insertBindEventAt(name: string, index: number): BindEvent;
293
-
294
- /**
295
- * 插入元素绑定事件
296
- * @param bindEventOptions 元素绑定事件参数
297
- */
298
- insertBindEventAt(bindEventOptions: Partial<BindEvent>, index: number): BindEvent;
299
-
300
- /**
301
- * 插入元素绑定事件
302
- * @param bindEvent 已有的元素绑定事件实例
303
- */
304
- insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent;
305
-
306
- insertBindEventAt(options: string | Partial<BindEvent> | BindEvent, index: number) {
307
- const node = this._insertBindEventAt(options as any, index);
308
- node.create({
309
- index,
310
- parentNode: this,
311
- parentKey: 'bindEvents',
312
- });
313
- return node;
145
+ return params;
146
+ }
147
+
148
+ /**
149
+ * 设置端标识
150
+ */
151
+ setName(name: string) {
152
+ const object = {
153
+ name,
154
+ };
155
+ this.update({
156
+ ...object,
157
+ field: 'name',
158
+ });
159
+ }
160
+
161
+ /**
162
+ * 设置pc端
163
+ */
164
+ setTitle(title: string) {
165
+ const object = {
166
+ title,
167
+ };
168
+ this.update({
169
+ ...object,
170
+ });
171
+ }
172
+
173
+ /**
174
+ * 设置基础路径
175
+ */
176
+ setPath(path: string) {
177
+ const object = {
178
+ path,
179
+ };
180
+ this.update({
181
+ ...object,
182
+ });
183
+ }
184
+
185
+ /**
186
+ * 设置制品应用标题
187
+ */
188
+ setDocumentTitle(documentTitle: string) {
189
+ const object = {
190
+ documentTitle,
191
+ };
192
+ this.update({
193
+ ...object,
194
+ });
195
+ }
196
+
197
+ /**
198
+ * 设置制品应用图标
199
+ */
200
+ setDocumentIcon(documentIcon: string) {
201
+ const object = {
202
+ documentIcon,
203
+ };
204
+ this.update({
205
+ ...object,
206
+ });
207
+ }
208
+
209
+ /**
210
+ * 设置全局缩放开关
211
+ */
212
+ setGlobalScaleEnabled(globalScaleEnabled: boolean) {
213
+ const object = {
214
+ globalScaleEnabled,
215
+ };
216
+ this.update({
217
+ ...object,
218
+ });
219
+ }
220
+
221
+ /**
222
+ * 设置画布宽度
223
+ */
224
+ setCanvasWidth(canvasWidth: number) {
225
+ const object = {
226
+ canvasWidth,
227
+ };
228
+ this.update({
229
+ ...object,
230
+ });
231
+ }
232
+
233
+ getBindEventExistingNames(excludedList: Array<BindEvent> = []) {
234
+ const excludedSet = new Set(excludedList);
235
+ return ((this.bindEvents as BindEvent[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
236
+ }
237
+
238
+ getBindEventUniqueName(name = 'bindEvent1') {
239
+ return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
240
+ }
241
+
242
+ /**
243
+ * 插入元素绑定事件
244
+ * @internal
245
+ * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
246
+ */
247
+ _insertBindEventAt(name: string, index: number): BindEvent;
248
+
249
+ /**
250
+ * 插入元素绑定事件
251
+ * @internal
252
+ * @param bindEventOptions 元素绑定事件参数
253
+ */
254
+ _insertBindEventAt(bindEventOptions: Partial<BindEvent>, index: number): BindEvent;
255
+
256
+ /**
257
+ * 插入元素绑定事件
258
+ * @internal
259
+ * @param bindEvent 已有的元素绑定事件实例
260
+ */
261
+ _insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent;
262
+
263
+ _insertBindEventAt(options: string | Partial<BindEvent> | BindEvent, index: number) {
264
+ const bindEventOptions: any = {};
265
+ const relationOptions = { parentNode: this, parentKey: 'bindEvents' };
266
+ let bindEvent: BindEvent;
267
+ if (!options) {
268
+ bindEvent = BindEvent.from(
269
+ {
270
+ ...bindEventOptions,
271
+ name: this.getBindEventUniqueName(),
272
+ },
273
+ this,
274
+ 'bindEvents'
275
+ );
276
+ } else if (typeof options === 'string') {
277
+ bindEvent = BindEvent.from(
278
+ {
279
+ ...bindEventOptions,
280
+ name: options,
281
+ },
282
+ this,
283
+ 'bindEvents'
284
+ );
285
+ } else if (options instanceof BindEvent) {
286
+ options.ensureDelete(); // 同一实例不支持多处存在
287
+ bindEvent = options;
288
+ Object.assign(bindEvent, relationOptions);
289
+ } else {
290
+ bindEvent = BindEvent.from(
291
+ {
292
+ ...bindEventOptions,
293
+ ...options,
294
+ },
295
+ this,
296
+ 'bindEvents'
297
+ );
314
298
  }
315
-
316
- /**
317
- * 添加元素绑定事件
318
- * @internal
319
- * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
320
- */
321
- _addBindEvent(name?: string): BindEvent;
322
-
323
- /**
324
- * 添加元素绑定事件
325
- * @internal
326
- * @param bindEventOptions 元素绑定事件参数
327
- */
328
- _addBindEvent(bindEventOptions: Partial<BindEvent>): BindEvent;
329
-
330
- /**
331
- * 添加元素绑定事件
332
- * @internal
333
- * @param bindEvent 已有的元素绑定事件实例
334
- */
335
- _addBindEvent(bindEvent: BindEvent): BindEvent;
336
-
337
- _addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
338
- const index = this.bindEvents.length;
339
- return this._insertBindEventAt(options as any, index);
299
+ this.bindEvents.splice(index, 0, bindEvent);
300
+ return bindEvent;
301
+ }
302
+
303
+ /**
304
+ * 插入元素绑定事件
305
+ * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
306
+ */
307
+ insertBindEventAt(name: string, index: number): BindEvent;
308
+
309
+ /**
310
+ * 插入元素绑定事件
311
+ * @param bindEventOptions 元素绑定事件参数
312
+ */
313
+ insertBindEventAt(bindEventOptions: Partial<BindEvent>, index: number): BindEvent;
314
+
315
+ /**
316
+ * 插入元素绑定事件
317
+ * @param bindEvent 已有的元素绑定事件实例
318
+ */
319
+ insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent;
320
+
321
+ insertBindEventAt(options: string | Partial<BindEvent> | BindEvent, index: number) {
322
+ const node = this._insertBindEventAt(options as any, index);
323
+ node.create({
324
+ index,
325
+ parentNode: this,
326
+ parentKey: 'bindEvents',
327
+ });
328
+ return node;
329
+ }
330
+
331
+ /**
332
+ * 添加元素绑定事件
333
+ * @internal
334
+ * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
335
+ */
336
+ _addBindEvent(name?: string): BindEvent;
337
+
338
+ /**
339
+ * 添加元素绑定事件
340
+ * @internal
341
+ * @param bindEventOptions 元素绑定事件参数
342
+ */
343
+ _addBindEvent(bindEventOptions: Partial<BindEvent>): BindEvent;
344
+
345
+ /**
346
+ * 添加元素绑定事件
347
+ * @internal
348
+ * @param bindEvent 已有的元素绑定事件实例
349
+ */
350
+ _addBindEvent(bindEvent: BindEvent): BindEvent;
351
+
352
+ _addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
353
+ const index = this.bindEvents.length;
354
+ return this._insertBindEventAt(options as any, index);
355
+ }
356
+
357
+ /**
358
+ * 添加元素绑定事件
359
+ * @internal
360
+ * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
361
+ */
362
+ addBindEvent(name?: string): BindEvent;
363
+
364
+ /**
365
+ * 添加元素绑定事件
366
+ * @param bindEventOptions 元素绑定事件参数
367
+ */
368
+ addBindEvent(bindEventOptions: Partial<BindEvent>): BindEvent;
369
+
370
+ /**
371
+ * 添加元素绑定事件
372
+ * @param bindEvent 已有的元素绑定事件实例
373
+ */
374
+ addBindEvent(bindEvent: BindEvent): BindEvent;
375
+
376
+ addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
377
+ const node = this._addBindEvent(options as any);
378
+ const index = this.bindEvents.indexOf(node);
379
+ node.create({
380
+ index,
381
+ parentNode: this,
382
+ parentKey: 'bindEvents',
383
+ });
384
+ return node;
385
+ }
386
+
387
+ getViewExistingNames(excludedList: Array<View> = []) {
388
+ const excludedSet = new Set(excludedList);
389
+ return ((this.views as View[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
390
+ }
391
+
392
+ getViewUniqueName(name = 'view1') {
393
+ return utils.unique(name, this.getViewExistingNames(), undefined, true);
394
+ }
395
+
396
+ /**
397
+ * 插入页面
398
+ * @internal
399
+ * @param name 页面名称,如果不填会自动生成一个唯一名称
400
+ */
401
+ _insertViewAt(name: string, index: number): View;
402
+
403
+ /**
404
+ * 插入页面
405
+ * @internal
406
+ * @param viewOptions 页面参数
407
+ */
408
+ _insertViewAt(viewOptions: Partial<View>, index: number): View;
409
+
410
+ /**
411
+ * 插入页面
412
+ * @internal
413
+ * @param view 已有的页面实例
414
+ */
415
+ _insertViewAt(view: View, index: number): View;
416
+
417
+ _insertViewAt(options: string | Partial<View> | View, index: number) {
418
+ const viewOptions: any = {};
419
+ const relationOptions = { parentNode: this, parentKey: 'views' };
420
+ let view: View;
421
+ if (!options) {
422
+ view = View.from(
423
+ {
424
+ ...viewOptions,
425
+ name: this.getViewUniqueName(),
426
+ },
427
+ this,
428
+ 'views'
429
+ );
430
+ } else if (typeof options === 'string') {
431
+ view = View.from(
432
+ {
433
+ ...viewOptions,
434
+ name: options,
435
+ },
436
+ this,
437
+ 'views'
438
+ );
439
+ } else if (options instanceof View) {
440
+ options.ensureDelete(); // 同一实例不支持多处存在
441
+ view = options;
442
+ Object.assign(view, relationOptions);
443
+ } else {
444
+ view = View.from(
445
+ {
446
+ ...viewOptions,
447
+ ...options,
448
+ },
449
+ this,
450
+ 'views'
451
+ );
340
452
  }
341
-
342
- /**
343
- * 添加元素绑定事件
344
- * @internal
345
- * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称
346
- */
347
- addBindEvent(name?: string): BindEvent;
348
-
349
- /**
350
- * 添加元素绑定事件
351
- * @param bindEventOptions 元素绑定事件参数
352
- */
353
- addBindEvent(bindEventOptions: Partial<BindEvent>): BindEvent;
354
-
355
- /**
356
- * 添加元素绑定事件
357
- * @param bindEvent 已有的元素绑定事件实例
358
- */
359
- addBindEvent(bindEvent: BindEvent): BindEvent;
360
-
361
- addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
362
- const node = this._addBindEvent(options as any);
363
- const index = this.bindEvents.indexOf(node);
364
- node.create({
365
- index,
366
- parentNode: this,
367
- parentKey: 'bindEvents',
368
- });
369
- return node;
453
+ this.views.splice(index, 0, view);
454
+ return view;
455
+ }
456
+
457
+ /**
458
+ * 插入页面
459
+ * @param name 页面名称,如果不填会自动生成一个唯一名称
460
+ */
461
+ insertViewAt(name: string, index: number): View;
462
+
463
+ /**
464
+ * 插入页面
465
+ * @param viewOptions 页面参数
466
+ */
467
+ insertViewAt(viewOptions: Partial<View>, index: number): View;
468
+
469
+ /**
470
+ * 插入页面
471
+ * @param view 已有的页面实例
472
+ */
473
+ insertViewAt(view: View, index: number): View;
474
+
475
+ insertViewAt(options: string | Partial<View> | View, index: number) {
476
+ const node = this._insertViewAt(options as any, index);
477
+ node.create({
478
+ index,
479
+ parentNode: this,
480
+ parentKey: 'views',
481
+ });
482
+ return node;
483
+ }
484
+
485
+ /**
486
+ * 添加页面
487
+ * @internal
488
+ * @param name 页面名称,如果不填会自动生成一个唯一名称
489
+ */
490
+ _addView(name?: string): View;
491
+
492
+ /**
493
+ * 添加页面
494
+ * @internal
495
+ * @param viewOptions 页面参数
496
+ */
497
+ _addView(viewOptions: Partial<View>): View;
498
+
499
+ /**
500
+ * 添加页面
501
+ * @internal
502
+ * @param view 已有的页面实例
503
+ */
504
+ _addView(view: View): View;
505
+
506
+ _addView(options?: string | Partial<View> | View) {
507
+ const index = this.views.length;
508
+ return this._insertViewAt(options as any, index);
509
+ }
510
+
511
+ /**
512
+ * 添加页面
513
+ * @internal
514
+ * @param name 页面名称,如果不填会自动生成一个唯一名称
515
+ */
516
+ addView(name?: string): View;
517
+
518
+ /**
519
+ * 添加页面
520
+ * @param viewOptions 页面参数
521
+ */
522
+ addView(viewOptions: Partial<View>): View;
523
+
524
+ /**
525
+ * 添加页面
526
+ * @param view 已有的页面实例
527
+ */
528
+ addView(view: View): View;
529
+
530
+ addView(options?: string | Partial<View> | View) {
531
+ const node = this._addView(options as any);
532
+ const index = this.views.indexOf(node);
533
+ node.create({
534
+ index,
535
+ parentNode: this,
536
+ parentKey: 'views',
537
+ });
538
+ return node;
539
+ }
540
+
541
+ getVarExistingNames(excludedList: Array<FrontendVariable> = []) {
542
+ const excludedSet = new Set(excludedList);
543
+ return ((this.variables as FrontendVariable[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
544
+ }
545
+
546
+ getFrontendVariableUniqueName(name = 'frontendVariable1') {
547
+ return utils.unique(name, this.getVarExistingNames(), undefined, true);
548
+ }
549
+
550
+ /**
551
+ * 插入前端全局变量
552
+ * @internal
553
+ * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
554
+ */
555
+ _insertFrontendVariableAt(name: string, index: number): FrontendVariable;
556
+
557
+ /**
558
+ * 插入前端全局变量
559
+ * @internal
560
+ * @param frontendVariableOptions 前端全局变量参数
561
+ */
562
+ _insertFrontendVariableAt(frontendVariableOptions: Partial<FrontendVariable>, index: number): FrontendVariable;
563
+
564
+ /**
565
+ * 插入前端全局变量
566
+ * @internal
567
+ * @param frontendVariable 已有的前端全局变量实例
568
+ */
569
+ _insertFrontendVariableAt(frontendVariable: FrontendVariable, index: number): FrontendVariable;
570
+
571
+ _insertFrontendVariableAt(options: string | Partial<FrontendVariable> | FrontendVariable, index: number) {
572
+ const frontendVariableOptions: any = {};
573
+ const relationOptions = { parentNode: this, parentKey: 'variables' };
574
+ let frontendVariable: FrontendVariable;
575
+ if (!options) {
576
+ frontendVariable = FrontendVariable.from(
577
+ {
578
+ ...frontendVariableOptions,
579
+ name: this.getFrontendVariableUniqueName(),
580
+ },
581
+ this,
582
+ 'variables'
583
+ );
584
+ } else if (typeof options === 'string') {
585
+ frontendVariable = FrontendVariable.from(
586
+ {
587
+ ...frontendVariableOptions,
588
+ name: options,
589
+ },
590
+ this,
591
+ 'variables'
592
+ );
593
+ } else if (options instanceof FrontendVariable) {
594
+ options.ensureDelete(); // 同一实例不支持多处存在
595
+ frontendVariable = options;
596
+ Object.assign(frontendVariable, relationOptions);
597
+ } else {
598
+ frontendVariable = FrontendVariable.from(
599
+ {
600
+ ...frontendVariableOptions,
601
+ ...options,
602
+ },
603
+ this,
604
+ 'variables'
605
+ );
370
606
  }
371
-
372
- getViewExistingNames(excludedList: Array<View> = []) {
373
- const excludedSet = new Set(excludedList);
374
- return ((this.views as View[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
607
+ this.variables.splice(index, 0, frontendVariable);
608
+ return frontendVariable;
609
+ }
610
+
611
+ /**
612
+ * 插入前端全局变量
613
+ * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
614
+ */
615
+ insertFrontendVariableAt(name: string, index: number): FrontendVariable;
616
+
617
+ /**
618
+ * 插入前端全局变量
619
+ * @param frontendVariableOptions 前端全局变量参数
620
+ */
621
+ insertFrontendVariableAt(frontendVariableOptions: Partial<FrontendVariable>, index: number): FrontendVariable;
622
+
623
+ /**
624
+ * 插入前端全局变量
625
+ * @param frontendVariable 已有的前端全局变量实例
626
+ */
627
+ insertFrontendVariableAt(frontendVariable: FrontendVariable, index: number): FrontendVariable;
628
+
629
+ insertFrontendVariableAt(options: string | Partial<FrontendVariable> | FrontendVariable, index: number) {
630
+ const node = this._insertFrontendVariableAt(options as any, index);
631
+ node.create({
632
+ index,
633
+ parentNode: this,
634
+ parentKey: 'variables',
635
+ });
636
+ return node;
637
+ }
638
+
639
+ /**
640
+ * 添加前端全局变量
641
+ * @internal
642
+ * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
643
+ */
644
+ _addFrontendVariable(name?: string): FrontendVariable;
645
+
646
+ /**
647
+ * 添加前端全局变量
648
+ * @internal
649
+ * @param frontendVariableOptions 前端全局变量参数
650
+ */
651
+ _addFrontendVariable(frontendVariableOptions: Partial<FrontendVariable>): FrontendVariable;
652
+
653
+ /**
654
+ * 添加前端全局变量
655
+ * @internal
656
+ * @param frontendVariable 已有的前端全局变量实例
657
+ */
658
+ _addFrontendVariable(frontendVariable: FrontendVariable): FrontendVariable;
659
+
660
+ _addFrontendVariable(options?: string | Partial<FrontendVariable> | FrontendVariable) {
661
+ const index = this.variables.length;
662
+ return this._insertFrontendVariableAt(options as any, index);
663
+ }
664
+
665
+ /**
666
+ * 添加前端全局变量
667
+ * @internal
668
+ * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
669
+ */
670
+ addFrontendVariable(name?: string): FrontendVariable;
671
+
672
+ /**
673
+ * 添加前端全局变量
674
+ * @param frontendVariableOptions 前端全局变量参数
675
+ */
676
+ addFrontendVariable(frontendVariableOptions: Partial<FrontendVariable>): FrontendVariable;
677
+
678
+ /**
679
+ * 添加前端全局变量
680
+ * @param frontendVariable 已有的前端全局变量实例
681
+ */
682
+ addFrontendVariable(frontendVariable: FrontendVariable): FrontendVariable;
683
+
684
+ addFrontendVariable(options?: string | Partial<FrontendVariable> | FrontendVariable) {
685
+ const node = this._addFrontendVariable(options as any);
686
+ const index = this.variables.indexOf(node);
687
+ node.create({
688
+ index,
689
+ parentNode: this,
690
+ parentKey: 'variables',
691
+ });
692
+ return node;
693
+ }
694
+
695
+ getModuleExistingNames(excludedList: Array<Module> = []) {
696
+ const excludedSet = new Set(excludedList);
697
+ return ((this.componentDependencies as Module[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
698
+ }
699
+
700
+ getModuleUniqueName(name = 'module1') {
701
+ return utils.unique(name, this.getModuleExistingNames(), undefined, false);
702
+ }
703
+
704
+ /**
705
+ * 插入模块
706
+ * @internal
707
+ * @param name 模块名称,如果不填会自动生成一个唯一名称
708
+ */
709
+ _insertModuleAt(name: string, index: number): Module;
710
+
711
+ /**
712
+ * 插入模块
713
+ * @internal
714
+ * @param moduleOptions 模块参数
715
+ */
716
+ _insertModuleAt(moduleOptions: Partial<Module>, index: number): Module;
717
+
718
+ /**
719
+ * 插入模块
720
+ * @internal
721
+ * @param module 已有的模块实例
722
+ */
723
+ _insertModuleAt(module: Module, index: number): Module;
724
+
725
+ _insertModuleAt(options: string | Partial<Module> | Module, index: number) {
726
+ const moduleOptions: any = {};
727
+ const relationOptions = { parentNode: this, parentKey: 'componentDependencies' };
728
+ let module: Module;
729
+ if (!options) {
730
+ module = Module.from(
731
+ {
732
+ ...moduleOptions,
733
+ name: this.getModuleUniqueName(),
734
+ },
735
+ this,
736
+ 'componentDependencies'
737
+ );
738
+ } else if (typeof options === 'string') {
739
+ module = Module.from(
740
+ {
741
+ ...moduleOptions,
742
+ name: options,
743
+ },
744
+ this,
745
+ 'componentDependencies'
746
+ );
747
+ } else if (options instanceof Module) {
748
+ options.ensureDelete(); // 同一实例不支持多处存在
749
+ module = options;
750
+ Object.assign(module, relationOptions);
751
+ } else {
752
+ module = Module.from(
753
+ {
754
+ ...moduleOptions,
755
+ ...options,
756
+ },
757
+ this,
758
+ 'componentDependencies'
759
+ );
375
760
  }
376
- getViewUniqueName(name = 'view1') {
377
- return utils.unique(name, this.getViewExistingNames(), undefined, true);
761
+ this.componentDependencies.splice(index, 0, module);
762
+ return module;
763
+ }
764
+
765
+ /**
766
+ * 插入模块
767
+ * @param name 模块名称,如果不填会自动生成一个唯一名称
768
+ */
769
+ insertModuleAt(name: string, index: number): Module;
770
+
771
+ /**
772
+ * 插入模块
773
+ * @param moduleOptions 模块参数
774
+ */
775
+ insertModuleAt(moduleOptions: Partial<Module>, index: number): Module;
776
+
777
+ /**
778
+ * 插入模块
779
+ * @param module 已有的模块实例
780
+ */
781
+ insertModuleAt(module: Module, index: number): Module;
782
+
783
+ insertModuleAt(options: string | Partial<Module> | Module, index: number) {
784
+ const node = this._insertModuleAt(options as any, index);
785
+ node.create({
786
+ index,
787
+ parentNode: this,
788
+ parentKey: 'componentDependencies',
789
+ });
790
+ return node;
791
+ }
792
+
793
+ /**
794
+ * 添加模块
795
+ * @internal
796
+ * @param name 模块名称,如果不填会自动生成一个唯一名称
797
+ */
798
+ _addModule(name?: string): Module;
799
+
800
+ /**
801
+ * 添加模块
802
+ * @internal
803
+ * @param moduleOptions 模块参数
804
+ */
805
+ _addModule(moduleOptions: Partial<Module>): Module;
806
+
807
+ /**
808
+ * 添加模块
809
+ * @internal
810
+ * @param module 已有的模块实例
811
+ */
812
+ _addModule(module: Module): Module;
813
+
814
+ _addModule(options?: string | Partial<Module> | Module) {
815
+ const index = this.componentDependencies.length;
816
+ return this._insertModuleAt(options as any, index);
817
+ }
818
+
819
+ /**
820
+ * 添加模块
821
+ * @internal
822
+ * @param name 模块名称,如果不填会自动生成一个唯一名称
823
+ */
824
+ addModule(name?: string): Module;
825
+
826
+ /**
827
+ * 添加模块
828
+ * @param moduleOptions 模块参数
829
+ */
830
+ addModule(moduleOptions: Partial<Module>): Module;
831
+
832
+ /**
833
+ * 添加模块
834
+ * @param module 已有的模块实例
835
+ */
836
+ addModule(module: Module): Module;
837
+
838
+ addModule(options?: string | Partial<Module> | Module) {
839
+ const node = this._addModule(options as any);
840
+ const index = this.componentDependencies.indexOf(node);
841
+ node.create({
842
+ index,
843
+ parentNode: this,
844
+ parentKey: 'componentDependencies',
845
+ });
846
+ return node;
847
+ }
848
+
849
+ /**
850
+ * 删除元素绑定事件
851
+ * @param name 元素绑定事件名称
852
+ */
853
+ removeBindEvent(name: string): void;
854
+
855
+ /**
856
+ * 删除元素绑定事件
857
+ * @param bindEvent 已有的元素绑定事件实例
858
+ */
859
+ removeBindEvent(bindEvent: BindEvent): void;
860
+
861
+ removeBindEvent(options: string | BindEvent) {
862
+ let bindEvent: BindEvent;
863
+ if (typeof options === 'string') {
864
+ bindEvent = (this.bindEvents as BindEvent[]).find((item) => item.name === options);
865
+ if (!bindEvent) {
866
+ throw new Error(`找不到元素绑定事件 ${options}`);
867
+ }
868
+ } else {
869
+ bindEvent = options;
378
870
  }
379
-
380
- /**
381
- * 插入页面
382
- * @internal
383
- * @param name 页面名称,如果不填会自动生成一个唯一名称
384
- */
385
- _insertViewAt(name: string, index: number): View;
386
-
387
- /**
388
- * 插入页面
389
- * @internal
390
- * @param viewOptions 页面参数
391
- */
392
- _insertViewAt(viewOptions: Partial<View>, index: number): View;
393
-
394
- /**
395
- * 插入页面
396
- * @internal
397
- * @param view 已有的页面实例
398
- */
399
- _insertViewAt(view: View, index: number): View;
400
-
401
- _insertViewAt(options: string | Partial<View> | View, index: number) {
402
- const viewOptions: any = {};
403
- const relationOptions = { parentNode: this, parentKey: 'views' };
404
- let view: View;
405
- if (!options) {
406
- view = View.from({
407
- ...viewOptions,
408
- name: this.getViewUniqueName(),
409
- }, this, 'views');
410
- } else if (typeof options === 'string') {
411
- view = View.from({
412
- ...viewOptions,
413
- name: options,
414
- }, this, 'views');
415
- } else if (options instanceof View) {
416
- options.ensureDelete(); // 同一实例不支持多处存在
417
- view = options;
418
- Object.assign(view, relationOptions);
419
- } else {
420
- view = View.from({
421
- ...viewOptions,
422
- ...options,
423
- }, this, 'views');
424
- }
425
- this.views.splice(index, 0, view);
426
- return view;
871
+ return bindEvent.delete();
872
+ }
873
+
874
+ __removeBindEvent(bindEvent: BindEvent) {
875
+ const { parentKey } = bindEvent;
876
+ const params: Params = {
877
+ parentNode: this,
878
+ parentKey,
879
+ index: -1,
880
+ object: null,
881
+ oldObject: bindEvent,
882
+ };
883
+ if (parentKey) {
884
+ params.parentKey = parentKey;
885
+ if (Array.isArray((this as any)[parentKey])) {
886
+ const index = (this as any)[parentKey].indexOf(bindEvent);
887
+ ~index && (this as any)[parentKey].splice(index, 1);
888
+ params.index = index;
889
+ } else if ((this as any)[parentKey] === bindEvent) {
890
+ params.index = 0;
891
+ (this as any)[parentKey] = undefined;
892
+ }
427
893
  }
428
-
429
- /**
430
- * 插入页面
431
- * @param name 页面名称,如果不填会自动生成一个唯一名称
432
- */
433
- insertViewAt(name: string, index: number): View;
434
-
435
- /**
436
- * 插入页面
437
- * @param viewOptions 页面参数
438
- */
439
- insertViewAt(viewOptions: Partial<View>, index: number): View;
440
-
441
- /**
442
- * 插入页面
443
- * @param view 已有的页面实例
444
- */
445
- insertViewAt(view: View, index: number): View;
446
-
447
- insertViewAt(options: string | Partial<View> | View, index: number) {
448
- const node = this._insertViewAt(options as any, index);
449
- node.create({
450
- index,
451
- parentNode: this,
452
- parentKey: 'views',
453
- });
454
- return node;
894
+ return params;
895
+ }
896
+
897
+ /**
898
+ * 删除页面
899
+ * @param name 页面名称
900
+ */
901
+ removeView(name: string): void;
902
+
903
+ /**
904
+ * 删除页面
905
+ * @param view 已有的页面实例
906
+ */
907
+ removeView(view: View): void;
908
+
909
+ removeView(options: string | View) {
910
+ let view: View;
911
+ if (typeof options === 'string') {
912
+ view = (this.views as View[]).find((item) => item.name === options);
913
+ if (!view) {
914
+ throw new Error(`找不到页面 ${options}`);
915
+ }
916
+ } else {
917
+ view = options;
455
918
  }
456
-
457
- /**
458
- * 添加页面
459
- * @internal
460
- * @param name 页面名称,如果不填会自动生成一个唯一名称
461
- */
462
- _addView(name?: string): View;
463
-
464
- /**
465
- * 添加页面
466
- * @internal
467
- * @param viewOptions 页面参数
468
- */
469
- _addView(viewOptions: Partial<View>): View;
470
-
471
- /**
472
- * 添加页面
473
- * @internal
474
- * @param view 已有的页面实例
475
- */
476
- _addView(view: View): View;
477
-
478
- _addView(options?: string | Partial<View> | View) {
479
- const index = this.views.length;
480
- return this._insertViewAt(options as any, index);
919
+ return view.delete();
920
+ }
921
+
922
+ __removeView(view: View) {
923
+ const { parentKey } = view;
924
+ const params: Params = {
925
+ parentNode: this,
926
+ parentKey,
927
+ index: -1,
928
+ object: null,
929
+ oldObject: view,
930
+ };
931
+ if (parentKey) {
932
+ params.parentKey = parentKey;
933
+ if (Array.isArray((this as any)[parentKey])) {
934
+ const index = (this as any)[parentKey].indexOf(view);
935
+ ~index && (this as any)[parentKey].splice(index, 1);
936
+ params.index = index;
937
+ } else if ((this as any)[parentKey] === view) {
938
+ params.index = 0;
939
+ (this as any)[parentKey] = undefined;
940
+ }
481
941
  }
482
-
483
- /**
484
- * 添加页面
485
- * @internal
486
- * @param name 页面名称,如果不填会自动生成一个唯一名称
487
- */
488
- addView(name?: string): View;
489
-
490
- /**
491
- * 添加页面
492
- * @param viewOptions 页面参数
493
- */
494
- addView(viewOptions: Partial<View>): View;
495
-
496
- /**
497
- * 添加页面
498
- * @param view 已有的页面实例
499
- */
500
- addView(view: View): View;
501
-
502
- addView(options?: string | Partial<View> | View) {
503
- const node = this._addView(options as any);
504
- const index = this.views.indexOf(node);
505
- node.create({
506
- index,
507
- parentNode: this,
508
- parentKey: 'views',
509
- });
510
- return node;
942
+ return params;
943
+ }
944
+
945
+ /**
946
+ * 删除前端全局变量
947
+ * @param name 前端全局变量名称
948
+ */
949
+ removeFrontendVariable(name: string): void;
950
+
951
+ /**
952
+ * 删除前端全局变量
953
+ * @param frontendVariable 已有的前端全局变量实例
954
+ */
955
+ removeFrontendVariable(frontendVariable: FrontendVariable): void;
956
+
957
+ removeFrontendVariable(options: string | FrontendVariable) {
958
+ let frontendVariable: FrontendVariable;
959
+ if (typeof options === 'string') {
960
+ frontendVariable = (this.variables as FrontendVariable[]).find((item) => item.name === options);
961
+ if (!frontendVariable) {
962
+ throw new Error(`找不到前端全局变量 ${options}`);
963
+ }
964
+ } else {
965
+ frontendVariable = options;
511
966
  }
512
-
513
- getVarExistingNames(excludedList: Array<FrontendVariable> = []) {
514
- const excludedSet = new Set(excludedList);
515
- return ((this.variables as FrontendVariable[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
967
+ return frontendVariable.delete();
968
+ }
969
+
970
+ __removeVariable(variable: Variable) {
971
+ const { parentKey } = variable;
972
+ const params: Params = {
973
+ parentNode: this,
974
+ parentKey,
975
+ index: -1,
976
+ object: null,
977
+ oldObject: variable,
978
+ };
979
+ if (parentKey) {
980
+ params.parentKey = parentKey;
981
+ if (Array.isArray((this as any)[parentKey])) {
982
+ const index = (this as any)[parentKey].indexOf(variable);
983
+ ~index && (this as any)[parentKey].splice(index, 1);
984
+ params.index = index;
985
+ } else if ((this as any)[parentKey] === variable) {
986
+ params.index = 0;
987
+ (this as any)[parentKey] = undefined;
988
+ }
516
989
  }
517
- getFrontendVariableUniqueName(name = 'frontendVariable1') {
518
- return utils.unique(name, this.getVarExistingNames(), undefined, true);
990
+ return params;
991
+ }
992
+
993
+ /**
994
+ * 删除主题
995
+ * @param name 主题名称
996
+ */
997
+ removeTheme(name: string): void;
998
+
999
+ /**
1000
+ * 删除主题
1001
+ * @param theme 已有的主题实例
1002
+ */
1003
+ removeTheme(theme: Theme): void;
1004
+
1005
+ removeTheme(options: string | Theme) {
1006
+ let theme: Theme;
1007
+ if (typeof options === 'string') {
1008
+ theme = this.theme;
1009
+ if (!theme) {
1010
+ throw new Error(`找不到主题 ${options}`);
1011
+ }
1012
+ } else {
1013
+ theme = options;
519
1014
  }
520
-
521
- /**
522
- * 插入前端全局变量
523
- * @internal
524
- * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
525
- */
526
- _insertFrontendVariableAt(name: string, index: number): FrontendVariable;
527
-
528
- /**
529
- * 插入前端全局变量
530
- * @internal
531
- * @param frontendVariableOptions 前端全局变量参数
532
- */
533
- _insertFrontendVariableAt(frontendVariableOptions: Partial<FrontendVariable>, index: number): FrontendVariable;
534
-
535
- /**
536
- * 插入前端全局变量
537
- * @internal
538
- * @param frontendVariable 已有的前端全局变量实例
539
- */
540
- _insertFrontendVariableAt(frontendVariable: FrontendVariable, index: number): FrontendVariable;
541
-
542
- _insertFrontendVariableAt(options: string | Partial<FrontendVariable> | FrontendVariable, index: number) {
543
- const frontendVariableOptions: any = {};
544
- const relationOptions = { parentNode: this, parentKey: 'variables' };
545
- let frontendVariable: FrontendVariable;
546
- if (!options) {
547
- frontendVariable = FrontendVariable.from({
548
- ...frontendVariableOptions,
549
- name: this.getFrontendVariableUniqueName(),
550
- }, this, 'variables');
551
- } else if (typeof options === 'string') {
552
- frontendVariable = FrontendVariable.from({
553
- ...frontendVariableOptions,
554
- name: options,
555
- }, this, 'variables');
556
- } else if (options instanceof FrontendVariable) {
557
- options.ensureDelete(); // 同一实例不支持多处存在
558
- frontendVariable = options;
559
- Object.assign(frontendVariable, relationOptions);
560
- } else {
561
- frontendVariable = FrontendVariable.from({
562
- ...frontendVariableOptions,
563
- ...options,
564
- }, this, 'variables');
565
- }
566
- this.variables.splice(index, 0, frontendVariable);
567
- return frontendVariable;
1015
+ return theme.delete();
1016
+ }
1017
+
1018
+ __removeTheme(theme: Theme) {
1019
+ const { parentKey } = theme;
1020
+ const params: Params = {
1021
+ parentNode: this,
1022
+ parentKey,
1023
+ index: -1,
1024
+ object: null,
1025
+ oldObject: theme,
1026
+ };
1027
+ if (parentKey) {
1028
+ params.parentKey = parentKey;
1029
+ if (Array.isArray((this as any)[parentKey])) {
1030
+ const index = (this as any)[parentKey].indexOf(theme);
1031
+ ~index && (this as any)[parentKey].splice(index, 1);
1032
+ params.index = index;
1033
+ } else if ((this as any)[parentKey] === theme) {
1034
+ params.index = 0;
1035
+ (this as any)[parentKey] = undefined;
1036
+ }
568
1037
  }
569
-
570
- /**
571
- * 插入前端全局变量
572
- * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
573
- */
574
- insertFrontendVariableAt(name: string, index: number): FrontendVariable;
575
-
576
- /**
577
- * 插入前端全局变量
578
- * @param frontendVariableOptions 前端全局变量参数
579
- */
580
- insertFrontendVariableAt(frontendVariableOptions: Partial<FrontendVariable>, index: number): FrontendVariable;
581
-
582
- /**
583
- * 插入前端全局变量
584
- * @param frontendVariable 已有的前端全局变量实例
585
- */
586
- insertFrontendVariableAt(frontendVariable: FrontendVariable, index: number): FrontendVariable;
587
-
588
- insertFrontendVariableAt(options: string | Partial<FrontendVariable> | FrontendVariable, index: number) {
589
- const node = this._insertFrontendVariableAt(options as any, index);
590
- node.create({
591
- index,
592
- parentNode: this,
593
- parentKey: 'variables',
594
- });
595
- return node;
1038
+ return params;
1039
+ }
1040
+
1041
+ /**
1042
+ * 删除模块
1043
+ * @param name 模块名称
1044
+ */
1045
+ removeModule(name: string): void;
1046
+
1047
+ /**
1048
+ * 删除模块
1049
+ * @param module 已有的模块实例
1050
+ */
1051
+ removeModule(module: Module): void;
1052
+
1053
+ removeModule(options: string | Module) {
1054
+ let module: Module;
1055
+ if (typeof options === 'string') {
1056
+ module = (this.componentDependencies as Module[]).find((item) => item.name === options);
1057
+ if (!module) {
1058
+ throw new Error(`找不到模块 ${options}`);
1059
+ }
1060
+ } else {
1061
+ module = options;
596
1062
  }
597
-
598
- /**
599
- * 添加前端全局变量
600
- * @internal
601
- * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
602
- */
603
- _addFrontendVariable(name?: string): FrontendVariable;
604
-
605
- /**
606
- * 添加前端全局变量
607
- * @internal
608
- * @param frontendVariableOptions 前端全局变量参数
609
- */
610
- _addFrontendVariable(frontendVariableOptions: Partial<FrontendVariable>): FrontendVariable;
611
-
612
- /**
613
- * 添加前端全局变量
614
- * @internal
615
- * @param frontendVariable 已有的前端全局变量实例
616
- */
617
- _addFrontendVariable(frontendVariable: FrontendVariable): FrontendVariable;
618
-
619
- _addFrontendVariable(options?: string | Partial<FrontendVariable> | FrontendVariable) {
620
- const index = this.variables.length;
621
- return this._insertFrontendVariableAt(options as any, index);
1063
+ return module.delete();
1064
+ }
1065
+
1066
+ __removeModule(module: Module) {
1067
+ const { parentKey } = module;
1068
+ const params: Params = {
1069
+ parentNode: this,
1070
+ parentKey,
1071
+ index: -1,
1072
+ object: null,
1073
+ oldObject: module,
1074
+ };
1075
+ if (parentKey) {
1076
+ params.parentKey = parentKey;
1077
+ if (Array.isArray((this as any)[parentKey])) {
1078
+ const index = (this as any)[parentKey].indexOf(module);
1079
+ ~index && (this as any)[parentKey].splice(index, 1);
1080
+ params.index = index;
1081
+ } else if ((this as any)[parentKey] === module) {
1082
+ params.index = 0;
1083
+ (this as any)[parentKey] = undefined;
1084
+ }
622
1085
  }
623
-
624
- /**
625
- * 添加前端全局变量
626
- * @internal
627
- * @param name 前端全局变量名称,如果不填会自动生成一个唯一名称
628
- */
629
- addFrontendVariable(name?: string): FrontendVariable;
630
-
631
- /**
632
- * 添加前端全局变量
633
- * @param frontendVariableOptions 前端全局变量参数
634
- */
635
- addFrontendVariable(frontendVariableOptions: Partial<FrontendVariable>): FrontendVariable;
636
-
637
- /**
638
- * 添加前端全局变量
639
- * @param frontendVariable 已有的前端全局变量实例
640
- */
641
- addFrontendVariable(frontendVariable: FrontendVariable): FrontendVariable;
642
-
643
- addFrontendVariable(options?: string | Partial<FrontendVariable> | FrontendVariable) {
644
- const node = this._addFrontendVariable(options as any);
645
- const index = this.variables.indexOf(node);
646
- node.create({
647
- index,
648
- parentNode: this,
649
- parentKey: 'variables',
650
- });
651
- return node;
652
- }
653
-
654
- getModuleExistingNames(excludedList: Array<Module> = []) {
655
- const excludedSet = new Set(excludedList);
656
- return ((this.componentDependencies as Module[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
657
- }
658
- getModuleUniqueName(name = 'module1') {
659
- return utils.unique(name, this.getModuleExistingNames(), undefined, false);
660
- }
661
-
662
- /**
663
- * 插入模块
664
- * @internal
665
- * @param name 模块名称,如果不填会自动生成一个唯一名称
666
- */
667
- _insertModuleAt(name: string, index: number): Module;
668
-
669
- /**
670
- * 插入模块
671
- * @internal
672
- * @param moduleOptions 模块参数
673
- */
674
- _insertModuleAt(moduleOptions: Partial<Module>, index: number): Module;
675
-
676
- /**
677
- * 插入模块
678
- * @internal
679
- * @param module 已有的模块实例
680
- */
681
- _insertModuleAt(module: Module, index: number): Module;
682
-
683
- _insertModuleAt(options: string | Partial<Module> | Module, index: number) {
684
- const moduleOptions: any = {};
685
- const relationOptions = { parentNode: this, parentKey: 'componentDependencies' };
686
- let module: Module;
687
- if (!options) {
688
- module = Module.from({
689
- ...moduleOptions,
690
- name: this.getModuleUniqueName(),
691
- }, this, 'componentDependencies');
692
- } else if (typeof options === 'string') {
693
- module = Module.from({
694
- ...moduleOptions,
695
- name: options,
696
- }, this, 'componentDependencies');
697
- } else if (options instanceof Module) {
698
- options.ensureDelete(); // 同一实例不支持多处存在
699
- module = options;
700
- Object.assign(module, relationOptions);
701
- } else {
702
- module = Module.from({
703
- ...moduleOptions,
704
- ...options,
705
- }, this, 'componentDependencies');
706
- }
707
- this.componentDependencies.splice(index, 0, module);
708
- return module;
709
- }
710
-
711
- /**
712
- * 插入模块
713
- * @param name 模块名称,如果不填会自动生成一个唯一名称
714
- */
715
- insertModuleAt(name: string, index: number): Module;
716
-
717
- /**
718
- * 插入模块
719
- * @param moduleOptions 模块参数
720
- */
721
- insertModuleAt(moduleOptions: Partial<Module>, index: number): Module;
722
-
723
- /**
724
- * 插入模块
725
- * @param module 已有的模块实例
726
- */
727
- insertModuleAt(module: Module, index: number): Module;
728
-
729
- insertModuleAt(options: string | Partial<Module> | Module, index: number) {
730
- const node = this._insertModuleAt(options as any, index);
731
- node.create({
732
- index,
733
- parentNode: this,
734
- parentKey: 'componentDependencies',
735
- });
736
- return node;
737
- }
738
-
739
- /**
740
- * 添加模块
741
- * @internal
742
- * @param name 模块名称,如果不填会自动生成一个唯一名称
743
- */
744
- _addModule(name?: string): Module;
745
-
746
- /**
747
- * 添加模块
748
- * @internal
749
- * @param moduleOptions 模块参数
750
- */
751
- _addModule(moduleOptions: Partial<Module>): Module;
752
-
753
- /**
754
- * 添加模块
755
- * @internal
756
- * @param module 已有的模块实例
757
- */
758
- _addModule(module: Module): Module;
759
-
760
- _addModule(options?: string | Partial<Module> | Module) {
761
- const index = this.componentDependencies.length;
762
- return this._insertModuleAt(options as any, index);
763
- }
764
-
765
- /**
766
- * 添加模块
767
- * @internal
768
- * @param name 模块名称,如果不填会自动生成一个唯一名称
769
- */
770
- addModule(name?: string): Module;
771
-
772
- /**
773
- * 添加模块
774
- * @param moduleOptions 模块参数
775
- */
776
- addModule(moduleOptions: Partial<Module>): Module;
777
-
778
- /**
779
- * 添加模块
780
- * @param module 已有的模块实例
781
- */
782
- addModule(module: Module): Module;
783
-
784
- addModule(options?: string | Partial<Module> | Module) {
785
- const node = this._addModule(options as any);
786
- const index = this.componentDependencies.indexOf(node);
787
- node.create({
788
- index,
789
- parentNode: this,
790
- parentKey: 'componentDependencies',
791
- });
792
- return node;
793
- }
794
-
795
- /**
796
- * 删除元素绑定事件
797
- * @param name 元素绑定事件名称
798
- */
799
- removeBindEvent(name: string): void;
800
-
801
- /**
802
- * 删除元素绑定事件
803
- * @param bindEvent 已有的元素绑定事件实例
804
- */
805
- removeBindEvent(bindEvent: BindEvent): void;
806
-
807
- removeBindEvent(options: string | BindEvent) {
808
- let bindEvent: BindEvent;
809
- if (typeof options === 'string') {
810
- bindEvent = (this.bindEvents as BindEvent[]).find((item) => item.name === options);
811
- if (!bindEvent) {
812
- throw new Error('找不到元素绑定事件 ' + options);
813
- }
814
- } else {
815
- bindEvent = options;
816
- }
817
- return bindEvent.delete();
818
- }
819
-
820
- __removeBindEvent(bindEvent: BindEvent) {
821
- const parentKey = bindEvent.parentKey;
822
- const params: Params = {
823
- parentNode: this,
824
- parentKey,
825
- index: -1,
826
- object: null,
827
- oldObject: bindEvent,
828
- };
829
- if (parentKey) {
830
- params.parentKey = parentKey;
831
- if (Array.isArray((this as any)[parentKey])) {
832
- const index = (this as any)[parentKey].indexOf(bindEvent);
833
- ~index && (this as any)[parentKey].splice(index, 1);
834
- params.index = index;
835
- } else if ((this as any)[parentKey] === bindEvent) {
836
- params.index = 0;
837
- (this as any)[parentKey] = undefined;
838
- }
839
- }
840
- return params;
841
- }
842
-
843
- /**
844
- * 删除页面
845
- * @param name 页面名称
846
- */
847
- removeView(name: string): void;
848
-
849
- /**
850
- * 删除页面
851
- * @param view 已有的页面实例
852
- */
853
- removeView(view: View): void;
854
-
855
- removeView(options: string | View) {
856
- let view: View;
857
- if (typeof options === 'string') {
858
- view = (this.views as View[]).find((item) => item.name === options);
859
- if (!view) {
860
- throw new Error('找不到页面 ' + options);
861
- }
862
- } else {
863
- view = options;
864
- }
865
- return view.delete();
866
- }
867
-
868
- __removeView(view: View) {
869
- const parentKey = view.parentKey;
870
- const params: Params = {
871
- parentNode: this,
872
- parentKey,
873
- index: -1,
874
- object: null,
875
- oldObject: view,
876
- };
877
- if (parentKey) {
878
- params.parentKey = parentKey;
879
- if (Array.isArray((this as any)[parentKey])) {
880
- const index = (this as any)[parentKey].indexOf(view);
881
- ~index && (this as any)[parentKey].splice(index, 1);
882
- params.index = index;
883
- } else if ((this as any)[parentKey] === view) {
884
- params.index = 0;
885
- (this as any)[parentKey] = undefined;
886
- }
887
- }
888
- return params;
889
- }
890
-
891
- /**
892
- * 删除前端全局变量
893
- * @param name 前端全局变量名称
894
- */
895
- removeFrontendVariable(name: string): void;
896
-
897
- /**
898
- * 删除前端全局变量
899
- * @param frontendVariable 已有的前端全局变量实例
900
- */
901
- removeFrontendVariable(frontendVariable: FrontendVariable): void;
902
-
903
- removeFrontendVariable(options: string | FrontendVariable) {
904
- let frontendVariable: FrontendVariable;
905
- if (typeof options === 'string') {
906
- frontendVariable = (this.variables as FrontendVariable[]).find((item) => item.name === options);
907
- if (!frontendVariable) {
908
- throw new Error('找不到前端全局变量 ' + options);
909
- }
910
- } else {
911
- frontendVariable = options;
912
- }
913
- return frontendVariable.delete();
914
- }
915
-
916
- __removeVariable(variable: Variable) {
917
- const parentKey = variable.parentKey;
918
- const params: Params = {
919
- parentNode: this,
920
- parentKey,
921
- index: -1,
922
- object: null,
923
- oldObject: variable,
924
- };
925
- if (parentKey) {
926
- params.parentKey = parentKey;
927
- if (Array.isArray((this as any)[parentKey])) {
928
- const index = (this as any)[parentKey].indexOf(variable);
929
- ~index && (this as any)[parentKey].splice(index, 1);
930
- params.index = index;
931
- } else if ((this as any)[parentKey] === variable) {
932
- params.index = 0;
933
- (this as any)[parentKey] = undefined;
934
- }
935
- }
936
- return params;
937
- }
938
-
939
- /**
940
- * 删除主题
941
- * @param name 主题名称
942
- */
943
- removeTheme(name: string): void;
944
-
945
- /**
946
- * 删除主题
947
- * @param theme 已有的主题实例
948
- */
949
- removeTheme(theme: Theme): void;
950
-
951
- removeTheme(options: string | Theme) {
952
- let theme: Theme;
953
- if (typeof options === 'string') {
954
- theme = this.theme;
955
- if (!theme) {
956
- throw new Error('找不到主题 ' + options);
957
- }
958
- } else {
959
- theme = options;
960
- }
961
- return theme.delete();
962
- }
963
-
964
- __removeTheme(theme: Theme) {
965
- const parentKey = theme.parentKey;
966
- const params: Params = {
967
- parentNode: this,
968
- parentKey,
969
- index: -1,
970
- object: null,
971
- oldObject: theme,
972
- };
973
- if (parentKey) {
974
- params.parentKey = parentKey;
975
- if (Array.isArray((this as any)[parentKey])) {
976
- const index = (this as any)[parentKey].indexOf(theme);
977
- ~index && (this as any)[parentKey].splice(index, 1);
978
- params.index = index;
979
- } else if ((this as any)[parentKey] === theme) {
980
- params.index = 0;
981
- (this as any)[parentKey] = undefined;
982
- }
983
- }
984
- return params;
985
- }
986
-
987
- /**
988
- * 删除模块
989
- * @param name 模块名称
990
- */
991
- removeModule(name: string): void;
992
-
993
- /**
994
- * 删除模块
995
- * @param module 已有的模块实例
996
- */
997
- removeModule(module: Module): void;
998
-
999
- removeModule(options: string | Module) {
1000
- let module: Module;
1001
- if (typeof options === 'string') {
1002
- module = (this.componentDependencies as Module[]).find((item) => item.name === options);
1003
- if (!module) {
1004
- throw new Error('找不到模块 ' + options);
1005
- }
1006
- } else {
1007
- module = options;
1008
- }
1009
- return module.delete();
1010
- }
1011
-
1012
- __removeModule(module: Module) {
1013
- const parentKey = module.parentKey;
1014
- const params: Params = {
1015
- parentNode: this,
1016
- parentKey,
1017
- index: -1,
1018
- object: null,
1019
- oldObject: module,
1020
- };
1021
- if (parentKey) {
1022
- params.parentKey = parentKey;
1023
- if (Array.isArray((this as any)[parentKey])) {
1024
- const index = (this as any)[parentKey].indexOf(module);
1025
- ~index && (this as any)[parentKey].splice(index, 1);
1026
- params.index = index;
1027
- } else if ((this as any)[parentKey] === module) {
1028
- params.index = 0;
1029
- (this as any)[parentKey] = undefined;
1030
- }
1031
- }
1032
- return params;
1033
- }
1034
-
1035
- //================================================================================
1036
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1037
- // 自动生成的代码已结束。下面可以手动编写。
1038
- //================================================================================
1039
-
1040
- findComponentDependencyByName(name: string) {
1041
- return this.componentDependencies.find((componentDependency) => componentDependency.name === name);
1042
- }
1043
-
1044
- /**
1045
- * @param path 路径
1046
- * path 为要查找路径:如 /dashboard/student/list、/dashboard/student/list
1047
- */
1048
- findViewByPath(path: string) {
1049
- const arr = path.split('/');
1050
- if (arr[0] === '')
1051
- arr.shift();
1052
-
1053
- if (!arr.length)
1054
- throw Error('Cannot find View ' + path);
1055
- const childName = arr.shift();
1056
- const subView = this.views.find((child) => child.name === childName);
1057
- return arr.length ? subView.findViewByPath(arr.join('/')) : subView;
1058
- }
1059
-
1060
- findViewByName(name: string): View {
1061
- return utils.traverse((current) => {
1062
- if (current.node.name === name)
1063
- return current.node;
1064
- }, { node: { name: '', children: this.views } });
1065
- }
1066
-
1067
- genThemeCSS() {
1068
- const keys = Object.keys(this.theme?.variableMap || {});
1069
- if (!keys.length)
1070
- return;
1071
-
1072
- return `:root {
1086
+ return params;
1087
+ }
1088
+
1089
+ //= ===============================================================================
1090
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1091
+ // 自动生成的代码已结束。下面可以手动编写。
1092
+ //= ===============================================================================
1093
+
1094
+ findComponentDependencyByName(name: string) {
1095
+ return this.componentDependencies.find((componentDependency) => componentDependency.name === name);
1096
+ }
1097
+
1098
+ /**
1099
+ * @param path 路径
1100
+ * path 为要查找路径:如 /dashboard/student/list、/dashboard/student/list
1101
+ */
1102
+ findViewByPath(path: string) {
1103
+ const arr = path.split('/');
1104
+ if (arr[0] === '') arr.shift();
1105
+
1106
+ if (!arr.length) throw Error(`Cannot find View ${path}`);
1107
+ const childName = arr.shift();
1108
+ const subView = this.views.find((child) => child.name === childName);
1109
+ return arr.length ? subView.findViewByPath(arr.join('/')) : subView;
1110
+ }
1111
+
1112
+ findViewByName(name: string): View {
1113
+ return utils.traverse(
1114
+ (current) => {
1115
+ if (current.node.name === name) return current.node;
1116
+ },
1117
+ { node: { name: '', children: this.views } }
1118
+ );
1119
+ }
1120
+
1121
+ genThemeCSS() {
1122
+ const keys = Object.keys(this.theme?.variableMap || {});
1123
+ if (!keys.length) return;
1124
+
1125
+ return `:root {
1073
1126
  ${keys.map((key) => ` ${key}: ${this.theme?.variableMap[key]};`).join('\n')}
1074
1127
  }`;
1128
+ }
1129
+
1130
+ getTsNamespace() {
1131
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
1132
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
1133
+ const parentName = this.parentNode.name;
1134
+ const arr = [parentNamespace];
1135
+ if (this.parentNode.concept !== 'App' && parentName) {
1136
+ arr.push(parentName);
1137
+ }
1138
+ return `${arr.join('.')}.frontends`;
1075
1139
  }
1076
- getTsNamespace() {
1077
- if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
1078
- const parentNamespace = (this.parentNode as Namespace).getNamespace();
1079
- const parentName = this.parentNode.name;
1080
- const arr = [parentNamespace];
1081
- if (this.parentNode.concept !== 'App' && parentName) {
1082
- arr.push(parentName);
1083
- }
1084
- return `${arr.join('.')}.frontends`;
1085
- } else
1086
- throw new Error('无法获取命名空间,请设置 parentNode!');
1087
- }
1088
-
1089
- getNamespace() {
1090
- if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
1091
- const parentNamespace = (this.parentNode as Namespace).getNamespace();
1092
- const parentName = this.parentNode.name;
1093
- const arr = [parentNamespace];
1094
- if (this.parentNode.concept !== 'App' && parentName) {
1095
- arr.push(parentName);
1096
- }
1097
- return `${arr.join('.')}.frontends`;
1098
- } else
1099
- throw new Error('无法获取命名空间,请设置 parentNode!');
1140
+ throw new Error('无法获取命名空间,请设置 parentNode!');
1141
+ }
1142
+
1143
+ getNamespace() {
1144
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
1145
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
1146
+ const parentName = this.parentNode.name;
1147
+ const arr = [parentNamespace];
1148
+ if (this.parentNode.concept !== 'App' && parentName) {
1149
+ arr.push(parentName);
1150
+ }
1151
+ return `${arr.join('.')}.frontends`;
1100
1152
  }
1101
-
1102
- /**
1103
- * 生成宿主语言的文件路径
1104
- * @param name 一般不用传,用于 rename
1105
- */
1106
- getEmbeddedFilePath(name = this.name) {
1107
- return `/embedded/${this.rootNode?.name || this.parentNode.name}/frontends/${name}.ts`;
1108
- }
1109
-
1110
- @withSourceMap()
1111
- toEmbeddedTS(state?: TranslatorState): string {
1112
- let code = `export namespace ${this.name} {\n`;
1113
- code += 'const name = ';
1114
- code += '"' + this.name + '";\n';
1115
- code += '}\n';
1116
- return code;
1153
+ throw new Error('无法获取命名空间,请设置 parentNode!');
1154
+ }
1155
+
1156
+ /**
1157
+ * 生成宿主语言的文件路径
1158
+ * @param name 一般不用传,用于 rename
1159
+ */
1160
+ getEmbeddedFilePath(name = this.name) {
1161
+ return `/embedded/${this.rootNode?.name || this.parentNode.name}/frontends/${name}.ts`;
1162
+ }
1163
+
1164
+ @withSourceMap()
1165
+ toEmbeddedTS(state?: TranslatorState): string {
1166
+ let code = `export namespace ${this.name} {\n`;
1167
+ code += 'const name = ';
1168
+ code += `"${this.name}";\n`;
1169
+ code += '}\n';
1170
+ return code;
1171
+ }
1172
+
1173
+ toEmbeddedTSFile() {
1174
+ let code = `namespace ${this.getNamespace()} {\n`;
1175
+
1176
+ const state = createCompilerState(code, { tabSize: 1 });
1177
+ try {
1178
+ code += this.toEmbeddedTS(state);
1179
+ } catch (err) {
1180
+ code += '';
1181
+ console.log(err);
1117
1182
  }
1118
- toEmbeddedTSFile() {
1119
- let code = `namespace ${this.getNamespace()} {\n`;
1120
-
1121
- const state = createCompilerState(code, { tabSize: 1 });
1122
- try {
1123
- code += this.toEmbeddedTS(state);
1124
- } catch (err) {
1125
- code += '';
1126
- console.log(err);
1183
+ code += '}\n';
1184
+
1185
+ return {
1186
+ code,
1187
+ filePath: this.getEmbeddedFilePath(),
1188
+ sourceMap: state.sourceMap,
1189
+ };
1190
+ }
1191
+
1192
+ getPath() {
1193
+ const { path } = this;
1194
+ const finalPath = path && path !== '/' ? path : '';
1195
+ return finalPath;
1196
+ }
1197
+
1198
+ // 前缀
1199
+ get prefixPath() {
1200
+ const prefixArr: string[] = [];
1201
+ [this.app.sysPrefixPath, this.basePath].forEach((prefix) => {
1202
+ if (prefix) {
1203
+ prefixArr.push(prefix);
1204
+ }
1205
+ });
1206
+ return prefixArr.join('');
1207
+ }
1208
+
1209
+ /**
1210
+ * 为/的转成'',便于url拼接
1211
+ */
1212
+ get basePath() {
1213
+ const { path } = this;
1214
+ const basePath = path && path !== '/' ? path : '';
1215
+ return basePath;
1216
+ }
1217
+
1218
+ genCustomAssetsInfo(prefix: string) {
1219
+ const custom: AssetsInfo = {
1220
+ js: [],
1221
+ css: [],
1222
+ names: [],
1223
+ };
1224
+ const existingSet = new Set();
1225
+ this.componentDependencies.forEach((dep) => {
1226
+ const { name, version } = dep;
1227
+ const jsName = `${prefix}/packages/${name}@${version}/dist-theme/index.js`;
1228
+ if (!existingSet.has(jsName)) {
1229
+ existingSet.add(jsName);
1230
+ custom.js.push(jsName);
1231
+ if (utils.shouldLoadCss(name, version)) {
1232
+ custom.css.push(`${prefix}/packages/${name}@${version}/dist-theme/index.css`);
1127
1233
  }
1128
- code += '}\n';
1129
-
1130
- return {
1131
- code,
1132
- filePath: this.getEmbeddedFilePath(),
1133
- sourceMap: state.sourceMap,
1134
- };
1135
- }
1136
-
1137
- getPath() {
1138
- const path = this.path;
1139
- const finalPath = path && path !== '/' ? path : '';
1140
- return finalPath;
1141
- }
1142
-
1143
- // 前缀
1144
- get prefixPath() {
1145
- const prefixArr: string[] = [];
1146
- [
1147
- this.app.sysPrefixPath,
1148
- this.basePath,
1149
- ].forEach((prefix) => {
1150
- if (prefix) {
1151
- prefixArr.push(prefix);
1152
- }
1153
- });
1154
- return prefixArr.join('');
1155
- }
1156
-
1157
- /**
1158
- * 为/的转成'',便于url拼接
1159
- */
1160
- get basePath() {
1161
- const path = this.path;
1162
- const basePath = path && path !== '/' ? path : '';
1163
- return basePath;
1164
- }
1165
-
1166
- genCustomAssetsInfo(prefix: string) {
1167
- const custom: AssetsInfo = {
1168
- js: [],
1169
- css: [],
1170
- names: [],
1171
- };
1172
- const existingSet = new Set();
1173
- this.componentDependencies.forEach((dep) => {
1174
- const { name, version } = dep;
1175
- const jsName = `${prefix}/packages/${name}@${version}/dist-theme/index.js`;
1176
- if (!existingSet.has(jsName)) {
1177
- existingSet.add(jsName);
1178
- custom.js.push(jsName);
1179
- if (utils.shouldLoadCss(name, version)) {
1180
- custom.css.push(`${prefix}/packages/${name}@${version}/dist-theme/index.css`);
1181
- }
1182
- custom.names.push(name);
1183
- }
1184
- });
1185
- return custom;
1186
- }
1187
-
1188
- getExtensionsCallbackLogics() {
1189
- let resultLogics: string[] = [];
1190
- this.views.forEach((item: View) => {
1191
- resultLogics = [...resultLogics, ...item.getViewCallLogics()];
1192
- });
1193
- return Array.from(new Set(resultLogics));
1194
- }
1195
-
1196
- get defaultCanvasWidth() {
1197
- return this.type === 'pc' ? 1440 : 375;
1198
- }
1199
- /**
1200
- * 获取当前页面下所有elements上bindEvents下的logic
1201
- */
1202
- // elementLogicRoot: any[] = [];
1203
-
1204
- // getElementLogicRoot() {
1205
- // const logics: Array<Logic> = [];
1206
- // // 页面上的绑定的事件
1207
- // this.bindEvents.forEach((bindEvent) => {
1208
- // bindEvent.logics.forEach((logic) => {
1209
- // // 声明周期没有event
1210
- // logics.push(logic);
1211
- // });
1212
- // });
1213
- // if (logics.length) {
1214
- // const expanded = (this.elementLogicRoot.length && this.elementLogicRoot[0].expanded) || false;
1215
- // this.elementLogicRoot = [{
1216
- // concept: 'elementLogicRoot',
1217
- // expanded,
1218
- // children: logics,
1219
- // }];
1220
- // } else {
1221
- // this.elementLogicRoot = [];
1222
- // }
1223
- // }
1224
-
1225
- //================================================================================
1226
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1227
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1228
- //================================================================================
1234
+ custom.names.push(name);
1235
+ }
1236
+ });
1237
+ return custom;
1238
+ }
1239
+
1240
+ getExtensionsCallbackLogics() {
1241
+ let resultLogics: string[] = [];
1242
+ this.views.forEach((item: View) => {
1243
+ resultLogics = [...resultLogics, ...item.getViewCallLogics()];
1244
+ });
1245
+ return Array.from(new Set(resultLogics));
1246
+ }
1247
+
1248
+ get defaultCanvasWidth() {
1249
+ return this.type === 'pc' ? 1440 : 375;
1250
+ }
1251
+ /**
1252
+ * 获取当前页面下所有elements上bindEvents下的logic
1253
+ */
1254
+ // elementLogicRoot: any[] = [];
1255
+
1256
+ // getElementLogicRoot() {
1257
+ // const logics: Array<Logic> = [];
1258
+ // // 页面上的绑定的事件
1259
+ // this.bindEvents.forEach((bindEvent) => {
1260
+ // bindEvent.logics.forEach((logic) => {
1261
+ // // 声明周期没有event
1262
+ // logics.push(logic);
1263
+ // });
1264
+ // });
1265
+ // if (logics.length) {
1266
+ // const expanded = (this.elementLogicRoot.length && this.elementLogicRoot[0].expanded) || false;
1267
+ // this.elementLogicRoot = [{
1268
+ // concept: 'elementLogicRoot',
1269
+ // expanded,
1270
+ // children: logics,
1271
+ // }];
1272
+ // } else {
1273
+ // this.elementLogicRoot = [];
1274
+ // }
1275
+ // }
1276
+
1277
+ //= ===============================================================================
1278
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1279
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1280
+ //= ===============================================================================
1229
1281
  }
1230
1282
 
1231
1283
  classMap.Frontend = Frontend;
1232
1284
  export default Frontend;
1233
- //================================================================================
1285
+ //= ===============================================================================
1234
1286
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1235
1287
  // 自动生成的代码已结束。下面可以手动编写。
1236
- //================================================================================
1288
+ //= ===============================================================================