@lcap/nasl 2.20.0-beta.3 → 2.20.0

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 (323) hide show
  1. package/out/automate/engine/index.d.ts +1 -1
  2. package/out/automate/engine/index.js +2 -3
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/uniqueName.d.ts +1 -1
  5. package/out/automate/engine/uniqueName.js +2 -2
  6. package/out/automate/engine/uniqueName.js.map +1 -1
  7. package/out/automate/engine/utils.js +4 -1
  8. package/out/automate/engine/utils.js.map +1 -1
  9. package/out/automate/template/myProcess.d.ts +1 -1
  10. package/out/automate/template/myProcess.js +2 -2
  11. package/out/automate/template/myProcess.js.map +1 -1
  12. package/out/bak/translator.js +14 -22
  13. package/out/bak/translator.js.map +1 -1
  14. package/out/common/BaseNode.js +4 -1
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/common/Command.d.ts +1 -0
  17. package/out/common/Command.js +5 -1
  18. package/out/common/Command.js.map +1 -1
  19. package/out/concepts/App__.d.ts +4 -0
  20. package/out/concepts/App__.js +30 -6
  21. package/out/concepts/App__.js.map +1 -1
  22. package/out/concepts/Assignee__.js +4 -3
  23. package/out/concepts/Assignee__.js.map +1 -1
  24. package/out/concepts/BatchAssignment__.js +3 -3
  25. package/out/concepts/BatchAssignment__.js.map +1 -1
  26. package/out/concepts/BindAttribute__.d.ts +7 -0
  27. package/out/concepts/BindAttribute__.js +270 -39
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.d.ts +7 -0
  30. package/out/concepts/BindDirective__.js +215 -17
  31. package/out/concepts/BindDirective__.js.map +1 -1
  32. package/out/concepts/BindStyle__.d.ts +7 -0
  33. package/out/concepts/BindStyle__.js +194 -4
  34. package/out/concepts/BindStyle__.js.map +1 -1
  35. package/out/concepts/CallFunction__.js +22 -8
  36. package/out/concepts/CallFunction__.js.map +1 -1
  37. package/out/concepts/CallInterface__.js +3 -2
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +3 -0
  40. package/out/concepts/CallLogic__.js +78 -89
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.js +20 -3
  43. package/out/concepts/CallQueryComponent__.js.map +1 -1
  44. package/out/concepts/ConfigGroup__.d.ts +1 -0
  45. package/out/concepts/ConfigGroup__.js +13 -0
  46. package/out/concepts/ConfigGroup__.js.map +1 -1
  47. package/out/concepts/ConfigProperty__.d.ts +19 -0
  48. package/out/concepts/ConfigProperty__.js +61 -0
  49. package/out/concepts/ConfigProperty__.js.map +1 -1
  50. package/out/concepts/Configuration__.d.ts +1 -0
  51. package/out/concepts/Configuration__.js +13 -0
  52. package/out/concepts/Configuration__.js.map +1 -1
  53. package/out/concepts/DataSource__.js.map +1 -1
  54. package/out/concepts/Destination__.d.ts +1 -0
  55. package/out/concepts/Destination__.js +61 -7
  56. package/out/concepts/Destination__.js.map +1 -1
  57. package/out/concepts/EntityProperty__.js +9 -1
  58. package/out/concepts/EntityProperty__.js.map +1 -1
  59. package/out/concepts/EnumItem__.d.ts +5 -5
  60. package/out/concepts/EnumItem__.js +6 -6
  61. package/out/concepts/Enum__.d.ts +20 -19
  62. package/out/concepts/Enum__.js +28 -1
  63. package/out/concepts/Enum__.js.map +1 -1
  64. package/out/concepts/ExternalDestination__.d.ts +1 -0
  65. package/out/concepts/ExternalDestination__.js +21 -3
  66. package/out/concepts/ExternalDestination__.js.map +1 -1
  67. package/out/concepts/ForEachStatement__.js +2 -0
  68. package/out/concepts/ForEachStatement__.js.map +1 -1
  69. package/out/concepts/Frontend__.d.ts +2 -1
  70. package/out/concepts/Frontend__.js.map +1 -1
  71. package/out/concepts/Identifier__.js +16 -5
  72. package/out/concepts/Identifier__.js.map +1 -1
  73. package/out/concepts/InterfaceParam__.js +9 -1
  74. package/out/concepts/InterfaceParam__.js.map +1 -1
  75. package/out/concepts/JSBlock__.js +5 -1
  76. package/out/concepts/JSBlock__.js.map +1 -1
  77. package/out/concepts/Logic__.d.ts +79 -79
  78. package/out/concepts/Logic__.js +16 -3
  79. package/out/concepts/Logic__.js.map +1 -1
  80. package/out/concepts/Match__.d.ts +0 -3
  81. package/out/concepts/Match__.js +11 -66
  82. package/out/concepts/Match__.js.map +1 -1
  83. package/out/concepts/MemberExpression__.js +9 -0
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.d.ts +16 -0
  86. package/out/concepts/Module__.js +43 -0
  87. package/out/concepts/Module__.js.map +1 -1
  88. package/out/concepts/NewComposite__.d.ts +2 -4
  89. package/out/concepts/NewComposite__.js +91 -126
  90. package/out/concepts/NewComposite__.js.map +1 -1
  91. package/out/concepts/NewList__.d.ts +1 -0
  92. package/out/concepts/NewList__.js +22 -2
  93. package/out/concepts/NewList__.js.map +1 -1
  94. package/out/concepts/NewMap__.d.ts +1 -0
  95. package/out/concepts/NewMap__.js +43 -11
  96. package/out/concepts/NewMap__.js.map +1 -1
  97. package/out/concepts/OqlQueryComponent__.js +40 -12
  98. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  99. package/out/concepts/Param__.js +10 -2
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +2 -1
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/ProcessOutcome__.js +1 -1
  104. package/out/concepts/ProcessOutcome__.js.map +1 -1
  105. package/out/concepts/ProcessOutcomes__.js +1 -1
  106. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  107. package/out/concepts/Process__.js +1 -0
  108. package/out/concepts/Process__.js.map +1 -1
  109. package/out/concepts/Return__.js +10 -2
  110. package/out/concepts/Return__.js.map +1 -1
  111. package/out/concepts/StringInterpolation__.js +14 -2
  112. package/out/concepts/StringInterpolation__.js.map +1 -1
  113. package/out/concepts/StringLiteral__.js +6 -6
  114. package/out/concepts/StringLiteral__.js.map +1 -1
  115. package/out/concepts/StructureProperty__.js +9 -1
  116. package/out/concepts/StructureProperty__.js.map +1 -1
  117. package/out/concepts/TypeAnnotation__.d.ts +6 -3
  118. package/out/concepts/TypeAnnotation__.js +67 -13
  119. package/out/concepts/TypeAnnotation__.js.map +1 -1
  120. package/out/concepts/ValidationRule__.d.ts +1 -0
  121. package/out/concepts/ValidationRule__.js +53 -0
  122. package/out/concepts/ValidationRule__.js.map +1 -1
  123. package/out/concepts/Variable__.js +9 -1
  124. package/out/concepts/Variable__.js.map +1 -1
  125. package/out/concepts/ViewElement__.js +17 -1
  126. package/out/concepts/ViewElement__.js.map +1 -1
  127. package/out/concepts/View__.d.ts +1 -3
  128. package/out/concepts/View__.js +22 -11
  129. package/out/concepts/View__.js.map +1 -1
  130. package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
  131. package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
  132. package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
  133. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  134. package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
  135. package/out/concepts/basics/stdlib/nasl.core.js +34 -0
  136. package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
  137. package/out/concepts/basics/stdlib/nasl.util.js +4 -2
  138. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  139. package/out/concepts/basics/types/index.d.ts +1 -0
  140. package/out/concepts/basics/types/index.js +3 -1
  141. package/out/concepts/basics/types/index.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -1
  143. package/out/concepts/index__.js +0 -1
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/enums/KEYWORDS.js +8 -0
  146. package/out/enums/KEYWORDS.js.map +1 -1
  147. package/out/generator/genBundleFiles.js +24 -5
  148. package/out/generator/genBundleFiles.js.map +1 -1
  149. package/out/generator/genReleaseBody.d.ts +2 -3
  150. package/out/generator/genReleaseBody.js +97 -23
  151. package/out/generator/genReleaseBody.js.map +1 -1
  152. package/out/generator/permission.d.ts +2 -10
  153. package/out/generator/permission.js +26 -13
  154. package/out/generator/permission.js.map +1 -1
  155. package/out/server/entity2LogicNamespace.js +2 -20
  156. package/out/server/entity2LogicNamespace.js.map +1 -1
  157. package/out/server/extendBaseNode.js +16 -5
  158. package/out/server/extendBaseNode.js.map +1 -1
  159. package/out/server/formatTsUtils.d.ts +2 -1
  160. package/out/server/formatTsUtils.js +40 -10
  161. package/out/server/formatTsUtils.js.map +1 -1
  162. package/out/server/getLogics.d.ts +2 -2
  163. package/out/server/getLogics.js +3 -3
  164. package/out/server/getLogics.js.map +1 -1
  165. package/out/server/getMemberIdentifier.d.ts +1 -0
  166. package/out/server/getMemberIdentifier.js +27 -1
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/index.js +1 -0
  169. package/out/server/index.js.map +1 -1
  170. package/out/server/naslServer.d.ts +7 -1
  171. package/out/server/naslServer.js +519 -46
  172. package/out/server/naslServer.js.map +1 -1
  173. package/out/server/translator.js +109 -33
  174. package/out/server/translator.js.map +1 -1
  175. package/out/service/storage/init.js +21 -1
  176. package/out/service/storage/init.js.map +1 -1
  177. package/out/templator/genCreateBlock.js +1 -3
  178. package/out/templator/genCreateBlock.js.map +1 -1
  179. package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
  180. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  181. package/out/templator/genCurdMultipleKeyBlock.js +2 -4
  182. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  183. package/out/templator/genGetBlock.js +1 -1
  184. package/out/templator/genGetBlock.js.map +1 -1
  185. package/out/templator/genGridViewBlock.js +2 -2
  186. package/out/templator/genGridViewBlock.js.map +1 -1
  187. package/out/templator/genListViewBlock.js +7 -1
  188. package/out/templator/genListViewBlock.js.map +1 -1
  189. package/out/templator/genSelectBlock.js +1 -1
  190. package/out/templator/genSelectBlock.js.map +1 -1
  191. package/out/templator/genTableBlock.js +2 -2
  192. package/out/templator/genTableBlock.js.map +1 -1
  193. package/out/templator/genUpdateBlock.js +2 -3
  194. package/out/templator/genUpdateBlock.js.map +1 -1
  195. package/out/utils/traverse.js +8 -2
  196. package/out/utils/traverse.js.map +1 -1
  197. package/package.json +2 -2
  198. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  199. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  200. package/sandbox/stdlib/nasl.collection.ts +1 -0
  201. package/sandbox/stdlib/nasl.core.ts +34 -0
  202. package/sandbox/stdlib/nasl.oql.ts +71 -15
  203. package/sandbox/stdlib/nasl.util.ts +9 -3
  204. package/src/automate/engine/dist/index.dev.js +517 -0
  205. package/src/automate/engine/index.js +2 -3
  206. package/src/automate/engine/uniqueName.js +2 -2
  207. package/src/automate/engine/utils.js +4 -2
  208. package/src/automate/template/myProcess.js +2 -2
  209. package/src/bak/translator.js +16 -25
  210. package/src/common/BaseNode.ts +3 -1
  211. package/src/common/Command.ts +4 -0
  212. package/src/common/dist/BaseNode.js +1101 -0
  213. package/src/concepts/App__.ts +36 -7
  214. package/src/concepts/Assignee__.ts +4 -3
  215. package/src/concepts/BatchAssignment__.ts +3 -3
  216. package/src/concepts/BindAttribute__.ts +299 -38
  217. package/src/concepts/BindDirective__.ts +204 -31
  218. package/src/concepts/BindStyle__.ts +187 -24
  219. package/src/concepts/CallFunction__.ts +55 -10
  220. package/src/concepts/CallInterface__.ts +3 -2
  221. package/src/concepts/CallLogic__.ts +110 -90
  222. package/src/concepts/CallQueryComponent__.ts +18 -3
  223. package/src/concepts/ConfigGroup__.ts +17 -4
  224. package/src/concepts/ConfigProperty__.ts +70 -4
  225. package/src/concepts/Configuration__.ts +14 -5
  226. package/src/concepts/DataSource__.ts +4 -1
  227. package/src/concepts/Destination__.ts +61 -7
  228. package/src/concepts/EntityProperty__.ts +7 -1
  229. package/src/concepts/EnumItem__.ts +6 -6
  230. package/src/concepts/Enum__.ts +22 -19
  231. package/src/concepts/ExternalDestination__.ts +28 -8
  232. package/src/concepts/ForEachStatement__.ts +2 -0
  233. package/src/concepts/Frontend__.ts +2 -1
  234. package/src/concepts/Identifier__.ts +16 -5
  235. package/src/concepts/InterfaceParam__.ts +7 -1
  236. package/src/concepts/JSBlock__.ts +3 -2
  237. package/src/concepts/Logic__.ts +95 -83
  238. package/src/concepts/Match__.ts +31 -67
  239. package/src/concepts/MemberExpression__.ts +6 -0
  240. package/src/concepts/Module__.ts +57 -0
  241. package/src/concepts/NewComposite__.ts +95 -140
  242. package/src/concepts/NewList__.ts +23 -2
  243. package/src/concepts/NewMap__.ts +48 -24
  244. package/src/concepts/OqlQueryComponent__.ts +40 -20
  245. package/src/concepts/Param__.ts +178 -176
  246. package/src/concepts/ProcessElement__.ts +2 -1
  247. package/src/concepts/ProcessOutcome__.ts +1 -1
  248. package/src/concepts/ProcessOutcomes__.ts +1 -1
  249. package/src/concepts/Process__.ts +1 -0
  250. package/src/concepts/Return__.ts +8 -2
  251. package/src/concepts/StringInterpolation__.ts +19 -7
  252. package/src/concepts/StringLiteral__.ts +7 -6
  253. package/src/concepts/StructureProperty__.ts +7 -1
  254. package/src/concepts/TypeAnnotation__.ts +101 -14
  255. package/src/concepts/ValidationRule__.ts +58 -9
  256. package/src/concepts/Variable__.ts +11 -1
  257. package/src/concepts/ViewElement__.ts +39 -2
  258. package/src/concepts/View__.ts +26 -14
  259. package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
  260. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  261. package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
  262. package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
  263. package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
  264. package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
  265. package/src/concepts/basics/types/index.ts +1 -0
  266. package/src/concepts/dist/BindAttribute__.js +795 -0
  267. package/src/concepts/dist/BindEvent__.js +732 -0
  268. package/src/concepts/dist/CallFunction__.js +527 -0
  269. package/src/concepts/dist/CallLogic__.js +932 -0
  270. package/src/concepts/dist/Destination__.js +708 -0
  271. package/src/concepts/dist/ExternalDestination__.js +298 -0
  272. package/src/concepts/dist/Identifier__.js +311 -0
  273. package/src/concepts/dist/StringInterpolation__.js +231 -0
  274. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  275. package/src/concepts/dist/ViewElement__.js +1692 -0
  276. package/src/concepts/dist/View__.js +1601 -0
  277. package/src/concepts/index__.ts +0 -1
  278. package/src/enums/KEYWORDS.ts +8 -0
  279. package/src/generator/dist/genBundleFiles.js +261 -0
  280. package/src/generator/dist/genMetaData.js +245 -0
  281. package/src/generator/dist/permission.js +405 -0
  282. package/src/generator/genBundleFiles.ts +24 -5
  283. package/src/generator/genReleaseBody.ts +75 -30
  284. package/src/generator/permission.ts +30 -14
  285. package/src/server/entity2LogicNamespace.ts +2 -20
  286. package/src/server/extendBaseNode.ts +15 -5
  287. package/src/server/formatTsUtils.ts +41 -10
  288. package/src/server/getLogics.ts +4 -4
  289. package/src/server/getMemberIdentifier.ts +27 -1
  290. package/src/server/index.ts +2 -0
  291. package/src/server/naslServer.ts +520 -48
  292. package/src/server/translator.ts +96 -34
  293. package/src/service/storage/dist/init.js +579 -0
  294. package/src/service/storage/init.ts +22 -2
  295. package/src/templator/dist/genEditTableBlock.js +204 -0
  296. package/src/templator/dist/genGridViewBlock.js +265 -0
  297. package/src/templator/dist/genListViewBlock.js +84 -0
  298. package/src/templator/dist/genTableBlock.js +209 -0
  299. package/src/templator/dist/utils.js +527 -0
  300. package/src/templator/genCreateBlock.ts +1 -3
  301. package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
  302. package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
  303. package/src/templator/genGetBlock.ts +1 -1
  304. package/src/templator/genGridViewBlock.ts +3 -4
  305. package/src/templator/genListViewBlock.ts +9 -3
  306. package/src/templator/genSelectBlock.ts +1 -1
  307. package/src/templator/genTableBlock.ts +3 -3
  308. package/src/templator/genUpdateBlock.ts +2 -3
  309. package/src/utils/traverse.ts +10 -2
  310. package/ts-worker/lib/tsserver.js +10 -2
  311. package/ts-worker/package.json +1 -0
  312. package/ts-worker/webpack.config.js +11 -2
  313. package/out/concepts/ConstructArgument__.d.ts +0 -40
  314. package/out/concepts/ConstructArgument__.js +0 -108
  315. package/out/concepts/ConstructArgument__.js.map +0 -1
  316. package/out/concepts/Construct__.d.ts +0 -189
  317. package/out/concepts/Construct__.js +0 -340
  318. package/out/concepts/Construct__.js.map +0 -1
  319. package/out/templator/sql-parser/index.d.ts +0 -1
  320. package/out/templator/sql-parser/index.js +0 -228
  321. package/out/templator/sql-parser/index.js.map +0 -1
  322. package/out/templator/sql-parser/parser.js +0 -26664
  323. package/out/templator/sql-parser/parser.js.map +0 -1
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.genBlurUpdateLogic = exports.genEditTableRemoveLogic = exports.genEditTableLoadLogic = exports.genEditTableTemplate = exports.genEditTableColumnTemplate = void 0;
4
+ var utils = require("../utils");
5
+ var _1 = require(".");
6
+ var utils_1 = require("./utils");
7
+ /**
8
+ * 根据实体属性生成表格列模板
9
+ * @param property 实体属性
10
+ */
11
+ function genEditTableColumnTemplate(entity, property, nameGroup, selectNameGroupMap) {
12
+ var dataSource = entity.parentNode;
13
+ var lowerEntityName = utils.firstLowerCase(entity.name);
14
+ var valueExpression = "current.item." + lowerEntityName + "." + property.name;
15
+ var title = property.label || property.name;
16
+ var canEditable = function (property) { return !property.readonly; };
17
+ var getText = function (property) {
18
+ var propertyTypeName = property.typeAnnotation.typeName;
19
+ if (propertyTypeName === 'Boolean') {
20
+ return "\n <u-text v-if=\"" + valueExpression + "\" text=\"\u662F\"></u-text>\n <u-text v-if=\"!" + valueExpression + "\" text=\"\u5426\"></u-text>\n ";
21
+ }
22
+ else {
23
+ return "<u-text :text=\"" + valueExpression + "\"></u-text>";
24
+ }
25
+ };
26
+ var genEditComponent = function (property) {
27
+ if (property.readonly)
28
+ return '';
29
+ var label = property.label || property.name;
30
+ var formItem = '';
31
+ var propertyTypeName = property.typeAnnotation.typeName;
32
+ if (property.relationEntity && selectNameGroupMap) {
33
+ // 有外键关联
34
+ var relationEntity = dataSource === null || dataSource === void 0 ? void 0 : dataSource.findEntityByName(property.relationEntity);
35
+ if (relationEntity) {
36
+ var relationProperty = relationEntity.properties.find(function (prop) { return prop.name === property.relationProperty; });
37
+ var displayedProperty = _1.getFirstDisplayedProperty(relationEntity);
38
+ if (displayedProperty) {
39
+ var lowerEntityName_1 = utils.firstLowerCase(relationEntity.name);
40
+ // 存在多个属性关联同一个实体的情况,因此加上属性名用以唯一标识
41
+ var key = [property.name, relationEntity.name].join('-');
42
+ var selectNameGroup = selectNameGroupMap.get(key);
43
+ formItem += "\n <u-select clearable placeholder=\"\u8BF7\u9009\u62E9" + label + "\" :data-source=\"" + selectNameGroup.viewLogicLoad + "\"\n :autofocus=\"true\" :opened=\"true\" append-to=\"body\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\" @select=\"" + nameGroup.viewLogicBlurUpdate + "\"\n text-field=\"" + lowerEntityName_1 + "." + displayedProperty.name + "\" value-field=\"" + lowerEntityName_1 + "." + relationProperty.name + "\" :pageable=\"true\" :remote-paging=\"true\" :value.sync=\"" + valueExpression + "\">\n </u-select>\n ";
44
+ }
45
+ else
46
+ return '';
47
+ }
48
+ else
49
+ return '';
50
+ }
51
+ else if (propertyTypeName === 'Boolean') {
52
+ formItem += "<u-select clearable :value.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\"\n :autofocus=\"true\" :opened=\"true\" append-to=\"body\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\" @select=\"" + nameGroup.viewLogicBlurUpdate + "\">\n <u-select-item :value=\"true\" text=\"\u662F\">\u662F</u-select-item>\n <u-select-item :value=\"false\" text=\"\u5426\">\u5426</u-select-item>\n </u-select>";
53
+ }
54
+ else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
55
+ formItem = "<u-number-input :value.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" :autofocus=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-number-input>";
56
+ }
57
+ else if (propertyTypeName === 'Double') {
58
+ formItem = "<u-number-input :value.sync=\"" + valueExpression + "\" :precision=\"0\" :step=\"0\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" :autofocus=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-number-input>";
59
+ }
60
+ else if (propertyTypeName === 'Decimal') {
61
+ formItem = "<u-number-input :value.sync=\"" + valueExpression + "\" :precision=\"0\" :step=\"0\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" :autofocus=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-number-input>";
62
+ }
63
+ else if (propertyTypeName === 'Text') {
64
+ formItem = "<u-validator placement=\"bottom\" display=\"appear\" @blur-valid=\"" + nameGroup.viewLogicBlurUpdate + "\" style=\"width:100%\">\n <u-textarea :value.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" :autofocus=\"true\" size=\"full\"></u-textarea>\n </u-validator>";
65
+ }
66
+ else if (propertyTypeName === 'Date') {
67
+ formItem = "<u-date-picker clearable :date.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" append-to=\"body\" :autofocus=\"true\" :opened=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-date-picker>";
68
+ }
69
+ else if (propertyTypeName === 'Time') {
70
+ formItem = "<u-time-picker :time.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" append-to=\"body\" :autofocus=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-time-picker>";
71
+ }
72
+ else if (propertyTypeName === 'DateTime') {
73
+ formItem = "<u-date-time-picker clearable :date.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" append-to=\"body\" :autofocus=\"true\" :opened=\"true\" @blur=\"" + nameGroup.viewLogicBlurUpdate + "\"></u-date-time-picker>";
74
+ }
75
+ else {
76
+ formItem = "<u-validator placement=\"bottom\" display=\"appear\" @blur-valid=\"" + nameGroup.viewLogicBlurUpdate + "\" style=\"width:100%\" append-to=\"body\">\n <u-input :value.sync=\"" + valueExpression + "\" placeholder=\"\u8BF7\u8F93\u5165" + label + "\" :autofocus=\"true\" size=\"full\"></u-input>\n </u-validator>";
77
+ }
78
+ return "<template #editcell=\"current\">\n <u-linear-layout gap=\"small\">\n " + formItem + "\n </u-linear-layout>\n </template>";
79
+ };
80
+ return "<u-table-view-column field=\"" + utils.firstLowerCase(entity.name) + "." + property.name + "\" " + (canEditable(property) ? 'type="editable"' : '') + ">\n <template #title><u-text text=\"" + title + "\"></u-text></template>\n <template #cell=\"current\">\n <u-linear-layout gap=\"small\">\n " + getText(property) + "\n </u-linear-layout>\n </template>\n " + genEditComponent(property) + "\n</u-table-view-column>";
81
+ }
82
+ exports.genEditTableColumnTemplate = genEditTableColumnTemplate;
83
+ /**
84
+ * 生成表格模板
85
+ * @param entity 实体
86
+ * @param nameGroup 命名组
87
+ */
88
+ function genEditTableTemplate(entity, nameGroup, selectNameGroupMap) {
89
+ var properties = entity.properties.filter(_1.filterProperty('inTable'));
90
+ return "<u-table-view ref=\"" + nameGroup.viewElementMainView + "\" :data-source=\"" + nameGroup.viewLogicLoad + "\" data-schema=\"" + nameGroup.structure + "\"\n value-field=\"" + nameGroup.viewVariableEntity + ".id\"\n :pageable=\"true\" :remote-paging=\"true\" :show-sizer=\"true\" :default-column-width=\"300\" editable>\n <u-table-view-column type=\"index\" width=\"60\"><template #title><u-text text=\"\u5E8F\u53F7\"></u-text></template></u-table-view-column>\n\n " + properties.map(function (property) { return genEditTableColumnTemplate(entity, property, nameGroup, selectNameGroupMap) + '\n'; }).join('') + "\n\n <u-table-view-column>\n <template #title><u-text text=\"\u64CD\u4F5C\"></u-text></template>\n <template #cell=\"current\">\n <u-linear-layout gap=\"small\">\n <u-link @click=\"" + nameGroup.viewLogicRemove + "\">\u5220\u9664</u-link>\n </u-linear-layout>\n </template>\n </u-table-view-column>\n</u-table-view>\n";
91
+ }
92
+ exports.genEditTableTemplate = genEditTableTemplate;
93
+ /**
94
+ * 生成表格 load 逻辑
95
+ * @param entity 实体
96
+ */
97
+ function genEditTableLoadLogic(entity, nameGroup, newLogic, supportFilter) {
98
+ var moduleNode = entity.app;
99
+ var moduleNamespace = moduleNode === null || moduleNode === void 0 ? void 0 : moduleNode.getNamespace();
100
+ var params = [
101
+ _1.genLogicParam("" + newLogic.params[0].name, 'params.page'),
102
+ _1.genLogicParam("" + newLogic.params[1].name, 'params.size'),
103
+ _1.genLogicParam("" + newLogic.params[2].name, 'params.sort'),
104
+ _1.genLogicParam("" + newLogic.params[3].name, 'params.order'),
105
+ ];
106
+ if (supportFilter)
107
+ params.push(_1.genLogicParam("" + newLogic.params[4].name, nameGroup.viewVariableFilter));
108
+ return utils_1.NaslNode.Logic({
109
+ name: nameGroup.viewLogicLoad,
110
+ params: [
111
+ utils_1.NaslNode.Param({
112
+ name: 'params',
113
+ typeAnnotation: utils_1.NaslUITypeAnnotation.DataSourceParams
114
+ }),
115
+ ],
116
+ returns: [
117
+ utils_1.NaslNode.Return({
118
+ name: 'result',
119
+ typeAnnotation: null
120
+ }),
121
+ ],
122
+ variables: [],
123
+ body: [
124
+ utils_1.NaslLogicItem.Start,
125
+ utils_1.NaslLogicItem.Assignment({
126
+ left: utils_1.NaslLogicItem.Identifier({
127
+ name: 'result'
128
+ }),
129
+ right: utils_1.NaslLogicItem.CallLogic({
130
+ calleeNamespace: moduleNamespace + ".logics",
131
+ calleeName: newLogic.name,
132
+ arguments: params
133
+ })
134
+ }),
135
+ utils_1.NaslLogicItem.End,
136
+ ]
137
+ });
138
+ }
139
+ exports.genEditTableLoadLogic = genEditTableLoadLogic;
140
+ /**
141
+ * 生成表格 remove 逻辑
142
+ * @param entity 实体
143
+ */
144
+ function genEditTableRemoveLogic(entity, nameGroup) {
145
+ var _a;
146
+ var lowerEntityName = utils.firstLowerCase(entity.name);
147
+ var ns = entity.ns;
148
+ var deleteLogic = (_a = ns === null || ns === void 0 ? void 0 : ns.logics) === null || _a === void 0 ? void 0 : _a.find(function (logic) { return logic.name === "delete"; });
149
+ var idPropertys = entity.properties.filter(function (property) { return property.primaryKey || property.name === 'id'; });
150
+ return utils_1.NaslNode.Logic({
151
+ name: nameGroup.viewLogicRemove,
152
+ params: [],
153
+ returns: [],
154
+ variables: [],
155
+ body: [
156
+ utils_1.NaslLogicItem.Start,
157
+ utils_1.NaslLogicItem.CallLogic({
158
+ calleeNamespace: deleteLogic.getNamespace(),
159
+ calleeName: deleteLogic.name,
160
+ arguments: idPropertys.map(function (idProperty) {
161
+ var paramFromLogic = _1.getParamFromLogic(deleteLogic, idProperty.name);
162
+ // 如果旧逻辑,但是新导入表中,id的name 不是id 的话,就直接使用名称叫id的
163
+ if (!paramFromLogic) {
164
+ paramFromLogic = _1.getParamFromLogic(deleteLogic, 'id');
165
+ }
166
+ return _1.genLogicParam(paramFromLogic.name, "current.item." + lowerEntityName + "." + paramFromLogic.name);
167
+ })
168
+ }),
169
+ _1.genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
170
+ utils_1.NaslLogicItem.End,
171
+ ]
172
+ });
173
+ }
174
+ exports.genEditTableRemoveLogic = genEditTableRemoveLogic;
175
+ function genBlurUpdateLogic(entity, nameGroup) {
176
+ var _a;
177
+ var lowerEntityName = utils.firstLowerCase(entity.name);
178
+ var ns = entity.ns;
179
+ var updateLogic = (_a = ns === null || ns === void 0 ? void 0 : ns.logics) === null || _a === void 0 ? void 0 : _a.find(function (logic) { return logic.name === "update"; });
180
+ return utils_1.NaslNode.Logic({
181
+ name: nameGroup.viewLogicBlurUpdate,
182
+ params: [],
183
+ returns: [],
184
+ body: [
185
+ utils_1.NaslLogicItem.Start,
186
+ utils_1.NaslLogicItem.Assignment({
187
+ left: _1.genMemberExpression("current.item.editing", ['', '', nameGroup.structure + ".editing"]),
188
+ right: utils_1.NaslLogicItem.StringLiteral({
189
+ value: ''
190
+ })
191
+ }),
192
+ utils_1.NaslLogicItem.CallLogic({
193
+ calleeNamespace: updateLogic.getNamespace(),
194
+ calleeName: updateLogic.name,
195
+ arguments: [
196
+ _1.genLogicParam("" + updateLogic.params[0].name, "current.item." + lowerEntityName),
197
+ ]
198
+ }),
199
+ utils_1.NaslLogicItem.End,
200
+ ],
201
+ playground: []
202
+ });
203
+ }
204
+ exports.genBlurUpdateLogic = genBlurUpdateLogic;
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
3
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
5
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6
+ r[k] = a[j];
7
+ return r;
8
+ };
9
+ exports.__esModule = true;
10
+ exports.genGridViewCardBlock = exports.genGridViewBlock = exports.genGridViewRemoveLogic = exports.genGridViewLoadLogic = exports.genH5GridViewTemplate = exports.genGridViewTemplate = exports.genH5GridViewCardTemplate = exports.genGridViewCardTemplate = void 0;
11
+ var config_1 = require("../config");
12
+ var utils = require("../utils");
13
+ var _1 = require(".");
14
+ var utils_1 = require("./utils");
15
+ /**
16
+ * 根据实体属性生成表格列模板
17
+ * @param property 实体属性
18
+ */
19
+ function genGridViewCardTemplate(property, nameGroup) {
20
+ var entity = property.entity;
21
+ var dataSource = entity.parentNode;
22
+ var lowerEntityName = utils.firstLowerCase(entity.name);
23
+ var currentName = nameGroup.currentName || 'current';
24
+ var valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
25
+ var title = property.label || property.name;
26
+ if (property.relationEntity) {
27
+ // 有外键关联
28
+ var relationEntity = dataSource === null || dataSource === void 0 ? void 0 : dataSource.findEntityByName(property.relationEntity);
29
+ if (relationEntity) {
30
+ var displayedProperty = _1.getFirstDisplayedProperty(relationEntity);
31
+ if (displayedProperty) {
32
+ var relationLowerEntityName = utils.firstLowerCase(relationEntity.name);
33
+ valueExpression = currentName + ".item." + relationLowerEntityName + "." + displayedProperty.name;
34
+ }
35
+ else
36
+ return '';
37
+ }
38
+ else
39
+ return '';
40
+ }
41
+ else {
42
+ valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
43
+ }
44
+ var getText = function (property) {
45
+ var propertyTypeName = property.typeAnnotation.typeName;
46
+ if (propertyTypeName === 'Boolean') {
47
+ return "\n <u-text v-if=\"" + valueExpression + "\" text=\"\u662F\"></u-text>\n <u-text v-if=\"!" + valueExpression + "\" text=\"\u5426\"></u-text>\n ";
48
+ }
49
+ else {
50
+ return "<u-text :text=\"" + valueExpression + "\"></u-text>";
51
+ }
52
+ };
53
+ return "<u-linear-layout gap=\"small\">\n <u-text text=\"" + title + ":\"></u-text>" + getText(property) + "\n </u-linear-layout>";
54
+ }
55
+ exports.genGridViewCardTemplate = genGridViewCardTemplate;
56
+ function genH5GridViewCardTemplate(property, nameGroup) {
57
+ var entity = property.entity;
58
+ var dataSource = entity.parentNode;
59
+ var lowerEntityName = utils.firstLowerCase(entity.name);
60
+ var currentName = nameGroup.currentName || 'current';
61
+ var valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
62
+ if (property.relationEntity) {
63
+ // 有外键关联
64
+ var relationEntity = dataSource === null || dataSource === void 0 ? void 0 : dataSource.findEntityByName(property.relationEntity);
65
+ if (relationEntity) {
66
+ var displayedProperty = _1.getFirstDisplayedProperty(relationEntity);
67
+ if (displayedProperty) {
68
+ var relationLowerEntityName = utils.firstLowerCase(relationEntity.name);
69
+ valueExpression = currentName + ".item." + relationLowerEntityName + "." + displayedProperty.name;
70
+ }
71
+ else
72
+ return '';
73
+ }
74
+ else
75
+ return '';
76
+ }
77
+ else {
78
+ valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
79
+ }
80
+ var getText = function (property) {
81
+ var propertyTypeName = property.typeAnnotation.typeName;
82
+ if (propertyTypeName === 'Boolean') {
83
+ return "\n <van-text v-if=\"" + valueExpression + "\" text=\"\u662F\" display=\"block\"></van-text>\n <van-text v-if=\"!" + valueExpression + "\" text=\"\u5426\" display=\"block\"></van-text>\n ";
84
+ }
85
+ else {
86
+ return "<van-text :text=\"" + valueExpression + "\" display=\"block\"></van-text>";
87
+ }
88
+ };
89
+ return "" + getText(property);
90
+ }
91
+ exports.genH5GridViewCardTemplate = genH5GridViewCardTemplate;
92
+ /**
93
+ * 生成表格模板
94
+ * @param entity 实体
95
+ * @param nameGroup 命名组
96
+ */
97
+ function genGridViewTemplate(entity, nameGroup, modifyable) {
98
+ var currentName = nameGroup.currentName || 'current';
99
+ var properties = entity.properties.filter(_1.filterProperty('inTable'));
100
+ return "<u-grid-view ref=\"" + nameGroup.viewElementMainView + "\" :data-source=\"" + nameGroup.viewLogicLoad + "\" data-schema=\"" + nameGroup.structure + "\"\n value-field=\"" + nameGroup.viewVariableEntity + ".id\"\n :page-size=\"20\"\n :pageable=\"true\"\n :remote-paging=\"true\"\n :show-sizer=\"true\"\n :repeat=\"4\"\n :border=\"false\"\n :readonly=\"true\"\n :show-foot=\"true\"\n style=\"height:auto\">\n <template #item=\"current\">\n <u-card title=\"\">\n <u-linear-layout direction=\"vertical\" gap=\"small\">\n " + properties.map(function (property) { return genGridViewCardTemplate(property, nameGroup) + '\n'; }).join('') + "\n <u-linear-layout gap=\"small\">\n <u-link " + (modifyable ? "@click=\"" + (nameGroup.viewLogicModify || 'modify') + "\"" : '') + ">\u4FEE\u6539</u-link>\n <u-link @click=\"" + nameGroup.viewLogicRemove + "\">\u5220\u9664</u-link>\n </u-linear-layout>\n </u-linear-layout>\n </u-card>\n </template>\n</u-grid-view>\n";
101
+ }
102
+ exports.genGridViewTemplate = genGridViewTemplate;
103
+ function genH5GridViewTemplate(entity, nameGroup) {
104
+ var currentName = nameGroup.currentName || 'current';
105
+ var properties = entity.properties.filter(_1.filterProperty('inTable'));
106
+ return "<van-grid-view ref=\"gridView\" :data-source=\"" + nameGroup.viewLogicLoad + "\" data-schema=\"" + nameGroup.structure + "\"\n pageable=\"auto-more\"\n :remote-paging=\"true\"\n :col=\"2\"\n :iffall=\"false\">\n <template #item=\"current\">\n <van-cardu no-title>\n " + properties.map(function (property) { return genH5GridViewCardTemplate(property, nameGroup) + '\n'; }).join('') + "\n </van-cardu>\n </template>\n</van-grid-view>\n";
107
+ }
108
+ exports.genH5GridViewTemplate = genH5GridViewTemplate;
109
+ /**
110
+ * 生成表格 load 逻辑
111
+ * @param entity 实体
112
+ */
113
+ function genGridViewLoadLogic(entity, nameGroup, newLogic, supportFilter) {
114
+ var moduleNode = entity.app;
115
+ var moduleNamespace = moduleNode === null || moduleNode === void 0 ? void 0 : moduleNode.getNamespace();
116
+ var params = [
117
+ _1.genLogicParam("" + newLogic.params[0].name, 'params.page'),
118
+ _1.genLogicParam("" + newLogic.params[1].name, 'params.size'),
119
+ _1.genLogicParam("" + newLogic.params[2].name, 'params.sort'),
120
+ _1.genLogicParam("" + newLogic.params[3].name, 'params.order'),
121
+ ];
122
+ if (supportFilter)
123
+ params.push(_1.genLogicParam("" + newLogic.params[4].name, nameGroup.viewVariableFilter));
124
+ return utils_1.NaslNode.Logic({
125
+ name: nameGroup.viewLogicLoad,
126
+ params: [
127
+ utils_1.NaslNode.Param({
128
+ name: 'params',
129
+ typeAnnotation: utils_1.NaslUITypeAnnotation.DataSourceParams
130
+ }),
131
+ ],
132
+ returns: [
133
+ utils_1.NaslNode.Return({
134
+ name: 'result',
135
+ typeAnnotation: null
136
+ }),
137
+ ],
138
+ variables: [],
139
+ body: [
140
+ utils_1.NaslLogicItem.Start,
141
+ utils_1.NaslLogicItem.Assignment({
142
+ left: utils_1.NaslLogicItem.Identifier({
143
+ name: 'result'
144
+ }),
145
+ right: utils_1.NaslLogicItem.CallLogic({
146
+ calleeNamespace: moduleNamespace + ".logics",
147
+ calleeName: newLogic.name,
148
+ arguments: params
149
+ })
150
+ }),
151
+ utils_1.NaslLogicItem.End,
152
+ ]
153
+ });
154
+ }
155
+ exports.genGridViewLoadLogic = genGridViewLoadLogic;
156
+ /**
157
+ * 生成表格 remove 逻辑
158
+ * @param entity 实体
159
+ */
160
+ function genGridViewRemoveLogic(entity, nameGroup) {
161
+ var _a;
162
+ var lowerEntityName = utils.firstLowerCase(entity.name);
163
+ var ns = entity.ns;
164
+ var deleteLogic = (_a = ns === null || ns === void 0 ? void 0 : ns.logics) === null || _a === void 0 ? void 0 : _a.find(function (logic) { return logic.name === "delete"; });
165
+ var idPropertys = entity.properties.filter(function (property) { return property.primaryKey || property.name === 'id'; });
166
+ var currentName = nameGroup.currentName || 'current';
167
+ return utils_1.NaslNode.Logic({
168
+ name: nameGroup.viewLogicRemove,
169
+ params: [],
170
+ returns: [],
171
+ variables: [],
172
+ body: [
173
+ utils_1.NaslLogicItem.Start,
174
+ utils_1.NaslLogicItem.CallLogic({
175
+ calleeNamespace: deleteLogic.getNamespace(),
176
+ calleeName: deleteLogic.name,
177
+ arguments: idPropertys.map(function (idProperty) {
178
+ var paramFromLogic = _1.getParamFromLogic(deleteLogic, idProperty.name);
179
+ // 如果旧逻辑,但是新导入表中,id的name 不是id 的话,就直接使用名称叫id的
180
+ if (!paramFromLogic) {
181
+ paramFromLogic = _1.getParamFromLogic(deleteLogic, 'id');
182
+ }
183
+ return _1.genLogicParam(paramFromLogic.name, currentName + ".item." + lowerEntityName + "." + paramFromLogic.name);
184
+ })
185
+ }),
186
+ _1.genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
187
+ utils_1.NaslLogicItem.End,
188
+ ]
189
+ });
190
+ }
191
+ exports.genGridViewRemoveLogic = genGridViewRemoveLogic;
192
+ /**
193
+ * 生成表格区块
194
+ * @param entity 实体
195
+ * @param view 所插入的页面,用于生成逻辑名字,去重等
196
+ * @notice 目前 logic 名去重做成前置处理了,与 mergeBlock 的后置处理不冲突
197
+ * (页面 load 名) -产生-> (logic 名) -产生-> (structure 名)
198
+ * load -> load_someView_tableView
199
+ * load_select_student -> load_someView_select_student
200
+ */
201
+ // 数据网格(简)
202
+ function genGridViewBlock(entity, oldNode) {
203
+ var view = oldNode.view;
204
+ var dataSource = entity.parentNode;
205
+ var module = dataSource.parentNode;
206
+ var viewElementMainView = view.getViewElementUniqueName('gridView');
207
+ var nameGroup = _1.genUniqueQueryNameGroup(module, view, viewElementMainView);
208
+ nameGroup.viewElementMainView = viewElementMainView;
209
+ nameGroup.viewVariableEntity = view.getVariableUniqueName(utils.firstLowerCase(entity.name));
210
+ nameGroup.viewLogicRemove = view.getLogicUniqueName('remove');
211
+ // 当前节点的currentName
212
+ nameGroup.currentName = oldNode.getCurrentName();
213
+ // 收集所有和本实体关联的实体
214
+ var entitySet = new Set();
215
+ entitySet.add(entity);
216
+ var newLogics = [];
217
+ entity.properties.forEach(function (property) {
218
+ if (property.relationEntity) {
219
+ // 有外键关联
220
+ var relationEntity = dataSource === null || dataSource === void 0 ? void 0 : dataSource.findEntityByName(property.relationEntity);
221
+ if (relationEntity) {
222
+ var displayedProperty = _1.getFirstDisplayedProperty(relationEntity);
223
+ if (displayedProperty)
224
+ entitySet.add(relationEntity);
225
+ }
226
+ }
227
+ });
228
+ var allEntities = __spreadArrays(entitySet);
229
+ var entityLogic = _1.genQueryLogic(allEntities, nameGroup, false, true, module);
230
+ newLogics.push(entityLogic);
231
+ return "\n<template>\n " + (config_1.config.scope === 'h5' ? genH5GridViewTemplate(entity, nameGroup) : genGridViewTemplate(entity, nameGroup)) + "\n</template>\n<definition>\n{\n \"viewLogics\": [\n " + JSON.stringify(genGridViewLoadLogic(entity, nameGroup, entityLogic, false)) + ",\n " + JSON.stringify(genGridViewRemoveLogic(entity, nameGroup)) + "\n ],\n\n \"logics\": " + JSON.stringify(newLogics) + "\n}\n</definition>\n";
232
+ }
233
+ exports.genGridViewBlock = genGridViewBlock;
234
+ function genGridViewCardBlock(property, oldNode) {
235
+ var view = oldNode.view;
236
+ var entity = property.entity;
237
+ var dataSource = entity.parentNode;
238
+ var module = dataSource.parentNode;
239
+ var viewElementMainView = view.getViewElementUniqueName('gridView');
240
+ var nameGroup = _1.genUniqueQueryNameGroup(module, view, viewElementMainView);
241
+ nameGroup.viewElementMainView = viewElementMainView;
242
+ nameGroup.viewVariableEntity = view.getVariableUniqueName(utils.firstLowerCase(entity.name));
243
+ nameGroup.viewLogicRemove = view.getLogicUniqueName('remove');
244
+ // 收集所有和本实体关联的实体
245
+ var entitySet = new Set();
246
+ entitySet.add(entity);
247
+ var newLogics = [];
248
+ entity.properties.forEach(function (property) {
249
+ if (property.relationEntity) {
250
+ // 有外键关联
251
+ var relationEntity = dataSource === null || dataSource === void 0 ? void 0 : dataSource.findEntityByName(property.relationEntity);
252
+ if (relationEntity) {
253
+ var displayedProperty = _1.getFirstDisplayedProperty(relationEntity);
254
+ if (displayedProperty)
255
+ entitySet.add(relationEntity);
256
+ }
257
+ }
258
+ });
259
+ var allEntities = __spreadArrays(entitySet);
260
+ var entityLogic = _1.genQueryLogic(allEntities, nameGroup, true, true, module);
261
+ newLogics.push(entityLogic);
262
+ return "\n <template>\n " + genGridViewTemplate(entity, nameGroup) + "\n </template>\n <definition>\n {\n \"viewLogics\": [\n " + JSON.stringify(genGridViewLoadLogic(entity, nameGroup, entityLogic, false)) + ",\n " + JSON.stringify(genGridViewRemoveLogic(entity, nameGroup)) + "\n ],\n \"logics\": " + JSON.stringify(newLogics) + "\n }\n </definition>\n ";
263
+ }
264
+ exports.genGridViewCardBlock = genGridViewCardBlock;
265
+ exports["default"] = genGridViewBlock;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.genListViewBlock = exports.genLoadListViewLogic = exports.genH5ListViewTemplate = exports.genListViewTemplate = void 0;
4
+ var config_1 = require("../config");
5
+ var utils = require("../utils");
6
+ var _1 = require(".");
7
+ var utils_1 = require("./utils");
8
+ function genListViewTemplate(property, nameGroup) {
9
+ var entity = property.entity;
10
+ var lowerEntityName = utils.firstLowerCase(entity.name);
11
+ var currentName = nameGroup.currentName || 'current';
12
+ var valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
13
+ return "<u-list-view ref=\"" + nameGroup.viewElementMainView + "\" :data-source=\"" + nameGroup.viewLogicLoad + "\" data-schema=\"" + nameGroup.structure + "\"\n text-field=\"" + nameGroup.viewVariableEntity + "." + property.name + "\"\n value-field=\"" + nameGroup.viewVariableEntity + ".id\" :pageable=\"true\" :remote-paging=\"true\">\n <template #item=\"current\">\n <u-linear-layout>\n <u-text :text=\"" + valueExpression + "\"></u-text>\n </u-linear-layout>\n </template>\n</u-list-view>";
14
+ }
15
+ exports.genListViewTemplate = genListViewTemplate;
16
+ function genH5ListViewTemplate(property, nameGroup) {
17
+ var entity = property.entity;
18
+ var lowerEntityName = utils.firstLowerCase(entity.name);
19
+ var currentName = nameGroup.currentName || 'current';
20
+ var valueExpression = currentName + ".item." + lowerEntityName + "." + property.name;
21
+ return "<van-list-view ref=\"" + nameGroup.viewElementMainView + "\" :data-source=\"" + nameGroup.viewLogicLoad + "\" data-schema=\"" + nameGroup.structure + "\"\n text-field=\"" + nameGroup.viewVariableEntity + "." + property.name + "\"\n value-field=\"" + nameGroup.viewVariableEntity + ".id\" pageable=\"auto-more\" :remote-paging=\"true\">\n <template #item=\"current\">\n <van-cell :value=\"" + valueExpression + "\" isLink>\n <template #title>{{ " + valueExpression + " }}</template>\n </van-cell>\n </template>\n</van-list-view>";
22
+ }
23
+ exports.genH5ListViewTemplate = genH5ListViewTemplate;
24
+ function genLoadListViewLogic(entity, nameGroup, newLogics) {
25
+ var parentNode = entity.parentNode;
26
+ var moduleNode = entity.app;
27
+ var moduleNamespace = moduleNode === null || moduleNode === void 0 ? void 0 : moduleNode.getNamespace();
28
+ // Select 和 table 不一样,直接在内部产生了
29
+ var entityLogic = _1.genQueryLogic([entity], nameGroup, false, false, parentNode);
30
+ newLogics.push(entityLogic);
31
+ return utils_1.NaslNode.Logic({
32
+ name: nameGroup.viewLogicLoad,
33
+ params: [
34
+ utils_1.NaslNode.Param({
35
+ name: 'params',
36
+ typeAnnotation: utils_1.NaslUITypeAnnotation.DataSourceParams
37
+ }),
38
+ ],
39
+ returns: [
40
+ utils_1.NaslNode.Return({
41
+ name: 'result',
42
+ typeAnnotation: null
43
+ }),
44
+ ],
45
+ variables: [],
46
+ body: [
47
+ utils_1.NaslLogicItem.Start,
48
+ utils_1.NaslLogicItem.Assignment({
49
+ left: utils_1.NaslLogicItem.Identifier({
50
+ name: 'result'
51
+ }),
52
+ right: utils_1.NaslLogicItem.CallLogic({
53
+ calleeNamespace: moduleNamespace + ".logics",
54
+ calleeName: entityLogic.name,
55
+ arguments: [
56
+ _1.genLogicParam("" + entityLogic.params[0].name, 'params.page'),
57
+ _1.genLogicParam("" + entityLogic.params[1].name, 'params.size'),
58
+ ]
59
+ })
60
+ }),
61
+ utils_1.NaslLogicItem.End,
62
+ ]
63
+ });
64
+ }
65
+ exports.genLoadListViewLogic = genLoadListViewLogic;
66
+ /**
67
+ * 生成实体选择框区块
68
+ */
69
+ function genListViewBlock(entity, oldNode, property) {
70
+ var view = oldNode.view;
71
+ var dataSource = entity.parentNode;
72
+ var module = dataSource.parentNode;
73
+ var viewElementMainView = view.getViewElementUniqueName('listView');
74
+ var nameGroup = _1.genUniqueQueryNameGroup(module, view, viewElementMainView, false);
75
+ nameGroup.viewElementMainView = viewElementMainView;
76
+ nameGroup.viewVariableEntity = view.getVariableUniqueName(utils.firstLowerCase(entity.name));
77
+ // 当前节点的currentName
78
+ nameGroup.currentName = oldNode.getCurrentName();
79
+ var displayedProperty = property || _1.getFirstDisplayedProperty(entity);
80
+ var newLogics = [];
81
+ return "<template>\n " + (config_1.config.scope === 'h5' ? genH5ListViewTemplate(displayedProperty, nameGroup) : genListViewTemplate(displayedProperty, nameGroup)) + "\n</template>\n\n<definition>\n{\n \"viewLogics\": [\n " + JSON.stringify(genLoadListViewLogic(entity, nameGroup, newLogics)) + "\n ],\n\n \"logics\": " + JSON.stringify(newLogics) + "\n}\n</definition>\n";
82
+ }
83
+ exports.genListViewBlock = genListViewBlock;
84
+ exports["default"] = genListViewBlock;