@lcap/nasl 2.12.0 → 2.13.0-beta

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 (669) hide show
  1. package/package.json +1 -1
  2. package/src/bak/translator.js +8 -1
  3. package/src/common/BaseNode.ts +1 -1
  4. package/src/concepts/App__.ts +38 -1
  5. package/src/concepts/Argument__.ts +1 -1
  6. package/src/concepts/Assignee__.ts +1 -1
  7. package/src/concepts/Assignment__.ts +1 -1
  8. package/src/concepts/Attribute__.ts +1 -1
  9. package/src/concepts/BinaryExpression__.ts +21 -4
  10. package/src/concepts/BindAttribute__.ts +1 -1
  11. package/src/concepts/BindDirective__.ts +4 -0
  12. package/src/concepts/BindEvent__.ts +416 -59
  13. package/src/concepts/BooleanLiteral__.ts +1 -1
  14. package/src/concepts/CallFunction__.ts +1 -1
  15. package/src/concepts/CallInterface__.ts +3 -1
  16. package/src/concepts/CallLogic__.ts +1 -1
  17. package/src/concepts/CallQueryComponent__.ts +1 -1
  18. package/src/concepts/Comment__.ts +1 -1
  19. package/src/concepts/CompletionProperty__.ts +1 -2
  20. package/src/concepts/ConfigGroup__.ts +1 -1
  21. package/src/concepts/ConfigPropertyValue__.ts +1 -1
  22. package/src/concepts/ConfigProperty__.ts +1 -1
  23. package/src/concepts/Configuration__.ts +1 -1
  24. package/src/concepts/Constant__.ts +1 -1
  25. package/src/concepts/DataElement__.ts +1 -1
  26. package/src/concepts/DataSource__.ts +1 -1
  27. package/src/concepts/Destination__.ts +3 -2
  28. package/src/concepts/End__.ts +1 -1
  29. package/src/concepts/EntityIndex__.ts +1 -1
  30. package/src/concepts/EntityProperty__.ts +1 -1
  31. package/src/concepts/Entity__.ts +1 -2
  32. package/src/concepts/EnumItem__.ts +1 -1
  33. package/src/concepts/Enum__.ts +1 -1
  34. package/src/concepts/Event__.ts +1 -1
  35. package/src/concepts/ForEachStatement__.ts +1 -1
  36. package/src/concepts/Function__.ts +65 -41
  37. package/src/concepts/Identifier__.ts +2 -2
  38. package/src/concepts/IfStatement__.ts +1 -1
  39. package/src/concepts/InterfaceParam__.ts +1 -1
  40. package/src/concepts/Interface__.ts +2 -1
  41. package/src/concepts/JSBlock__.ts +7 -0
  42. package/src/concepts/LogicItem__.ts +1 -1
  43. package/src/concepts/Logic__.ts +116 -14
  44. package/src/concepts/MemberExpression__.ts +1 -1
  45. package/src/concepts/Module__.ts +129 -107
  46. package/src/concepts/Namespace__.ts +1 -1
  47. package/src/concepts/NullLiteral__.ts +1 -1
  48. package/src/concepts/NumericLiteral__.ts +1 -1
  49. package/src/concepts/Param__.ts +7 -1
  50. package/src/concepts/Point__.ts +1 -1
  51. package/src/concepts/ProcessComponent__.ts +1 -1
  52. package/src/concepts/ProcessElement__.ts +228 -2
  53. package/src/concepts/ProcessOutcome__.ts +1 -1
  54. package/src/concepts/Process__.ts +242 -3
  55. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  56. package/src/concepts/QueryFieldExpression__.ts +1 -1
  57. package/src/concepts/QueryFromExpression__.ts +1 -1
  58. package/src/concepts/QueryGroupByExpression__.ts +1 -1
  59. package/src/concepts/QueryJoinExpression__.ts +1 -1
  60. package/src/concepts/QueryLimitExpression__.ts +1 -1
  61. package/src/concepts/QueryOrderByExpression__.ts +1 -1
  62. package/src/concepts/QuerySelectExpression__.ts +1 -1
  63. package/src/concepts/Rect__.ts +1 -1
  64. package/src/concepts/Return__.ts +1 -1
  65. package/src/concepts/Role__.ts +1 -1
  66. package/src/concepts/Slot__.ts +1 -1
  67. package/src/concepts/SqlQueryComponent__.ts +14 -4
  68. package/src/concepts/Start__.ts +1 -1
  69. package/src/concepts/StringLiteral__.ts +1 -1
  70. package/src/concepts/StructureProperty__.ts +4 -0
  71. package/src/concepts/Structure__.ts +1 -1
  72. package/src/concepts/SwitchCase__.ts +1 -1
  73. package/src/concepts/SwitchStatement__.ts +1 -1
  74. package/src/concepts/Theme__.ts +1 -1
  75. package/src/concepts/Transactional__.ts +1 -1
  76. package/src/concepts/TypeAnnotation__.ts +32 -3
  77. package/src/concepts/TypeParam__.ts +1 -1
  78. package/src/concepts/UnaryExpression__.ts +1 -1
  79. package/src/concepts/Unparsed__.ts +1 -1
  80. package/src/concepts/UseComponent__.ts +1 -1
  81. package/src/concepts/ValidationRule__.ts +1 -1
  82. package/src/concepts/Variable__.ts +1 -1
  83. package/src/concepts/ViewComponent__.ts +1 -1
  84. package/src/concepts/ViewElement__.ts +34 -17
  85. package/src/concepts/View__.ts +75 -12
  86. package/src/concepts/WhileStatement__.ts +1 -1
  87. package/src/concepts/basics/stdlib/nasl.ui.ts +4 -0
  88. package/src/concepts/basics/stdlib/nasl.util.ts +2 -2
  89. package/src/concepts/basics/types/coreTypeList.ts +1 -0
  90. package/src/enums/KEYWORDS.ts +3 -0
  91. package/src/server/createUiTs.ts +26 -2
  92. package/src/server/events.yaml +89 -0
  93. package/src/server/getMemberIdentifier.ts +121 -28
  94. package/src/server/getProcesses.ts +30 -29
  95. package/src/server/index.ts +4 -0
  96. package/src/server/naslServer.ts +46 -12
  97. package/src/server/translator.ts +25 -13
  98. package/src/templator/genCreateBlock.ts +4 -0
  99. package/src/templator/genCurdEditMultipleKeyBlock.ts +10 -3
  100. package/src/templator/genCurdMultipleKeyBlock.ts +36 -21
  101. package/src/templator/genEditTableBlock.ts +2 -27
  102. package/src/templator/genGridViewBlock.ts +0 -13
  103. package/src/templator/genTableBlock.ts +0 -13
  104. package/src/templator/genUpdateBlock.ts +4 -0
  105. package/src/templator/utils.ts +1 -0
  106. package/out/automate/engine/index.d.ts +0 -4
  107. package/out/automate/engine/index.js +0 -436
  108. package/out/automate/engine/index.js.map +0 -1
  109. package/out/automate/engine/operators.d.ts +0 -21
  110. package/out/automate/engine/operators.js +0 -161
  111. package/out/automate/engine/operators.js.map +0 -1
  112. package/out/automate/engine/uniqueName.d.ts +0 -12
  113. package/out/automate/engine/uniqueName.js +0 -107
  114. package/out/automate/engine/uniqueName.js.map +0 -1
  115. package/out/automate/engine/utils.d.ts +0 -25
  116. package/out/automate/engine/utils.js +0 -404
  117. package/out/automate/engine/utils.js.map +0 -1
  118. package/out/automate/template/process.d.ts +0 -9
  119. package/out/automate/template/process.js +0 -10976
  120. package/out/automate/template/process.js.map +0 -1
  121. package/out/bak/translator.d.ts +0 -1
  122. package/out/bak/translator.js +0 -112
  123. package/out/bak/translator.js.map +0 -1
  124. package/out/common/BaseNode.d.ts +0 -256
  125. package/out/common/BaseNode.js +0 -891
  126. package/out/common/BaseNode.js.map +0 -1
  127. package/out/common/Command.d.ts +0 -8
  128. package/out/common/Command.js +0 -32
  129. package/out/common/Command.js.map +0 -1
  130. package/out/common/ComponentAPI.d.ts +0 -110
  131. package/out/common/ComponentAPI.js +0 -3
  132. package/out/common/ComponentAPI.js.map +0 -1
  133. package/out/common/EventEmitter.d.ts +0 -58
  134. package/out/common/EventEmitter.js +0 -68
  135. package/out/common/EventEmitter.js.map +0 -1
  136. package/out/common/Messager.d.ts +0 -86
  137. package/out/common/Messager.js +0 -187
  138. package/out/common/Messager.js.map +0 -1
  139. package/out/common/classMap.d.ts +0 -4
  140. package/out/common/classMap.js +0 -5
  141. package/out/common/classMap.js.map +0 -1
  142. package/out/common/index.d.ts +0 -4
  143. package/out/common/index.js +0 -21
  144. package/out/common/index.js.map +0 -1
  145. package/out/concepts/App__.d.ts +0 -1119
  146. package/out/concepts/App__.js +0 -1591
  147. package/out/concepts/App__.js.map +0 -1
  148. package/out/concepts/Argument__.d.ts +0 -58
  149. package/out/concepts/Argument__.js +0 -198
  150. package/out/concepts/Argument__.js.map +0 -1
  151. package/out/concepts/Assignee__.d.ts +0 -201
  152. package/out/concepts/Assignee__.js +0 -298
  153. package/out/concepts/Assignee__.js.map +0 -1
  154. package/out/concepts/Assignment__.d.ts +0 -70
  155. package/out/concepts/Assignment__.js +0 -201
  156. package/out/concepts/Assignment__.js.map +0 -1
  157. package/out/concepts/Attribute__.d.ts +0 -101
  158. package/out/concepts/Attribute__.js +0 -221
  159. package/out/concepts/Attribute__.js.map +0 -1
  160. package/out/concepts/BinaryExpression__.d.ts +0 -64
  161. package/out/concepts/BinaryExpression__.js +0 -251
  162. package/out/concepts/BinaryExpression__.js.map +0 -1
  163. package/out/concepts/BindAttribute__.d.ts +0 -231
  164. package/out/concepts/BindAttribute__.js +0 -450
  165. package/out/concepts/BindAttribute__.js.map +0 -1
  166. package/out/concepts/BindDirective__.d.ts +0 -93
  167. package/out/concepts/BindDirective__.js +0 -251
  168. package/out/concepts/BindDirective__.js.map +0 -1
  169. package/out/concepts/BindEvent__.d.ts +0 -139
  170. package/out/concepts/BindEvent__.js +0 -369
  171. package/out/concepts/BindEvent__.js.map +0 -1
  172. package/out/concepts/BooleanLiteral__.d.ts +0 -31
  173. package/out/concepts/BooleanLiteral__.js +0 -91
  174. package/out/concepts/BooleanLiteral__.js.map +0 -1
  175. package/out/concepts/CallFunction__.d.ts +0 -153
  176. package/out/concepts/CallFunction__.js +0 -381
  177. package/out/concepts/CallFunction__.js.map +0 -1
  178. package/out/concepts/CallInterface__.d.ts +0 -103
  179. package/out/concepts/CallInterface__.js +0 -441
  180. package/out/concepts/CallInterface__.js.map +0 -1
  181. package/out/concepts/CallLogic__.d.ts +0 -170
  182. package/out/concepts/CallLogic__.js +0 -604
  183. package/out/concepts/CallLogic__.js.map +0 -1
  184. package/out/concepts/CallQueryComponent__.d.ts +0 -345
  185. package/out/concepts/CallQueryComponent__.js +0 -1009
  186. package/out/concepts/CallQueryComponent__.js.map +0 -1
  187. package/out/concepts/Comment__.d.ts +0 -30
  188. package/out/concepts/Comment__.js +0 -93
  189. package/out/concepts/Comment__.js.map +0 -1
  190. package/out/concepts/CompletionProperty__.d.ts +0 -101
  191. package/out/concepts/CompletionProperty__.js +0 -237
  192. package/out/concepts/CompletionProperty__.js.map +0 -1
  193. package/out/concepts/ConfigGroup__.d.ts +0 -121
  194. package/out/concepts/ConfigGroup__.js +0 -221
  195. package/out/concepts/ConfigGroup__.js.map +0 -1
  196. package/out/concepts/ConfigPropertyValue__.d.ts +0 -43
  197. package/out/concepts/ConfigPropertyValue__.js +0 -103
  198. package/out/concepts/ConfigPropertyValue__.js.map +0 -1
  199. package/out/concepts/ConfigProperty__.d.ts +0 -129
  200. package/out/concepts/ConfigProperty__.js +0 -239
  201. package/out/concepts/ConfigProperty__.js.map +0 -1
  202. package/out/concepts/Configuration__.d.ts +0 -121
  203. package/out/concepts/Configuration__.js +0 -213
  204. package/out/concepts/Configuration__.js.map +0 -1
  205. package/out/concepts/Constant__.d.ts +0 -99
  206. package/out/concepts/Constant__.js +0 -237
  207. package/out/concepts/Constant__.js.map +0 -1
  208. package/out/concepts/DataElement__.d.ts +0 -45
  209. package/out/concepts/DataElement__.js +0 -114
  210. package/out/concepts/DataElement__.js.map +0 -1
  211. package/out/concepts/DataSource__.d.ts +0 -143
  212. package/out/concepts/DataSource__.js +0 -318
  213. package/out/concepts/DataSource__.js.map +0 -1
  214. package/out/concepts/Destination__.d.ts +0 -120
  215. package/out/concepts/Destination__.js +0 -433
  216. package/out/concepts/Destination__.js.map +0 -1
  217. package/out/concepts/End__.d.ts +0 -23
  218. package/out/concepts/End__.js +0 -84
  219. package/out/concepts/End__.js.map +0 -1
  220. package/out/concepts/EntityIndex__.d.ts +0 -94
  221. package/out/concepts/EntityIndex__.js +0 -215
  222. package/out/concepts/EntityIndex__.js.map +0 -1
  223. package/out/concepts/EntityProperty__.d.ts +0 -231
  224. package/out/concepts/EntityProperty__.js +0 -567
  225. package/out/concepts/EntityProperty__.js.map +0 -1
  226. package/out/concepts/Entity__.d.ts +0 -297
  227. package/out/concepts/Entity__.js +0 -572
  228. package/out/concepts/Entity__.js.map +0 -1
  229. package/out/concepts/EnumItem__.d.ts +0 -60
  230. package/out/concepts/EnumItem__.js +0 -136
  231. package/out/concepts/EnumItem__.js.map +0 -1
  232. package/out/concepts/Enum__.d.ts +0 -135
  233. package/out/concepts/Enum__.js +0 -293
  234. package/out/concepts/Enum__.js.map +0 -1
  235. package/out/concepts/Event__.d.ts +0 -142
  236. package/out/concepts/Event__.js +0 -242
  237. package/out/concepts/Event__.js.map +0 -1
  238. package/out/concepts/ForEachStatement__.d.ts +0 -191
  239. package/out/concepts/ForEachStatement__.js +0 -441
  240. package/out/concepts/ForEachStatement__.js.map +0 -1
  241. package/out/concepts/Function__.d.ts +0 -406
  242. package/out/concepts/Function__.js +0 -657
  243. package/out/concepts/Function__.js.map +0 -1
  244. package/out/concepts/Identifier__.d.ts +0 -45
  245. package/out/concepts/Identifier__.js +0 -203
  246. package/out/concepts/Identifier__.js.map +0 -1
  247. package/out/concepts/IfStatement__.d.ts +0 -148
  248. package/out/concepts/IfStatement__.js +0 -280
  249. package/out/concepts/IfStatement__.js.map +0 -1
  250. package/out/concepts/InterfaceParam__.d.ts +0 -112
  251. package/out/concepts/InterfaceParam__.js +0 -311
  252. package/out/concepts/InterfaceParam__.js.map +0 -1
  253. package/out/concepts/Interface__.d.ts +0 -268
  254. package/out/concepts/Interface__.js +0 -598
  255. package/out/concepts/Interface__.js.map +0 -1
  256. package/out/concepts/JSBlock__.d.ts +0 -31
  257. package/out/concepts/JSBlock__.js +0 -90
  258. package/out/concepts/JSBlock__.js.map +0 -1
  259. package/out/concepts/LogicItem__.d.ts +0 -117
  260. package/out/concepts/LogicItem__.js +0 -233
  261. package/out/concepts/LogicItem__.js.map +0 -1
  262. package/out/concepts/Logic__.d.ts +0 -610
  263. package/out/concepts/Logic__.js +0 -1203
  264. package/out/concepts/Logic__.js.map +0 -1
  265. package/out/concepts/MemberExpression__.d.ts +0 -65
  266. package/out/concepts/MemberExpression__.js +0 -238
  267. package/out/concepts/MemberExpression__.js.map +0 -1
  268. package/out/concepts/Module__.d.ts +0 -675
  269. package/out/concepts/Module__.js +0 -914
  270. package/out/concepts/Module__.js.map +0 -1
  271. package/out/concepts/Namespace__.d.ts +0 -986
  272. package/out/concepts/Namespace__.js +0 -1301
  273. package/out/concepts/Namespace__.js.map +0 -1
  274. package/out/concepts/NullLiteral__.d.ts +0 -23
  275. package/out/concepts/NullLiteral__.js +0 -73
  276. package/out/concepts/NullLiteral__.js.map +0 -1
  277. package/out/concepts/NumericLiteral__.d.ts +0 -53
  278. package/out/concepts/NumericLiteral__.js +0 -172
  279. package/out/concepts/NumericLiteral__.js.map +0 -1
  280. package/out/concepts/Param__.d.ts +0 -147
  281. package/out/concepts/Param__.js +0 -366
  282. package/out/concepts/Param__.js.map +0 -1
  283. package/out/concepts/Point__.d.ts +0 -30
  284. package/out/concepts/Point__.js +0 -75
  285. package/out/concepts/Point__.js.map +0 -1
  286. package/out/concepts/ProcessComponent__.d.ts +0 -218
  287. package/out/concepts/ProcessComponent__.js +0 -333
  288. package/out/concepts/ProcessComponent__.js.map +0 -1
  289. package/out/concepts/ProcessElement__.d.ts +0 -554
  290. package/out/concepts/ProcessElement__.js +0 -998
  291. package/out/concepts/ProcessElement__.js.map +0 -1
  292. package/out/concepts/ProcessOutcome__.d.ts +0 -30
  293. package/out/concepts/ProcessOutcome__.js +0 -87
  294. package/out/concepts/ProcessOutcome__.js.map +0 -1
  295. package/out/concepts/Process__.d.ts +0 -451
  296. package/out/concepts/Process__.js +0 -773
  297. package/out/concepts/Process__.js.map +0 -1
  298. package/out/concepts/QueryAggregateExpression__.d.ts +0 -50
  299. package/out/concepts/QueryAggregateExpression__.js +0 -144
  300. package/out/concepts/QueryAggregateExpression__.js.map +0 -1
  301. package/out/concepts/QueryFieldExpression__.d.ts +0 -48
  302. package/out/concepts/QueryFieldExpression__.js +0 -132
  303. package/out/concepts/QueryFieldExpression__.js.map +0 -1
  304. package/out/concepts/QueryFromExpression__.d.ts +0 -95
  305. package/out/concepts/QueryFromExpression__.js +0 -192
  306. package/out/concepts/QueryFromExpression__.js.map +0 -1
  307. package/out/concepts/QueryGroupByExpression__.d.ts +0 -45
  308. package/out/concepts/QueryGroupByExpression__.js +0 -139
  309. package/out/concepts/QueryGroupByExpression__.js.map +0 -1
  310. package/out/concepts/QueryJoinExpression__.d.ts +0 -182
  311. package/out/concepts/QueryJoinExpression__.js +0 -312
  312. package/out/concepts/QueryJoinExpression__.js.map +0 -1
  313. package/out/concepts/QueryLimitExpression__.d.ts +0 -56
  314. package/out/concepts/QueryLimitExpression__.js +0 -156
  315. package/out/concepts/QueryLimitExpression__.js.map +0 -1
  316. package/out/concepts/QueryOrderByExpression__.d.ts +0 -67
  317. package/out/concepts/QueryOrderByExpression__.js +0 -169
  318. package/out/concepts/QueryOrderByExpression__.js.map +0 -1
  319. package/out/concepts/QuerySelectExpression__.d.ts +0 -114
  320. package/out/concepts/QuerySelectExpression__.js +0 -203
  321. package/out/concepts/QuerySelectExpression__.js.map +0 -1
  322. package/out/concepts/Rect__.d.ts +0 -38
  323. package/out/concepts/Rect__.js +0 -89
  324. package/out/concepts/Rect__.js.map +0 -1
  325. package/out/concepts/Return__.d.ts +0 -131
  326. package/out/concepts/Return__.js +0 -340
  327. package/out/concepts/Return__.js.map +0 -1
  328. package/out/concepts/Role__.d.ts +0 -61
  329. package/out/concepts/Role__.js +0 -164
  330. package/out/concepts/Role__.js.map +0 -1
  331. package/out/concepts/Slot__.d.ts +0 -57
  332. package/out/concepts/Slot__.js +0 -114
  333. package/out/concepts/Slot__.js.map +0 -1
  334. package/out/concepts/SqlQueryComponent__.d.ts +0 -61
  335. package/out/concepts/SqlQueryComponent__.js +0 -177
  336. package/out/concepts/SqlQueryComponent__.js.map +0 -1
  337. package/out/concepts/Start__.d.ts +0 -23
  338. package/out/concepts/Start__.js +0 -71
  339. package/out/concepts/Start__.js.map +0 -1
  340. package/out/concepts/StringLiteral__.d.ts +0 -35
  341. package/out/concepts/StringLiteral__.js +0 -125
  342. package/out/concepts/StringLiteral__.js.map +0 -1
  343. package/out/concepts/StructureProperty__.d.ts +0 -124
  344. package/out/concepts/StructureProperty__.js +0 -324
  345. package/out/concepts/StructureProperty__.js.map +0 -1
  346. package/out/concepts/Structure__.d.ts +0 -250
  347. package/out/concepts/Structure__.js +0 -440
  348. package/out/concepts/Structure__.js.map +0 -1
  349. package/out/concepts/SwitchCase__.d.ts +0 -92
  350. package/out/concepts/SwitchCase__.js +0 -229
  351. package/out/concepts/SwitchCase__.js.map +0 -1
  352. package/out/concepts/SwitchStatement__.d.ts +0 -82
  353. package/out/concepts/SwitchStatement__.js +0 -175
  354. package/out/concepts/SwitchStatement__.js.map +0 -1
  355. package/out/concepts/Theme__.d.ts +0 -36
  356. package/out/concepts/Theme__.js +0 -86
  357. package/out/concepts/Theme__.js.map +0 -1
  358. package/out/concepts/Transactional__.d.ts +0 -76
  359. package/out/concepts/Transactional__.js +0 -151
  360. package/out/concepts/Transactional__.js.map +0 -1
  361. package/out/concepts/TypeAnnotation__.d.ts +0 -133
  362. package/out/concepts/TypeAnnotation__.js +0 -412
  363. package/out/concepts/TypeAnnotation__.js.map +0 -1
  364. package/out/concepts/TypeParam__.d.ts +0 -20
  365. package/out/concepts/TypeParam__.js +0 -57
  366. package/out/concepts/TypeParam__.js.map +0 -1
  367. package/out/concepts/UnaryExpression__.d.ts +0 -46
  368. package/out/concepts/UnaryExpression__.js +0 -166
  369. package/out/concepts/UnaryExpression__.js.map +0 -1
  370. package/out/concepts/Unparsed__.d.ts +0 -29
  371. package/out/concepts/Unparsed__.js +0 -88
  372. package/out/concepts/Unparsed__.js.map +0 -1
  373. package/out/concepts/UseComponent__.d.ts +0 -30
  374. package/out/concepts/UseComponent__.js +0 -75
  375. package/out/concepts/UseComponent__.js.map +0 -1
  376. package/out/concepts/ValidationRule__.d.ts +0 -94
  377. package/out/concepts/ValidationRule__.js +0 -254
  378. package/out/concepts/ValidationRule__.js.map +0 -1
  379. package/out/concepts/Variable__.d.ts +0 -130
  380. package/out/concepts/Variable__.js +0 -338
  381. package/out/concepts/Variable__.js.map +0 -1
  382. package/out/concepts/ViewComponent__.d.ts +0 -472
  383. package/out/concepts/ViewComponent__.js +0 -644
  384. package/out/concepts/ViewComponent__.js.map +0 -1
  385. package/out/concepts/ViewElement__.d.ts +0 -490
  386. package/out/concepts/ViewElement__.js +0 -1414
  387. package/out/concepts/ViewElement__.js.map +0 -1
  388. package/out/concepts/View__.d.ts +0 -683
  389. package/out/concepts/View__.js +0 -1333
  390. package/out/concepts/View__.js.map +0 -1
  391. package/out/concepts/WhileStatement__.d.ts +0 -95
  392. package/out/concepts/WhileStatement__.js +0 -208
  393. package/out/concepts/WhileStatement__.js.map +0 -1
  394. package/out/concepts/basics/stdlib/index.d.ts +0 -4
  395. package/out/concepts/basics/stdlib/index.js +0 -26
  396. package/out/concepts/basics/stdlib/index.js.map +0 -1
  397. package/out/concepts/basics/stdlib/nasl.auth.d.ts +0 -3
  398. package/out/concepts/basics/stdlib/nasl.auth.js +0 -50
  399. package/out/concepts/basics/stdlib/nasl.auth.js.map +0 -1
  400. package/out/concepts/basics/stdlib/nasl.browser.d.ts +0 -3
  401. package/out/concepts/basics/stdlib/nasl.browser.js +0 -41
  402. package/out/concepts/basics/stdlib/nasl.browser.js.map +0 -1
  403. package/out/concepts/basics/stdlib/nasl.collection.d.ts +0 -7
  404. package/out/concepts/basics/stdlib/nasl.collection.js +0 -83
  405. package/out/concepts/basics/stdlib/nasl.collection.js.map +0 -1
  406. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +0 -3
  407. package/out/concepts/basics/stdlib/nasl.configuration.js +0 -25
  408. package/out/concepts/basics/stdlib/nasl.configuration.js.map +0 -1
  409. package/out/concepts/basics/stdlib/nasl.core.d.ts +0 -3
  410. package/out/concepts/basics/stdlib/nasl.core.js +0 -15
  411. package/out/concepts/basics/stdlib/nasl.core.js.map +0 -1
  412. package/out/concepts/basics/stdlib/nasl.interface.d.ts +0 -7
  413. package/out/concepts/basics/stdlib/nasl.interface.js +0 -43
  414. package/out/concepts/basics/stdlib/nasl.interface.js.map +0 -1
  415. package/out/concepts/basics/stdlib/nasl.process.d.ts +0 -7
  416. package/out/concepts/basics/stdlib/nasl.process.js +0 -453
  417. package/out/concepts/basics/stdlib/nasl.process.js.map +0 -1
  418. package/out/concepts/basics/stdlib/nasl.ui.d.ts +0 -7
  419. package/out/concepts/basics/stdlib/nasl.ui.js +0 -824
  420. package/out/concepts/basics/stdlib/nasl.ui.js.map +0 -1
  421. package/out/concepts/basics/stdlib/nasl.util.d.ts +0 -3
  422. package/out/concepts/basics/stdlib/nasl.util.js +0 -1030
  423. package/out/concepts/basics/stdlib/nasl.util.js.map +0 -1
  424. package/out/concepts/basics/stdlib/nasl.validation.d.ts +0 -3
  425. package/out/concepts/basics/stdlib/nasl.validation.js +0 -561
  426. package/out/concepts/basics/stdlib/nasl.validation.js.map +0 -1
  427. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.d.ts +0 -5
  428. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +0 -26
  429. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +0 -1
  430. package/out/concepts/basics/types/coreTypeList.d.ts +0 -2
  431. package/out/concepts/basics/types/coreTypeList.js +0 -18
  432. package/out/concepts/basics/types/coreTypeList.js.map +0 -1
  433. package/out/concepts/basics/types/index.d.ts +0 -13
  434. package/out/concepts/basics/types/index.js +0 -27
  435. package/out/concepts/basics/types/index.js.map +0 -1
  436. package/out/concepts/index.d.ts +0 -5
  437. package/out/concepts/index.js +0 -24
  438. package/out/concepts/index.js.map +0 -1
  439. package/out/concepts/index__.d.ts +0 -83
  440. package/out/concepts/index__.js +0 -100
  441. package/out/concepts/index__.js.map +0 -1
  442. package/out/config.d.ts +0 -42
  443. package/out/config.js +0 -71
  444. package/out/config.js.map +0 -1
  445. package/out/decorators/index.d.ts +0 -54
  446. package/out/decorators/index.js +0 -149
  447. package/out/decorators/index.js.map +0 -1
  448. package/out/enums/KEYWORDS.d.ts +0 -3
  449. package/out/enums/KEYWORDS.js +0 -1199
  450. package/out/enums/KEYWORDS.js.map +0 -1
  451. package/out/enums/LEVEL_NAME_MAP.d.ts +0 -26
  452. package/out/enums/LEVEL_NAME_MAP.js +0 -30
  453. package/out/enums/LEVEL_NAME_MAP.js.map +0 -1
  454. package/out/eventBus.d.ts +0 -3
  455. package/out/eventBus.js +0 -7
  456. package/out/eventBus.js.map +0 -1
  457. package/out/generator/compileComponent.d.ts +0 -11
  458. package/out/generator/compileComponent.js +0 -12
  459. package/out/generator/compileComponent.js.map +0 -1
  460. package/out/generator/genBundleFiles.d.ts +0 -44
  461. package/out/generator/genBundleFiles.js +0 -387
  462. package/out/generator/genBundleFiles.js.map +0 -1
  463. package/out/generator/genHash.d.ts +0 -7
  464. package/out/generator/genHash.js +0 -39
  465. package/out/generator/genHash.js.map +0 -1
  466. package/out/generator/genMetaData.d.ts +0 -36
  467. package/out/generator/genMetaData.js +0 -121
  468. package/out/generator/genMetaData.js.map +0 -1
  469. package/out/generator/index.d.ts +0 -5
  470. package/out/generator/index.js +0 -22
  471. package/out/generator/index.js.map +0 -1
  472. package/out/generator/styleReplacer.d.ts +0 -3
  473. package/out/generator/styleReplacer.js +0 -71
  474. package/out/generator/styleReplacer.js.map +0 -1
  475. package/out/index.d.ts +0 -11
  476. package/out/index.js +0 -53
  477. package/out/index.js.map +0 -1
  478. package/out/manager/diagnostic.d.ts +0 -38
  479. package/out/manager/diagnostic.js +0 -84
  480. package/out/manager/diagnostic.js.map +0 -1
  481. package/out/manager/history.d.ts +0 -0
  482. package/out/manager/history.js +0 -1
  483. package/out/manager/history.js.map +0 -1
  484. package/out/manager/problem.d.ts +0 -0
  485. package/out/manager/problem.js +0 -1
  486. package/out/manager/problem.js.map +0 -1
  487. package/out/server/createUiTs.d.ts +0 -8
  488. package/out/server/createUiTs.js +0 -204
  489. package/out/server/createUiTs.js.map +0 -1
  490. package/out/server/entity2LogicNamespace.d.ts +0 -10
  491. package/out/server/entity2LogicNamespace.js +0 -217
  492. package/out/server/entity2LogicNamespace.js.map +0 -1
  493. package/out/server/extendBaseNode.d.ts +0 -1
  494. package/out/server/extendBaseNode.js +0 -323
  495. package/out/server/extendBaseNode.js.map +0 -1
  496. package/out/server/getExtensionModules.d.ts +0 -3
  497. package/out/server/getExtensionModules.js +0 -20
  498. package/out/server/getExtensionModules.js.map +0 -1
  499. package/out/server/getFunctions.d.ts +0 -3
  500. package/out/server/getFunctions.js +0 -20
  501. package/out/server/getFunctions.js.map +0 -1
  502. package/out/server/getInterfaces.d.ts +0 -2
  503. package/out/server/getInterfaces.js +0 -48
  504. package/out/server/getInterfaces.js.map +0 -1
  505. package/out/server/getLogics.d.ts +0 -3
  506. package/out/server/getLogics.js +0 -210
  507. package/out/server/getLogics.js.map +0 -1
  508. package/out/server/getMemberIdentifier.d.ts +0 -22
  509. package/out/server/getMemberIdentifier.js +0 -459
  510. package/out/server/getMemberIdentifier.js.map +0 -1
  511. package/out/server/getProcessComponents.d.ts +0 -2
  512. package/out/server/getProcessComponents.js +0 -13
  513. package/out/server/getProcessComponents.js.map +0 -1
  514. package/out/server/getProcesses.d.ts +0 -33
  515. package/out/server/getProcesses.js +0 -565
  516. package/out/server/getProcesses.js.map +0 -1
  517. package/out/server/getScope.d.ts +0 -13
  518. package/out/server/getScope.js +0 -61
  519. package/out/server/getScope.js.map +0 -1
  520. package/out/server/getValidates.d.ts +0 -3
  521. package/out/server/getValidates.js +0 -14
  522. package/out/server/getValidates.js.map +0 -1
  523. package/out/server/index.d.ts +0 -3
  524. package/out/server/index.js +0 -33
  525. package/out/server/index.js.map +0 -1
  526. package/out/server/naslServer.d.ts +0 -136
  527. package/out/server/naslServer.js +0 -1733
  528. package/out/server/naslServer.js.map +0 -1
  529. package/out/server/process2LogicNamespace.d.ts +0 -26
  530. package/out/server/process2LogicNamespace.js +0 -97
  531. package/out/server/process2LogicNamespace.js.map +0 -1
  532. package/out/server/translator.d.ts +0 -24
  533. package/out/server/translator.js +0 -460
  534. package/out/server/translator.js.map +0 -1
  535. package/out/service/creator/add.configs.d.ts +0 -1
  536. package/out/service/creator/add.configs.js +0 -68
  537. package/out/service/creator/add.configs.js.map +0 -1
  538. package/out/service/creator/errHandles.d.ts +0 -18
  539. package/out/service/creator/errHandles.js +0 -65
  540. package/out/service/creator/errHandles.js.map +0 -1
  541. package/out/service/creator/index.d.ts +0 -1
  542. package/out/service/creator/index.js +0 -72
  543. package/out/service/creator/index.js.map +0 -1
  544. package/out/service/storage/api.d.ts +0 -18
  545. package/out/service/storage/api.js +0 -17
  546. package/out/service/storage/api.js.map +0 -1
  547. package/out/service/storage/index.d.ts +0 -2
  548. package/out/service/storage/index.js +0 -10
  549. package/out/service/storage/index.js.map +0 -1
  550. package/out/service/storage/init.d.ts +0 -13
  551. package/out/service/storage/init.js +0 -469
  552. package/out/service/storage/init.js.map +0 -1
  553. package/out/service/storage/jsoner.d.ts +0 -29
  554. package/out/service/storage/jsoner.js +0 -130
  555. package/out/service/storage/jsoner.js.map +0 -1
  556. package/out/service/storage/map.d.ts +0 -4
  557. package/out/service/storage/map.js +0 -54
  558. package/out/service/storage/map.js.map +0 -1
  559. package/out/service/storage/service.d.ts +0 -2
  560. package/out/service/storage/service.js +0 -10
  561. package/out/service/storage/service.js.map +0 -1
  562. package/out/service/storage/storagePoint.d.ts +0 -17
  563. package/out/service/storage/storagePoint.js +0 -76
  564. package/out/service/storage/storagePoint.js.map +0 -1
  565. package/out/templator/genCallComponentLogic.d.ts +0 -17
  566. package/out/templator/genCallComponentLogic.js +0 -30
  567. package/out/templator/genCallComponentLogic.js.map +0 -1
  568. package/out/templator/genCreateBlock.d.ts +0 -10
  569. package/out/templator/genCreateBlock.js +0 -327
  570. package/out/templator/genCreateBlock.js.map +0 -1
  571. package/out/templator/genCurdEditMultipleKeyBlock.d.ts +0 -2
  572. package/out/templator/genCurdEditMultipleKeyBlock.js +0 -475
  573. package/out/templator/genCurdEditMultipleKeyBlock.js.map +0 -1
  574. package/out/templator/genCurdMultipleKeyBlock.d.ts +0 -3
  575. package/out/templator/genCurdMultipleKeyBlock.js +0 -672
  576. package/out/templator/genCurdMultipleKeyBlock.js.map +0 -1
  577. package/out/templator/genEditTableBlock.d.ts +0 -51
  578. package/out/templator/genEditTableBlock.js +0 -303
  579. package/out/templator/genEditTableBlock.js.map +0 -1
  580. package/out/templator/genEnumSelectBlock.d.ts +0 -10
  581. package/out/templator/genEnumSelectBlock.js +0 -23
  582. package/out/templator/genEnumSelectBlock.js.map +0 -1
  583. package/out/templator/genGetBlock.d.ts +0 -6
  584. package/out/templator/genGetBlock.js +0 -135
  585. package/out/templator/genGetBlock.js.map +0 -1
  586. package/out/templator/genGridViewBlock.d.ts +0 -55
  587. package/out/templator/genGridViewBlock.js +0 -368
  588. package/out/templator/genGridViewBlock.js.map +0 -1
  589. package/out/templator/genListViewBlock.d.ts +0 -19
  590. package/out/templator/genListViewBlock.js +0 -141
  591. package/out/templator/genListViewBlock.js.map +0 -1
  592. package/out/templator/genQueryComponent.d.ts +0 -34
  593. package/out/templator/genQueryComponent.js +0 -322
  594. package/out/templator/genQueryComponent.js.map +0 -1
  595. package/out/templator/genSelectBlock.d.ts +0 -34
  596. package/out/templator/genSelectBlock.js +0 -143
  597. package/out/templator/genSelectBlock.js.map +0 -1
  598. package/out/templator/genTableBlock.d.ts +0 -53
  599. package/out/templator/genTableBlock.js +0 -305
  600. package/out/templator/genTableBlock.js.map +0 -1
  601. package/out/templator/genUpdateBlock.d.ts +0 -6
  602. package/out/templator/genUpdateBlock.js +0 -368
  603. package/out/templator/genUpdateBlock.js.map +0 -1
  604. package/out/templator/index.d.ts +0 -16
  605. package/out/templator/index.js +0 -34
  606. package/out/templator/index.js.map +0 -1
  607. package/out/templator/utils.d.ts +0 -645
  608. package/out/templator/utils.js +0 -426
  609. package/out/templator/utils.js.map +0 -1
  610. package/out/test/fixtures/env.d.ts +0 -5
  611. package/out/test/fixtures/env.js +0 -20
  612. package/out/test/fixtures/env.js.map +0 -1
  613. package/out/test/integration/connect-create-file.d.ts +0 -1
  614. package/out/test/integration/connect-create-file.js +0 -39
  615. package/out/test/integration/connect-create-file.js.map +0 -1
  616. package/out/test/integration/connect-file.d.ts +0 -1
  617. package/out/test/integration/connect-file.js +0 -49
  618. package/out/test/integration/connect-file.js.map +0 -1
  619. package/out/test/units/baseTypes/Assignment.spec.d.ts +0 -1
  620. package/out/test/units/baseTypes/Assignment.spec.js +0 -43
  621. package/out/test/units/baseTypes/Assignment.spec.js.map +0 -1
  622. package/out/test/units/baseTypes/CallLogic.spec.d.ts +0 -1
  623. package/out/test/units/baseTypes/CallLogic.spec.js +0 -44
  624. package/out/test/units/baseTypes/CallLogic.spec.js.map +0 -1
  625. package/out/test/units/baseTypes/StringLiteral.spec.d.ts +0 -1
  626. package/out/test/units/baseTypes/StringLiteral.spec.js +0 -75
  627. package/out/test/units/baseTypes/StringLiteral.spec.js.map +0 -1
  628. package/out/test/units/baseTypes/new.spec.d.ts +0 -1
  629. package/out/test/units/baseTypes/new.spec.js +0 -37
  630. package/out/test/units/baseTypes/new.spec.js.map +0 -1
  631. package/out/test/units/common/Vertex.spec.d.ts +0 -1
  632. package/out/test/units/common/Vertex.spec.js +0 -22
  633. package/out/test/units/common/Vertex.spec.js.map +0 -1
  634. package/out/test/units/data/Entity.spec.d.ts +0 -1
  635. package/out/test/units/data/Entity.spec.js +0 -12
  636. package/out/test/units/data/Entity.spec.js.map +0 -1
  637. package/out/test/units/login.spec.d.ts +0 -1
  638. package/out/test/units/login.spec.js +0 -12
  639. package/out/test/units/login.spec.js.map +0 -1
  640. package/out/test/units/page/Block.spec.d.ts +0 -0
  641. package/out/test/units/page/Block.spec.js +0 -13
  642. package/out/test/units/page/Block.spec.js.map +0 -1
  643. package/out/test/units/page/Element.spec.d.ts +0 -1
  644. package/out/test/units/page/Element.spec.js +0 -44
  645. package/out/test/units/page/Element.spec.js.map +0 -1
  646. package/out/test/units/temp/temp.spec.d.ts +0 -1
  647. package/out/test/units/temp/temp.spec.js +0 -68
  648. package/out/test/units/temp/temp.spec.js.map +0 -1
  649. package/out/translator/index.d.ts +0 -47
  650. package/out/translator/index.js +0 -108
  651. package/out/translator/index.js.map +0 -1
  652. package/out/translator/lsp.d.ts +0 -45
  653. package/out/translator/lsp.js +0 -6
  654. package/out/translator/lsp.js.map +0 -1
  655. package/out/translator/tsp.d.ts +0 -12
  656. package/out/translator/tsp.js +0 -3
  657. package/out/translator/tsp.js.map +0 -1
  658. package/out/utils/index.d.ts +0 -37
  659. package/out/utils/index.js +0 -125
  660. package/out/utils/index.js.map +0 -1
  661. package/out/utils/logger.d.ts +0 -3
  662. package/out/utils/logger.js +0 -11
  663. package/out/utils/logger.js.map +0 -1
  664. package/out/utils/string.d.ts +0 -38
  665. package/out/utils/string.js +0 -95
  666. package/out/utils/string.js.map +0 -1
  667. package/out/utils/traverse.d.ts +0 -36
  668. package/out/utils/traverse.js +0 -132
  669. package/out/utils/traverse.js.map +0 -1
@@ -1,1414 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- var ViewElement_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ViewElement = void 0;
37
- const translator_1 = require("../translator");
38
- const babelParser = __importStar(require("@babel/parser"));
39
- const json5 = __importStar(require("json5"));
40
- const compiler = __importStar(require("vue-template-compiler"));
41
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
42
- const __1 = require("..");
43
- function genArgumentMemberExpression(arr) {
44
- let expressionNode;
45
- const propertyName = arr.pop();
46
- if (arr.length >= 1) {
47
- expressionNode = {
48
- concept: 'MemberExpression',
49
- name: '',
50
- kind: 'Expression',
51
- object: genArgumentMemberExpression(arr),
52
- property: {
53
- concept: 'Identifier',
54
- kind: 'Expression',
55
- name: propertyName,
56
- },
57
- };
58
- }
59
- else {
60
- return {
61
- concept: 'Identifier',
62
- kind: 'Expression',
63
- name: propertyName,
64
- };
65
- }
66
- return expressionNode;
67
- }
68
- function transAstNodeToNaslNode(astNode, namespace) {
69
- let node = null;
70
- if (astNode.type === 'CallExpression' && astNode.callee.object.name === '$utils') {
71
- const calleeName = astNode.callee.property.name || astNode.callee.property.value;
72
- if (calleeName === 'EnumList') {
73
- const args = astNode.arguments;
74
- let name = '';
75
- let namespace = 'app.enums';
76
- if (Array.isArray(args)) {
77
- name = args[0]?.value;
78
- namespace = args[1]?.value ? args[1]?.value : 'app.enums';
79
- }
80
- node = {
81
- concept: 'Identifier',
82
- name,
83
- namespace,
84
- kind: 'Expression',
85
- };
86
- }
87
- else {
88
- node = {
89
- concept: 'CallFunction',
90
- name: '',
91
- label: '调用内置函数',
92
- kind: 'Expression',
93
- calleeNamespace: 'nasl.util',
94
- calleeName,
95
- arguments: astNode.arguments.map((argument) => ({
96
- concept: 'Argument',
97
- name: '',
98
- kind: 'Statement',
99
- keyword: '',
100
- expression: transAstNodeToNaslNode(Object.assign({}, argument)),
101
- })),
102
- };
103
- }
104
- }
105
- else if (astNode.type === 'MemberExpression') {
106
- if (astNode.object?.name === '$global') {
107
- // 目前只有权限相关的
108
- node = transAstNodeToNaslNode(astNode.property, 'nasl.auth');
109
- }
110
- else {
111
- node = {
112
- concept: 'MemberExpression',
113
- name: '',
114
- kind: 'Expression',
115
- object: transAstNodeToNaslNode(astNode.object),
116
- property: transAstNodeToNaslNode(astNode.property),
117
- };
118
- }
119
- }
120
- else if (astNode.type === 'Identifier') {
121
- node = {
122
- concept: 'Identifier',
123
- namespace: namespace || '',
124
- name: astNode.name,
125
- kind: 'Expression',
126
- };
127
- }
128
- else if (astNode.type === 'ArrayExpression' || astNode.type === 'ObjectExpression') {
129
- node = {
130
- concept: 'Unparsed',
131
- label: '原子项',
132
- code: astNode.value,
133
- };
134
- }
135
- else if (astNode.type === 'StringLiteral') {
136
- node = {
137
- concept: 'StringLiteral',
138
- kind: 'Expression',
139
- name: '',
140
- value: astNode.value,
141
- };
142
- }
143
- else if (astNode.type === 'UnaryExpression') {
144
- node = {
145
- concept: 'UnaryExpression',
146
- kind: 'Expression',
147
- name: '',
148
- operator: astNode.operator,
149
- argument: transAstNodeToNaslNode(astNode.argument),
150
- };
151
- }
152
- else {
153
- node = astNode;
154
- node.concept = astNode.type;
155
- }
156
- return node;
157
- }
158
- const decorators_1 = require("../decorators");
159
- const utils = __importStar(require("../utils"));
160
- const BaseNode_1 = __importDefault(require("../common/BaseNode"));
161
- const classMap_1 = __importDefault(require("../common/classMap"));
162
- const BindAttribute__1 = __importDefault(require("./BindAttribute__"));
163
- const BindEvent__1 = __importDefault(require("./BindEvent__"));
164
- const BindDirective__1 = __importDefault(require("./BindDirective__"));
165
- /**
166
- * 页面元素
167
- */
168
- let ViewElement = ViewElement_1 = class ViewElement extends BaseNode_1.default {
169
- /**
170
- * 产品概念
171
- */
172
- concept = 'ViewElement';
173
- /**
174
- * 类型
175
- */
176
- type = undefined;
177
- /**
178
- * 元素标签
179
- */
180
- tag = undefined;
181
- /**
182
- * 页面元素名称
183
- */
184
- name = undefined;
185
- /**
186
- * 静态 class 名
187
- */
188
- staticClass = undefined;
189
- /**
190
- * 静态 style
191
- */
192
- staticStyle = undefined;
193
- /**
194
- * 插槽目标
195
- */
196
- slotTarget = undefined;
197
- /**
198
- * 插槽 scope 表达式
199
- */
200
- slotScope = undefined;
201
- /**
202
- * 元素绑定属性列表
203
- */
204
- bindAttrs = [];
205
- /**
206
- * 元素绑定事件列表
207
- */
208
- bindEvents = [];
209
- /**
210
- * 元素指令列表
211
- */
212
- bindDirectives = [];
213
- /**
214
- * 绑定的角色
215
- */
216
- bindRoles = [];
217
- /**
218
- * 子元素列表
219
- */
220
- children = [];
221
- /**
222
- * 祖先 View
223
- */
224
- get view() {
225
- return this.getAncestor('View');
226
- }
227
- /**
228
- * 祖先 Module
229
- */
230
- get module() {
231
- return this.getAncestor('Module');
232
- }
233
- /**
234
- * 祖先 App
235
- */
236
- get app() {
237
- return this.getAncestor('App');
238
- }
239
- /**
240
- * @param source 需要合并的部分参数
241
- */
242
- constructor(source) {
243
- source = Object.assign({}, ViewElement_1.getDefaultOptions(), source);
244
- super(source);
245
- super.subConstructor(source);
246
- }
247
- /**
248
- * 从父级删除该节点
249
- * @internal
250
- */
251
- _delete() {
252
- let params = null;
253
- if (this.parentNode) {
254
- params = this.parentNode?.__removeViewElement?.(this);
255
- }
256
- return params;
257
- }
258
- /**
259
- * 设置页面元素名称
260
- */
261
- setName(name) {
262
- const object = {
263
- name,
264
- };
265
- this.update({
266
- ...object,
267
- field: 'name',
268
- });
269
- }
270
- /**
271
- * 设置静态 style
272
- */
273
- setStaticStyle(staticStyle) {
274
- const object = {
275
- staticStyle,
276
- };
277
- this.update({
278
- ...object,
279
- });
280
- }
281
- getBindAttributeExistingNames(excludedList = []) {
282
- const excludedSet = new Set(excludedList);
283
- return (this.bindAttrs || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
284
- }
285
- getBindAttributeUniqueName(name = 'bindAttribute1') {
286
- return utils.unique(name, this.getBindAttributeExistingNames(), undefined, false);
287
- }
288
- _insertBindAttributeAt(options, index) {
289
- const bindAttributeOptions = {};
290
- const relationOptions = { parentNode: this, parentKey: 'bindAttrs' };
291
- let bindAttribute;
292
- if (!options) {
293
- bindAttribute = BindAttribute__1.default.from({
294
- ...bindAttributeOptions,
295
- name: this.getBindAttributeUniqueName(),
296
- }, this, 'bindAttrs');
297
- }
298
- else if (typeof options === 'string') {
299
- bindAttribute = BindAttribute__1.default.from({
300
- ...bindAttributeOptions,
301
- name: options,
302
- }, this, 'bindAttrs');
303
- }
304
- else if (options instanceof BindAttribute__1.default) {
305
- options.ensureDelete(); // 同一实例不支持多处存在
306
- bindAttribute = options;
307
- Object.assign(bindAttribute, relationOptions);
308
- }
309
- else {
310
- bindAttribute = BindAttribute__1.default.from({
311
- ...bindAttributeOptions,
312
- ...options,
313
- }, this, 'bindAttrs');
314
- }
315
- this.bindAttrs.splice(index, 0, bindAttribute);
316
- return bindAttribute;
317
- }
318
- insertBindAttributeAt(options, index) {
319
- const node = this._insertBindAttributeAt(options, index);
320
- node.create({
321
- index,
322
- parentNode: this,
323
- parentKey: 'bindAttrs',
324
- });
325
- return node;
326
- }
327
- _addBindAttribute(options) {
328
- const index = this.bindAttrs.length;
329
- return this._insertBindAttributeAt(options, index);
330
- }
331
- addBindAttribute(options) {
332
- const node = this._addBindAttribute(options);
333
- const index = this.bindAttrs.indexOf(node);
334
- node.create({
335
- index,
336
- parentNode: this,
337
- parentKey: 'bindAttrs',
338
- });
339
- return node;
340
- }
341
- getBindEventExistingNames(excludedList = []) {
342
- const excludedSet = new Set(excludedList);
343
- return (this.bindEvents || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
344
- }
345
- getBindEventUniqueName(name = 'bindEvent1') {
346
- return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
347
- }
348
- _insertBindEventAt(options, index) {
349
- const bindEventOptions = {};
350
- const relationOptions = { parentNode: this, parentKey: 'bindEvents' };
351
- let bindEvent;
352
- if (!options) {
353
- bindEvent = BindEvent__1.default.from({
354
- ...bindEventOptions,
355
- name: this.getBindEventUniqueName(),
356
- }, this, 'bindEvents');
357
- }
358
- else if (typeof options === 'string') {
359
- bindEvent = BindEvent__1.default.from({
360
- ...bindEventOptions,
361
- name: options,
362
- }, this, 'bindEvents');
363
- }
364
- else if (options instanceof BindEvent__1.default) {
365
- options.ensureDelete(); // 同一实例不支持多处存在
366
- bindEvent = options;
367
- Object.assign(bindEvent, relationOptions);
368
- }
369
- else {
370
- bindEvent = BindEvent__1.default.from({
371
- ...bindEventOptions,
372
- ...options,
373
- }, this, 'bindEvents');
374
- }
375
- this.bindEvents.splice(index, 0, bindEvent);
376
- return bindEvent;
377
- }
378
- insertBindEventAt(options, index) {
379
- const node = this._insertBindEventAt(options, index);
380
- node.create({
381
- index,
382
- parentNode: this,
383
- parentKey: 'bindEvents',
384
- });
385
- return node;
386
- }
387
- _addBindEvent(options) {
388
- const index = this.bindEvents.length;
389
- return this._insertBindEventAt(options, index);
390
- }
391
- addBindEvent(options) {
392
- const node = this._addBindEvent(options);
393
- const index = this.bindEvents.indexOf(node);
394
- node.create({
395
- index,
396
- parentNode: this,
397
- parentKey: 'bindEvents',
398
- });
399
- return node;
400
- }
401
- getBindDirectiveExistingNames(excludedList = []) {
402
- const excludedSet = new Set(excludedList);
403
- return (this.bindDirectives || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
404
- }
405
- getBindDirectiveUniqueName(name = 'bindDirective1') {
406
- return utils.unique(name, this.getBindDirectiveExistingNames(), undefined, false);
407
- }
408
- _insertBindDirectiveAt(options, index) {
409
- const bindDirectiveOptions = {};
410
- const relationOptions = { parentNode: this, parentKey: 'bindDirectives' };
411
- let bindDirective;
412
- if (!options) {
413
- bindDirective = BindDirective__1.default.from({
414
- ...bindDirectiveOptions,
415
- name: this.getBindDirectiveUniqueName(),
416
- }, this, 'bindDirectives');
417
- }
418
- else if (typeof options === 'string') {
419
- bindDirective = BindDirective__1.default.from({
420
- ...bindDirectiveOptions,
421
- name: options,
422
- }, this, 'bindDirectives');
423
- }
424
- else if (options instanceof BindDirective__1.default) {
425
- options.ensureDelete(); // 同一实例不支持多处存在
426
- bindDirective = options;
427
- Object.assign(bindDirective, relationOptions);
428
- }
429
- else {
430
- bindDirective = BindDirective__1.default.from({
431
- ...bindDirectiveOptions,
432
- ...options,
433
- }, this, 'bindDirectives');
434
- }
435
- this.bindDirectives.splice(index, 0, bindDirective);
436
- return bindDirective;
437
- }
438
- insertBindDirectiveAt(options, index) {
439
- const node = this._insertBindDirectiveAt(options, index);
440
- node.create({
441
- index,
442
- parentNode: this,
443
- parentKey: 'bindDirectives',
444
- });
445
- return node;
446
- }
447
- _addBindDirective(options) {
448
- const index = this.bindDirectives.length;
449
- return this._insertBindDirectiveAt(options, index);
450
- }
451
- addBindDirective(options) {
452
- const node = this._addBindDirective(options);
453
- const index = this.bindDirectives.indexOf(node);
454
- node.create({
455
- index,
456
- parentNode: this,
457
- parentKey: 'bindDirectives',
458
- });
459
- return node;
460
- }
461
- _insertViewElementAt(options, index) {
462
- const viewElementOptions = {};
463
- const relationOptions = { parentNode: this, parentKey: 'children' };
464
- let viewElement;
465
- if (!options) {
466
- viewElement = ViewElement_1.from({
467
- ...viewElementOptions,
468
- name: this.getViewElementUniqueName(),
469
- }, this, 'children');
470
- }
471
- else if (typeof options === 'string') {
472
- viewElement = ViewElement_1.from({
473
- ...viewElementOptions,
474
- name: options,
475
- }, this, 'children');
476
- }
477
- else if (options instanceof ViewElement_1) {
478
- options.ensureDelete(); // 同一实例不支持多处存在
479
- viewElement = options;
480
- Object.assign(viewElement, relationOptions);
481
- }
482
- else {
483
- viewElement = ViewElement_1.from({
484
- ...viewElementOptions,
485
- ...options,
486
- }, this, 'children');
487
- }
488
- this.children.splice(index, 0, viewElement);
489
- return viewElement;
490
- }
491
- insertViewElementAt(options, index) {
492
- const node = this._insertViewElementAt(options, index);
493
- node.create({
494
- index,
495
- parentNode: this,
496
- parentKey: 'children',
497
- });
498
- return node;
499
- }
500
- _addViewElement(options) {
501
- const index = this.children.length;
502
- return this._insertViewElementAt(options, index);
503
- }
504
- addViewElement(options) {
505
- const node = this._addViewElement(options);
506
- const index = this.children.indexOf(node);
507
- node.create({
508
- index,
509
- parentNode: this,
510
- parentKey: 'children',
511
- });
512
- return node;
513
- }
514
- removeBindAttribute(options) {
515
- let bindAttribute;
516
- if (typeof options === 'string') {
517
- bindAttribute = this.bindAttrs.find((item) => item.name === options);
518
- if (!bindAttribute) {
519
- throw new Error('找不到元素绑定属性 ' + options);
520
- }
521
- }
522
- else {
523
- bindAttribute = options;
524
- }
525
- return bindAttribute.delete();
526
- }
527
- __removeBindAttribute(bindAttribute) {
528
- const parentKey = bindAttribute.parentKey;
529
- const params = {
530
- parentNode: this,
531
- parentKey,
532
- index: -1,
533
- object: null,
534
- oldObject: bindAttribute,
535
- };
536
- if (parentKey) {
537
- params.parentKey = parentKey;
538
- if (Array.isArray(this[parentKey])) {
539
- const index = this[parentKey].indexOf(bindAttribute);
540
- ~index && this[parentKey].splice(index, 1);
541
- params.index = index;
542
- }
543
- else if (this[parentKey] === bindAttribute) {
544
- params.index = 0;
545
- this[parentKey] = undefined;
546
- }
547
- }
548
- return params;
549
- }
550
- removeBindEvent(options) {
551
- let bindEvent;
552
- if (typeof options === 'string') {
553
- bindEvent = this.bindEvents.find((item) => item.name === options);
554
- if (!bindEvent) {
555
- throw new Error('找不到元素绑定事件 ' + options);
556
- }
557
- }
558
- else {
559
- bindEvent = options;
560
- }
561
- return bindEvent.delete();
562
- }
563
- __removeBindEvent(bindEvent) {
564
- const parentKey = bindEvent.parentKey;
565
- const params = {
566
- parentNode: this,
567
- parentKey,
568
- index: -1,
569
- object: null,
570
- oldObject: bindEvent,
571
- };
572
- if (parentKey) {
573
- params.parentKey = parentKey;
574
- if (Array.isArray(this[parentKey])) {
575
- const index = this[parentKey].indexOf(bindEvent);
576
- ~index && this[parentKey].splice(index, 1);
577
- params.index = index;
578
- }
579
- else if (this[parentKey] === bindEvent) {
580
- params.index = 0;
581
- this[parentKey] = undefined;
582
- }
583
- }
584
- return params;
585
- }
586
- removeBindDirective(options) {
587
- let bindDirective;
588
- if (typeof options === 'string') {
589
- bindDirective = this.bindDirectives.find((item) => item.name === options);
590
- if (!bindDirective) {
591
- throw new Error('找不到元素指令 ' + options);
592
- }
593
- }
594
- else {
595
- bindDirective = options;
596
- }
597
- return bindDirective.delete();
598
- }
599
- __removeBindDirective(bindDirective) {
600
- const parentKey = bindDirective.parentKey;
601
- const params = {
602
- parentNode: this,
603
- parentKey,
604
- index: -1,
605
- object: null,
606
- oldObject: bindDirective,
607
- };
608
- if (parentKey) {
609
- params.parentKey = parentKey;
610
- if (Array.isArray(this[parentKey])) {
611
- const index = this[parentKey].indexOf(bindDirective);
612
- ~index && this[parentKey].splice(index, 1);
613
- params.index = index;
614
- }
615
- else if (this[parentKey] === bindDirective) {
616
- params.index = 0;
617
- this[parentKey] = undefined;
618
- }
619
- }
620
- return params;
621
- }
622
- removeViewElement(options) {
623
- let viewElement;
624
- if (typeof options === 'string') {
625
- viewElement = this.children.find((item) => item.name === options);
626
- if (!viewElement) {
627
- throw new Error('找不到页面元素 ' + options);
628
- }
629
- }
630
- else {
631
- viewElement = options;
632
- }
633
- return viewElement.delete();
634
- }
635
- __removeViewElement(viewElement) {
636
- const parentKey = viewElement.parentKey;
637
- const params = {
638
- parentNode: this,
639
- parentKey,
640
- index: -1,
641
- object: null,
642
- oldObject: viewElement,
643
- };
644
- if (parentKey) {
645
- params.parentKey = parentKey;
646
- if (Array.isArray(this[parentKey])) {
647
- const index = this[parentKey].indexOf(viewElement);
648
- ~index && this[parentKey].splice(index, 1);
649
- params.index = index;
650
- }
651
- else if (this[parentKey] === viewElement) {
652
- params.index = 0;
653
- this[parentKey] = undefined;
654
- }
655
- }
656
- return params;
657
- }
658
- //================================================================================
659
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
660
- // 自动生成的代码已结束。下面可以手动编写。
661
- //================================================================================
662
- /* 主页面有没有权限 */
663
- get parentAuth() {
664
- const _nameSpace = this.view.getNamespace();
665
- const mainViewName = _nameSpace.split('.')[2];
666
- return this.view.parentNode.concept === 'App' ? this.view.auth : this.app.views.find((item) => item.name === mainViewName)?.auth;
667
- }
668
- /**
669
- * 权限领域的资源路径
670
- */
671
- get authPath() {
672
- return `${this.view.path}/${this.name}`;
673
- }
674
- getViewElementUniqueName(name = 'viewElement1') {
675
- return this.view?.getViewElementUniqueName(name);
676
- }
677
- static TAG_NAME_PREFIX_REG = /^([lieu]|van)[-_]/;
678
- static from(source, parentNode, parentKey) {
679
- const node = super.from(source, parentNode, parentKey);
680
- if (!node.name) {
681
- const tagName = node.tag.replace(ViewElement_1.TAG_NAME_PREFIX_REG, '').replace(/-/g, '_');
682
- node.name = node.getViewElementUniqueName(`${tagName}1`);
683
- }
684
- return node;
685
- }
686
- /**
687
- * 设置组件权限
688
- */
689
- setBindRoles(bindRoles) {
690
- const object = {
691
- bindRoles,
692
- };
693
- this.update({
694
- ...object,
695
- });
696
- }
697
- getBindAttribute(name) {
698
- return this.bindAttrs.find((bindAttr) => bindAttr.name === name);
699
- }
700
- toHump(name) {
701
- return name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase());
702
- }
703
- haveScope(node) {
704
- // uGallery 没有子集不需要scope
705
- const dataSourcePcList = ['uTableView', 'uListView', 'uGridView', 'uCalendarView', 'uListComponents', 'uSelect', 'devopsDragTable', 'uTreeViewNew', 'uTreeSelectNew'];
706
- const dataSourceH5List = ['vanRadioGroup', 'vanCheckboxGroup', 'vanListView', 'vanGridView', 'vanForComponents', 'lcapEchartsLine', 'lcapEchartsBar', 'lcapEchartsPie'];
707
- const dataSourceList = [...dataSourcePcList, ...dataSourceH5List];
708
- return dataSourceList.includes(node.toHump(node.tag));
709
- }
710
- toEmbeddedTSDefinition(state) {
711
- // 登录组件不翻译
712
- if (this.toHump(this.tag) === 'lcapLogin' || this.staticClass === 'login-form')
713
- return '';
714
- let code = '';
715
- // formItem的单独处理
716
- if (this.tag === 'u-form-item') {
717
- code = (0, translator_1.indent)((state?.tabSize || 0)) + `${this.name}: nasl.ui.${this.toHump(this.tag)}`;
718
- if (Array.isArray(this.children) && this.children.length) {
719
- const tag = this.children[0].tag;
720
- if (tag === 'u-input') {
721
- code += '<nasl.core.String>';
722
- }
723
- else if (tag === 'u-input-number') {
724
- code += '<nasl.core.Integer>';
725
- }
726
- else {
727
- code += '<nasl.core.Any>';
728
- }
729
- }
730
- code += ';\n';
731
- }
732
- if (this.haveScope(this)) {
733
- let genericType = 'any';
734
- const bindAttrs = this.bindAttrs;
735
- if (bindAttrs && bindAttrs.length) {
736
- const attr = bindAttrs.find((item) => item.name === 'data-source');
737
- if (attr && attr.expression) {
738
- let expressionTs = attr.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
739
- expressionTs = expressionTs.replaceAll(' ', '');
740
- // 如果是逻辑就推导出逻辑类型
741
- genericType = `nasl.ui.GetItemTypeFromDataSource<typeof ${expressionTs}>`;
742
- // 如果是scope的类型,需要单独处理
743
- if (expressionTs.startsWith('scope') && expressionTs.includes('.item.')) {
744
- let parentNode = this.parentNode;
745
- let haveScopeFlag = false;
746
- while (!haveScopeFlag && parentNode.concept !== 'View') {
747
- if (this.haveScope(parentNode)) {
748
- // type d = nasl.ui.GetItemTypeFromDataSource<typeof listStructure>['tableRelation']
749
- const tsArr = expressionTs.replace('scope.item.', '').split('.');
750
- let itemStr = '';
751
- tsArr.forEach((item) => {
752
- itemStr += `['${item}']`;
753
- });
754
- const parentbindAttrs = parentNode.bindAttrs;
755
- if (parentbindAttrs && parentbindAttrs.length) {
756
- const parentAttr = parentbindAttrs.find((item) => item.name === 'data-source');
757
- if (parentAttr && parentAttr.expression) {
758
- let parentExpressionTs = parentAttr.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
759
- parentExpressionTs = parentExpressionTs.replaceAll(' ', '');
760
- // 如果是逻辑就推导出逻辑类型
761
- genericType = `nasl.ui.GetItemTypeFromDataSource<nasl.ui.GetItemTypeFromDataSource<typeof ${parentExpressionTs}>${itemStr}>`;
762
- }
763
- }
764
- haveScopeFlag = true;
765
- }
766
- parentNode = parentNode.parentNode;
767
- }
768
- }
769
- }
770
- }
771
- code += (0, translator_1.indent)((state?.tabSize || 0)) + `${this.name}: nasl.ui.${this.toHump(this.tag)}<${genericType}>;\n`;
772
- }
773
- else {
774
- code = (0, translator_1.indent)((state?.tabSize || 0)) + `${this.name}: nasl.ui.${this.toHump(this.tag)}<any>;\n`;
775
- }
776
- if (Array.isArray(this.children)) {
777
- this.children.forEach((element) => {
778
- code += element.toEmbeddedTSDefinition((0, translator_1.shiftState)(state, code));
779
- });
780
- }
781
- return code;
782
- }
783
- toEmbeddedTS(state, parentLevel) {
784
- if (this.toHump(this.tag) === 'lcapLogin' || this.staticClass === 'login-form')
785
- return '';
786
- function chineseTsName(name) {
787
- let tsName = name;
788
- // 匹配所有特殊字符都转为_
789
- tsName = tsName.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '_');
790
- if (/^\d/.test(tsName)) {
791
- tsName = '$' + tsName;
792
- }
793
- return tsName;
794
- }
795
- let code = `__elements.${this.name} = new nasl.ui.${this.toHump(this.tag)}({\n`;
796
- // 是否开启权限
797
- let hasAuth = false;
798
- if (Array.isArray(this.bindDirectives)) {
799
- hasAuth = !!this.bindDirectives.filter((directive) => directive.name === 'auth').length;
800
- }
801
- // 角色
802
- if (Array.isArray(this.bindRoles) && this.bindRoles.length) {
803
- code += (0, translator_1.indent)((state?.tabSize || 0) + 2);
804
- code += 'roles = [\n';
805
- this.bindRoles.forEach((role) => {
806
- code += (0, translator_1.indent)((state?.tabSize || 0) + 3);
807
- code += `${this.app.getNamespace()}.roles.${chineseTsName(role)}.${chineseTsName(role)},`;
808
- code += '\n';
809
- });
810
- code += (0, translator_1.indent)((state?.tabSize || 0) + 2);
811
- code += '],\n';
812
- }
813
- // 绑定属性
814
- if (Array.isArray(this.bindAttrs)) {
815
- this.bindAttrs.forEach((attr) => {
816
- // 跳转页面
817
- if (attr.destination) {
818
- code += attr.destination.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
819
- tabSize: (state?.tabSize || 0),
820
- }));
821
- }
822
- });
823
- code += '\n';
824
- }
825
- // 事件
826
- if (Array.isArray(this.bindEvents)) {
827
- this.bindEvents.forEach((event) => {
828
- code += event.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
829
- tabSize: (state?.tabSize || 0) + 2,
830
- }));
831
- code += '\n';
832
- });
833
- }
834
- // 子元素
835
- if (Array.isArray(this.children)) {
836
- code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
837
- if (Array.isArray(this.bindAttrs)) {
838
- code += `bindAttr: () => [\n`;
839
- this.bindAttrs.forEach((attr) => {
840
- if (attr.expression) {
841
- code
842
- += attr.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
843
- tabSize: (state?.tabSize || 0) + 2,
844
- })) + ',\n';
845
- }
846
- if (Array.isArray(attr.rules) && attr.rules.length) {
847
- attr.rules.forEach((item) => {
848
- code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code)) + ',\n';
849
- });
850
- }
851
- });
852
- this.bindDirectives.forEach((directive) => {
853
- if (directive.expression) {
854
- code
855
- += directive.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
856
- tabSize: (state?.tabSize || 0) + 2,
857
- })) + ',\n';
858
- }
859
- });
860
- code += (0, translator_1.indent)((state?.tabSize || 0) + 2) + '],\n';
861
- }
862
- let levelIndex = parentLevel || 0;
863
- if (this.haveScope(this)) {
864
- code += `slotDefault: (scope)=> [\n`;
865
- levelIndex++;
866
- }
867
- else {
868
- code += `slotDefault: ()=> [\n`;
869
- }
870
- this.children.forEach((element) => {
871
- code += element.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
872
- tabSize: (state?.tabSize || 0) + 2,
873
- }), levelIndex);
874
- code += '\n';
875
- });
876
- code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
877
- code += ']\n';
878
- }
879
- code += (0, translator_1.indent)((state?.tabSize || 0)) + '}),\n';
880
- return code;
881
- }
882
- _duplicate() {
883
- const element = ViewElement_1.from(this.toTemplateJSON());
884
- element.deepRenameElements(this);
885
- return element;
886
- }
887
- // 递归遍历组件
888
- traverseChildren(cb) {
889
- utils.traverse((current) => {
890
- cb(current.node);
891
- }, { node: this });
892
- }
893
- // 递归生成组件名
894
- deepRenameElements(node) {
895
- return this.traverseChildren((ele) => {
896
- const tagName = ele.tag.replace(ViewElement_1.TAG_NAME_PREFIX_REG, '').replace(/-/g, '_');
897
- ele.name = node.getViewElementUniqueName(`${tagName}1`);
898
- });
899
- }
900
- /**
901
- * 解析属性中的表达式
902
- * @param value
903
- * @param $def 目前 $def 只用来查找 $def.variables 和 $def.structures
904
- * @param dataSchema
905
- */
906
- static _parseExpression(value) {
907
- try {
908
- const ast = babelParser.parseExpression(value);
909
- const node = transAstNodeToNaslNode(ast);
910
- return LogicItem__1.default.from(node, null, null);
911
- }
912
- catch (e) {
913
- return null;
914
- }
915
- }
916
- static _parseValidationRule(value) {
917
- let calleeName = value;
918
- let args = [];
919
- try {
920
- const ast = babelParser.parseExpression(value);
921
- if (ast.type === 'CallExpression') {
922
- calleeName = ast.callee.property.name || ast.callee.property.value;
923
- args = ast.arguments.map((argument) => ({
924
- concept: 'Argument',
925
- name: '',
926
- kind: 'Statement',
927
- keyword: '',
928
- expression: transAstNodeToNaslNode(Object.assign({}, argument)),
929
- }));
930
- }
931
- }
932
- catch (error) { }
933
- return {
934
- concept: 'ValidationRule',
935
- name: '',
936
- label: '验证规则',
937
- kind: 'Expression',
938
- calleeNamespace: 'nasl.validation',
939
- arguments: args,
940
- calleeName,
941
- };
942
- }
943
- /**
944
- * 从 Vue 的 ASTNode 转换成 ASL 元素
945
- * @param astNode Vue 的 ASTNode
946
- */
947
- static _fromASTNode(astNode, context) {
948
- const view = context?.view;
949
- // 临时处理组件的 text
950
- //h5-mock
951
- if (['u-text', 'van-text', 'u-link', 'u-button', 'u-label', 'u-radio', 'u-checkbox', 'u-navbar-item', 'u-sidebar-item', 'u-menu-item'].includes(astNode.tag)
952
- && astNode.children.length === 1
953
- && astNode.children[0].type === 3) {
954
- astNode.attrs = astNode.attrs || [];
955
- astNode.attrs.push({
956
- name: 'text',
957
- value: JSON.stringify(astNode.children[0].text),
958
- });
959
- astNode.children = [];
960
- }
961
- // 将 scopedSlots 合并到 children 中
962
- if (astNode.scopedSlots) {
963
- astNode.children = astNode.children || [];
964
- Object.keys(astNode.scopedSlots).forEach((key) => {
965
- if (!astNode.children.find((child) => key === child.slotTarget)) {
966
- astNode.children.unshift(astNode.scopedSlots[key]);
967
- }
968
- });
969
- delete astNode.scopedSlots;
970
- }
971
- // 提示不支持的字段
972
- ['component', 'inlineTemplate', 'pre', 'ns', 'transition', 'transitionOnAppear', 'transitionMode', 'slotName', 'classBinding', 'styleBinding'].forEach((key) => {
973
- if (astNode[key])
974
- console.warn(`[warn] ViewElement NASL unsupports '${key}' field in node `, astNode);
975
- });
976
- let element;
977
- if (astNode.type === 1) {
978
- if (astNode.tag === 'router-view') {
979
- if (__1.config.scope === 'h5') {
980
- astNode.tag = 'van-router-view';
981
- }
982
- else {
983
- astNode.tag = 'u-router-view';
984
- }
985
- }
986
- const tagName = astNode.tag.replace(ViewElement_1.TAG_NAME_PREFIX_REG, '').replace(/-/g, '_');
987
- let newContext = {};
988
- if (context) {
989
- newContext = {
990
- ...context,
991
- };
992
- }
993
- element = new ViewElement_1({
994
- tag: astNode.tag,
995
- name: astNode.attrsMap.ref || view.getViewElementUniqueName(`${tagName}1`),
996
- staticClass: astNode.attrsMap.class,
997
- staticStyle: astNode.attrsMap.style,
998
- slotTarget: astNode.slotTarget && json5.parse(astNode.slotTarget),
999
- slotScope: astNode.slotScope === '_empty_' ? '' : astNode.slotScope,
1000
- children: astNode.children.map((item) => this._fromASTNode(item, newContext)),
1001
- });
1002
- astNode?.attrs?.forEach((oldAttr) => {
1003
- let attr;
1004
- if (oldAttr.value === '""' && oldAttr.end - oldAttr.start === oldAttr.name.length) {
1005
- attr = new BindAttribute__1.default({
1006
- type: 'static',
1007
- name: oldAttr.name,
1008
- value: 'true',
1009
- });
1010
- }
1011
- else {
1012
- try {
1013
- const tmp = json5.parse(oldAttr.value);
1014
- const source = {
1015
- type: typeof tmp === 'string' ? 'string' : 'static',
1016
- name: oldAttr.name,
1017
- value: typeof tmp === 'string' ? tmp : oldAttr.value,
1018
- };
1019
- if (oldAttr.name === 'rules') {
1020
- source.rules = tmp?.split('|').map((ruleStr) => this._parseValidationRule(ruleStr.trim()));
1021
- }
1022
- attr = new BindAttribute__1.default(source);
1023
- }
1024
- catch (e) {
1025
- const expression = this._parseExpression(oldAttr.value);
1026
- attr = new BindAttribute__1.default({
1027
- type: 'dynamic',
1028
- name: oldAttr.name,
1029
- value: expression ? '' : oldAttr.value,
1030
- expression,
1031
- });
1032
- if (astNode.attrsMap[`:${attr.name}.sync`]) {
1033
- attr.sync = true;
1034
- }
1035
- }
1036
- }
1037
- element.addBindAttribute(attr);
1038
- });
1039
- // compiler 处理:value.sync 时会加上update:value事件,需要过滤
1040
- astNode.events
1041
- && Object.keys(astNode.events)
1042
- .filter((name) => !name.startsWith('update:'))
1043
- .forEach((name) => {
1044
- const oldEvent = astNode.events[name];
1045
- const str = oldEvent.value;
1046
- let calleeName = str.split('(')[0];
1047
- const matchArr = str.match(/\(([^)]*)\)/) || [];
1048
- let argsStr = '';
1049
- if (matchArr?.length >= 2) {
1050
- argsStr = matchArr[1];
1051
- }
1052
- let args = [];
1053
- const argStrs = argsStr.split(',');
1054
- args = argStrs
1055
- .filter((argStr) => !!argStr && argStr !== '_empty_')
1056
- .map((argStr) => {
1057
- const keyword = argStr.trim().split('.');
1058
- return {
1059
- concept: 'Argument',
1060
- expression: genArgumentMemberExpression(keyword),
1061
- };
1062
- });
1063
- let calleeNamespace = '';
1064
- if (calleeName) {
1065
- const namespaceArr = calleeName.split('.');
1066
- const start = namespaceArr.shift();
1067
- if (start === '$refs' && namespaceArr.length === 2) {
1068
- calleeNamespace = `elements.${namespaceArr[0]}.logics`;
1069
- calleeName = namespaceArr[1];
1070
- }
1071
- }
1072
- element.addBindEvent(new BindEvent__1.default({
1073
- name,
1074
- calleeNamespace,
1075
- calleeName,
1076
- arguments: args,
1077
- }));
1078
- });
1079
- astNode.directives
1080
- && astNode.directives.forEach((directive) => {
1081
- if (directive.name === 'model') {
1082
- const valueAttr = astNode.attrs && astNode.attrs.find((attr) => attr.name === 'value');
1083
- if (!valueAttr) {
1084
- const expression = this._parseExpression(directive.value);
1085
- element.addBindAttribute(new BindAttribute__1.default({
1086
- type: 'dynamic',
1087
- name: 'value',
1088
- value: expression ? '' : directive.value,
1089
- expression,
1090
- sync: true,
1091
- }));
1092
- }
1093
- }
1094
- else {
1095
- const expression = this._parseExpression(directive.value);
1096
- element.addBindDirective(new BindDirective__1.default({
1097
- type: expression ? 'string' : 'dynamic',
1098
- name: directive.name,
1099
- rawName: directive.rawName,
1100
- value: expression ? '' : directive.value,
1101
- expression,
1102
- arg: directive.arg,
1103
- // modifiers: directive.modifiers,
1104
- }));
1105
- }
1106
- });
1107
- if (astNode.if) {
1108
- element.addBindDirective(new BindDirective__1.default({
1109
- type: 'dynamic',
1110
- name: 'if',
1111
- rawName: 'v-if',
1112
- value: '',
1113
- expression: this._parseExpression(astNode.if),
1114
- }));
1115
- }
1116
- }
1117
- else if (astNode.type === 2) {
1118
- const tagName = __1.config.scope === 'h5' ? 'van-text' : 'u-text';
1119
- const baseName = tagName.replace(ViewElement_1.TAG_NAME_PREFIX_REG, '').replace(/-/g, '_');
1120
- element = new ViewElement_1({
1121
- tag: tagName,
1122
- name: view.getViewElementUniqueName(`${baseName}1`),
1123
- });
1124
- const value = astNode.text?.match(/{{(.*?)}}/)[1].trim();
1125
- const expression = this._parseExpression(value);
1126
- element.addBindAttribute(new BindAttribute__1.default({
1127
- type: 'dynamic',
1128
- name: 'text',
1129
- value: expression ? '' : value,
1130
- expression,
1131
- }));
1132
- }
1133
- else if (astNode.type === 3) {
1134
- const tagName = __1.config.scope === 'h5' ? 'van-text' : 'u-text';
1135
- const baseName = tagName.replace(ViewElement_1.TAG_NAME_PREFIX_REG, '').replace(/-/g, '_');
1136
- element = new ViewElement_1({
1137
- tag: tagName,
1138
- name: view.getViewElementUniqueName(`${baseName}1`),
1139
- });
1140
- element.addBindAttribute(new BindAttribute__1.default({
1141
- name: 'text',
1142
- type: 'string',
1143
- value: astNode.text?.trim(),
1144
- }));
1145
- }
1146
- return element;
1147
- }
1148
- /**
1149
- * 解析 Vue 模板
1150
- * 该方法不会绑定 view 和 parent,如果是添加元素优先使用 fromHTML
1151
- * @param html Vue 的模板
1152
- * @TODO 处理多个元素的问题
1153
- */
1154
- static parse(html, context) {
1155
- html = html || '<div></div>';
1156
- const compilerOptions = {
1157
- preserveWhitespace: false,
1158
- outputSourceRange: true,
1159
- };
1160
- let ast = compiler.compile(html, compilerOptions).ast;
1161
- if (ast.tag === 'template' && !ast.slotTarget)
1162
- ast = ast.children[0];
1163
- return this._fromASTNode(ast, context);
1164
- }
1165
- /**
1166
- * 从模板生成规范的 ViewElement 对象
1167
- */
1168
- static fromHTML(html, context) {
1169
- return this.parse(html, context);
1170
- }
1171
- /**
1172
- * 转换成设计器中使用的 Vue 文件
1173
- * @param options
1174
- */
1175
- toDesignerVue() {
1176
- return this.toVue({
1177
- finalCode: false,
1178
- nodePathAttr: true,
1179
- attrFormat: (attr, element, defaultResult) => {
1180
- if (attr.concept === 'BindAttribute') {
1181
- const api = __1.config.allNodesAPI[element.tag];
1182
- const apiOfAttr = api && api.attrs && api.attrs.find((_attr) => _attr.name === attr.name);
1183
- if (apiOfAttr && apiOfAttr['designer-value'] !== undefined) {
1184
- let designerValue = apiOfAttr['designer-value'];
1185
- //对流程模板拖拽进行特判
1186
- element.bindAttrs.forEach((property) => {
1187
- if (property.name === 'repeat' && property.value === '1')
1188
- designerValue = '[{}, {}]';
1189
- });
1190
- if (typeof designerValue === 'string') {
1191
- designerValue = designerValue.replace(/"/g, "'");
1192
- }
1193
- try {
1194
- json5.parse(designerValue);
1195
- return `:${attr.name}="${designerValue}"`;
1196
- }
1197
- catch (e) {
1198
- return `${attr.name}="${designerValue}"`;
1199
- }
1200
- }
1201
- if (attr.type === 'dynamic' && !(element.tag === 'u-cascade-select' && attr.name === 'categories'))
1202
- return defaultResult.replace(/:?([\w-]+)(?:.*?)="(.*)"/, (m, name, value) => {
1203
- try {
1204
- const tempValue = json5.parse(value);
1205
- if (typeof tempValue === 'boolean' || typeof tempValue === 'number') {
1206
- // 简单类型走属性
1207
- return `:${name}="${value.replace(/"/g, "'")}"`;
1208
- }
1209
- }
1210
- catch (e) {
1211
- if (apiOfAttr && !apiOfAttr.type.includes('string'))
1212
- return '';
1213
- }
1214
- value = value
1215
- .replace(/"/g, "'")
1216
- .replace(/\$utils\['(.+?)'\]/g, '$1')
1217
- .replace(/\$refs./g, 'elements.')
1218
- .replace(/\$global./g, 'nasl.auth.');
1219
- return `${name}="{{ ${value} }}"`;
1220
- });
1221
- else
1222
- return defaultResult;
1223
- }
1224
- return false;
1225
- },
1226
- getExtraParts: (el) => {
1227
- const parts = [];
1228
- const api = __1.config.allNodesAPI[el.tag];
1229
- const emptySlot = api && api.slots && api.slots.find((slot) => slot.name === 'default' && slot['empty-background']);
1230
- const hasSupport = api && api.slots && api.slots.some((slot) => slot.support);
1231
- if (emptySlot || hasSupport) {
1232
- let childEmpty = !el.children.length;
1233
- const defaultSlot = el.children.find((elem) => elem.tag === 'template' && elem.slotTarget === 'default');
1234
- if (defaultSlot) {
1235
- childEmpty = !defaultSlot.children.length;
1236
- }
1237
- if (childEmpty) {
1238
- let addEmpty = true;
1239
- if (el.tag === 'u-grid-view' || el.tag === 'u-list-view' || el.tag === 'van-list-view' || el.tag === 'van-grid-view') {
1240
- const hasDataSource = el.bindAttrs.find((attr) => attr.name === 'data-source');
1241
- addEmpty = !hasDataSource;
1242
- }
1243
- if (el.tag === 'u-crumb') {
1244
- const attrList = el.bindAttrs;
1245
- const hasAuto = attrList.some((attr) => attr.name === 'auto' && String(attr.value) === 'true');
1246
- if (hasAuto)
1247
- addEmpty = false;
1248
- }
1249
- if (['u-select', 'u-dropdown', 'u-panel', 'u-toc', 'u-toc-item', 'u-tree-view-new', 'u-tree-view-node-new', 'u-tree-select', 'u-tree-select-new', 'u-anchor'].includes(el.tag)) {
1250
- addEmpty = false;
1251
- }
1252
- const background = (emptySlot && emptySlot['empty-background']) || (hasSupport ? 'add-sub' : '');
1253
- addEmpty && parts.push(`vusion-empty-background="${background}"`);
1254
- }
1255
- }
1256
- return parts;
1257
- },
1258
- });
1259
- }
1260
- /**
1261
- * 转换成 Vue 的模板格式
1262
- */
1263
- toVue(options) {
1264
- let scopeList = [];
1265
- if (Array.isArray(options?.scopeList)) {
1266
- scopeList = [...options?.scopeList];
1267
- }
1268
- if (this.slotScope) {
1269
- scopeList.unshift(this.slotScope);
1270
- }
1271
- const newOptions = Object.assign({
1272
- indentStyle: 'space',
1273
- tabSize: 4,
1274
- indentLevel: 0,
1275
- aslIdAttr: false,
1276
- nodePathAttr: false,
1277
- getExtraParts: () => [],
1278
- attrFormat: (attr, element, defaultResult) => defaultResult,
1279
- }, options, {
1280
- scopeList,
1281
- });
1282
- const tabString = ' '.repeat(newOptions.tabSize * newOptions.indentLevel);
1283
- const insideTabString = ' '.repeat(newOptions.tabSize * (newOptions.indentLevel + 1));
1284
- let shouldIndent = true;
1285
- const content = !this.children ? '' : this.children
1286
- .map((element) => {
1287
- const childOptions = Object.assign({}, newOptions);
1288
- childOptions.indentLevel++;
1289
- return (shouldIndent ? '\n' + insideTabString : '') + element?.toVue(childOptions);
1290
- })
1291
- .join('');
1292
- if (!content.length) {
1293
- shouldIndent = false;
1294
- }
1295
- const parts = [];
1296
- if (newOptions.aslIdAttr) {
1297
- if (newOptions.aslIdAttr === true) {
1298
- newOptions.aslIdAttr = 'asl-id';
1299
- }
1300
- parts.push(`${newOptions.aslIdAttr}="${this.id}"`);
1301
- }
1302
- if (newOptions.nodePathAttr) {
1303
- // 注入 asl 的 node-path
1304
- parts.push(`vusion-node-path="${this.nodePath}"`);
1305
- }
1306
- this.slotTarget && parts.push(`#${this.slotTarget}` + (this.slotScope ? `="${this.slotScope}"` : ''));
1307
- this.name && parts.push(`ref="${this.name}"`);
1308
- this.staticClass && parts.push(`class="${this.staticClass}"`);
1309
- this.staticStyle && parts.push(`style="${this.staticStyle}"`);
1310
- [].concat(this.bindAttrs, this.bindDirectives, this.bindEvents).forEach((attr) => {
1311
- const result = newOptions.attrFormat(attr, this, attr?.toVue(newOptions));
1312
- result && parts.push(result);
1313
- });
1314
- newOptions.getExtraParts(this).forEach((part) => parts.push(part));
1315
- let partsLength = 0;
1316
- let partsString = '';
1317
- parts.forEach((part) => {
1318
- if (partsLength >= 120 || part.length >= 120) {
1319
- partsString += '\n' + tabString + ' '.repeat(3); // ' '.repeat(el.tag.length + 1);
1320
- partsLength = 0;
1321
- }
1322
- partsString += ' ' + part;
1323
- partsLength += part.length;
1324
- });
1325
- return `<${this.tag}${partsString.length ? partsString : ''}>` + content + (shouldIndent ? '\n' + tabString : '') + `</${this.tag}>`;
1326
- }
1327
- /**
1328
- * 从父级删除该节点
1329
- * @internal
1330
- */
1331
- delete() {
1332
- super.delete();
1333
- if (this.parentNode) {
1334
- this.traverseChildren((ele) => {
1335
- this.view?.removeExistingViewElement(ele);
1336
- });
1337
- }
1338
- }
1339
- findElementByName(name) {
1340
- return utils.traverse((current) => {
1341
- if (current.node.name === name)
1342
- return current.node;
1343
- }, { node: this });
1344
- }
1345
- findElementByTag(tag) {
1346
- return utils.traverse((current) => {
1347
- if (current.node.tag === tag)
1348
- return current.node;
1349
- }, { node: this });
1350
- }
1351
- findElementByAttr(name, value) {
1352
- return utils.traverse((current) => {
1353
- if (current.node.bindAttrs.some((attr) => attr.name === name && attr.value === value))
1354
- return current.node;
1355
- }, { node: this });
1356
- }
1357
- computedStyle = {};
1358
- };
1359
- __decorate([
1360
- (0, decorators_1.property)()
1361
- ], ViewElement.prototype, "concept", void 0);
1362
- __decorate([
1363
- (0, decorators_1.property)()
1364
- ], ViewElement.prototype, "type", void 0);
1365
- __decorate([
1366
- (0, decorators_1.property)()
1367
- ], ViewElement.prototype, "tag", void 0);
1368
- __decorate([
1369
- (0, decorators_1.property)()
1370
- ], ViewElement.prototype, "name", void 0);
1371
- __decorate([
1372
- (0, decorators_1.property)()
1373
- ], ViewElement.prototype, "staticClass", void 0);
1374
- __decorate([
1375
- (0, decorators_1.property)()
1376
- ], ViewElement.prototype, "staticStyle", void 0);
1377
- __decorate([
1378
- (0, decorators_1.property)()
1379
- ], ViewElement.prototype, "slotTarget", void 0);
1380
- __decorate([
1381
- (0, decorators_1.property)()
1382
- ], ViewElement.prototype, "slotScope", void 0);
1383
- __decorate([
1384
- (0, decorators_1.property)('BindAttribute')
1385
- ], ViewElement.prototype, "bindAttrs", void 0);
1386
- __decorate([
1387
- (0, decorators_1.property)('BindEvent')
1388
- ], ViewElement.prototype, "bindEvents", void 0);
1389
- __decorate([
1390
- (0, decorators_1.property)('BindDirective')
1391
- ], ViewElement.prototype, "bindDirectives", void 0);
1392
- __decorate([
1393
- (0, decorators_1.property)()
1394
- ], ViewElement.prototype, "bindRoles", void 0);
1395
- __decorate([
1396
- (0, decorators_1.property)('ViewElement')
1397
- ], ViewElement.prototype, "children", void 0);
1398
- __decorate([
1399
- (0, translator_1.withSourceMap)()
1400
- ], ViewElement.prototype, "toEmbeddedTS", null);
1401
- __decorate([
1402
- (0, decorators_1.excludedInJSON)()
1403
- ], ViewElement.prototype, "computedStyle", void 0);
1404
- ViewElement = ViewElement_1 = __decorate([
1405
- (0, decorators_1.concept)('页面元素')
1406
- ], ViewElement);
1407
- exports.ViewElement = ViewElement;
1408
- classMap_1.default.ViewElement = ViewElement;
1409
- exports.default = ViewElement;
1410
- //================================================================================
1411
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1412
- // 自动生成的代码已结束。下面可以手动编写。
1413
- //================================================================================
1414
- //# sourceMappingURL=ViewElement__.js.map