@lcap/nasl 2.18.0 → 2.19.0-beta.1

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 (283) hide show
  1. package/out/automate/template/myProcess.js +1 -1
  2. package/out/automate/template/myProcess.js.map +1 -1
  3. package/out/bak/translator.js +2 -1
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/BaseNode.js +1 -0
  6. package/out/common/BaseNode.js.map +1 -1
  7. package/out/common/Command.d.ts +1 -0
  8. package/out/common/Command.js +5 -1
  9. package/out/common/Command.js.map +1 -1
  10. package/out/concepts/AnonymousFunction__.d.ts +1 -0
  11. package/out/concepts/AnonymousFunction__.js +40 -2
  12. package/out/concepts/AnonymousFunction__.js.map +1 -1
  13. package/out/concepts/App__.d.ts +10 -0
  14. package/out/concepts/App__.js +132 -0
  15. package/out/concepts/App__.js.map +1 -1
  16. package/out/concepts/Assignee__.js +4 -3
  17. package/out/concepts/Assignee__.js.map +1 -1
  18. package/out/concepts/BatchAssignment__.d.ts +2 -0
  19. package/out/concepts/BatchAssignment__.js +108 -47
  20. package/out/concepts/BatchAssignment__.js.map +1 -1
  21. package/out/concepts/BindAttribute__.js +8 -1
  22. package/out/concepts/BindAttribute__.js.map +1 -1
  23. package/out/concepts/CallFunction__.js +51 -18
  24. package/out/concepts/CallFunction__.js.map +1 -1
  25. package/out/concepts/CallInterface__.js +6 -4
  26. package/out/concepts/CallInterface__.js.map +1 -1
  27. package/out/concepts/CallLogic__.d.ts +2 -1
  28. package/out/concepts/CallLogic__.js +113 -26
  29. package/out/concepts/CallLogic__.js.map +1 -1
  30. package/out/concepts/CallQueryComponent__.js +4 -1
  31. package/out/concepts/CallQueryComponent__.js.map +1 -1
  32. package/out/concepts/DataSource__.d.ts +2 -0
  33. package/out/concepts/DataSource__.js +55 -1
  34. package/out/concepts/DataSource__.js.map +1 -1
  35. package/out/concepts/Destination__.d.ts +2 -1
  36. package/out/concepts/Destination__.js +90 -22
  37. package/out/concepts/Destination__.js.map +1 -1
  38. package/out/concepts/ForEachStatement__.js +2 -0
  39. package/out/concepts/ForEachStatement__.js.map +1 -1
  40. package/out/concepts/Identifier__.d.ts +1 -0
  41. package/out/concepts/Identifier__.js +18 -7
  42. package/out/concepts/Identifier__.js.map +1 -1
  43. package/out/concepts/LogicItem__.d.ts +1 -1
  44. package/out/concepts/LogicItem__.js.map +1 -1
  45. package/out/concepts/Logic__.d.ts +1 -0
  46. package/out/concepts/Logic__.js +33 -21
  47. package/out/concepts/Logic__.js.map +1 -1
  48. package/out/concepts/Match__.js +13 -8
  49. package/out/concepts/Match__.js.map +1 -1
  50. package/out/concepts/NewComposite__.d.ts +345 -0
  51. package/out/concepts/NewComposite__.js +1067 -0
  52. package/out/concepts/NewComposite__.js.map +1 -0
  53. package/out/concepts/NewList__.d.ts +130 -0
  54. package/out/concepts/NewList__.js +353 -0
  55. package/out/concepts/NewList__.js.map +1 -0
  56. package/out/concepts/NewMap__.d.ts +221 -0
  57. package/out/concepts/NewMap__.js +492 -0
  58. package/out/concepts/NewMap__.js.map +1 -0
  59. package/out/concepts/New__.d.ts +19 -0
  60. package/out/concepts/New__.js +66 -0
  61. package/out/concepts/New__.js.map +1 -0
  62. package/out/concepts/Param__.d.ts +2 -0
  63. package/out/concepts/Param__.js +40 -3
  64. package/out/concepts/Param__.js.map +1 -1
  65. package/out/concepts/ProcessElement__.js +31 -10
  66. package/out/concepts/ProcessElement__.js.map +1 -1
  67. package/out/concepts/ProcessOutcome__.js +1 -1
  68. package/out/concepts/ProcessOutcome__.js.map +1 -1
  69. package/out/concepts/ProcessOutcomes__.d.ts +30 -0
  70. package/out/concepts/{ConstructArgument__.js → ProcessOutcomes__.js} +27 -48
  71. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  72. package/out/concepts/Return__.js +2 -1
  73. package/out/concepts/Return__.js.map +1 -1
  74. package/out/concepts/SelectMembers__.js +3 -3
  75. package/out/concepts/SelectMembers__.js.map +1 -1
  76. package/out/concepts/StringInterpolation__.js +12 -2
  77. package/out/concepts/StringInterpolation__.js.map +1 -1
  78. package/out/concepts/TypeAnnotation__.d.ts +4 -0
  79. package/out/concepts/TypeAnnotation__.js +66 -12
  80. package/out/concepts/TypeAnnotation__.js.map +1 -1
  81. package/out/concepts/ValidationRule__.js +1 -1
  82. package/out/concepts/ValidationRule__.js.map +1 -1
  83. package/out/concepts/Variable__.js +2 -1
  84. package/out/concepts/Variable__.js.map +1 -1
  85. package/out/concepts/ViewElement__.js +13 -1
  86. package/out/concepts/ViewElement__.js.map +1 -1
  87. package/out/concepts/View__.d.ts +1 -0
  88. package/out/concepts/View__.js +13 -0
  89. package/out/concepts/View__.js.map +1 -1
  90. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  91. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  92. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  93. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  94. package/out/concepts/basics/stdlib/nasl.ui.js +2 -0
  95. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  96. package/out/concepts/basics/stdlib/nasl.util.js +151 -19
  97. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  98. package/out/concepts/index__.d.ts +5 -0
  99. package/out/concepts/index__.js +5 -0
  100. package/out/concepts/index__.js.map +1 -1
  101. package/out/enums/KEYWORDS.js +1 -0
  102. package/out/enums/KEYWORDS.js.map +1 -1
  103. package/out/generator/genBundleFiles.js +32 -182
  104. package/out/generator/genBundleFiles.js.map +1 -1
  105. package/out/generator/genMetaData.d.ts +1 -10
  106. package/out/generator/genMetaData.js +184 -50
  107. package/out/generator/genMetaData.js.map +1 -1
  108. package/out/generator/genReleaseBody.d.ts +2 -0
  109. package/out/generator/genReleaseBody.js +29 -3
  110. package/out/generator/genReleaseBody.js.map +1 -1
  111. package/out/generator/index.d.ts +1 -0
  112. package/out/generator/index.js +1 -0
  113. package/out/generator/index.js.map +1 -1
  114. package/out/generator/permission.d.ts +9 -0
  115. package/out/generator/permission.js +235 -0
  116. package/out/generator/permission.js.map +1 -0
  117. package/out/index.d.ts +1 -1
  118. package/out/index.js +2 -1
  119. package/out/index.js.map +1 -1
  120. package/out/server/entity2LogicNamespace.js +69 -9
  121. package/out/server/entity2LogicNamespace.js.map +1 -1
  122. package/out/server/extendBaseNode.js +10 -20
  123. package/out/server/extendBaseNode.js.map +1 -1
  124. package/out/server/formatTsUtils.d.ts +1 -2
  125. package/out/server/formatTsUtils.js +36 -47
  126. package/out/server/formatTsUtils.js.map +1 -1
  127. package/out/server/getLogics.d.ts +2 -1
  128. package/out/server/getLogics.js +11 -0
  129. package/out/server/getLogics.js.map +1 -1
  130. package/out/server/getMemberIdentifier.js +1 -1
  131. package/out/server/getMemberIdentifier.js.map +1 -1
  132. package/out/server/getProcesses.js +1 -1
  133. package/out/server/getProcesses.js.map +1 -1
  134. package/out/server/naslServer.d.ts +1 -1
  135. package/out/server/naslServer.js +181 -35
  136. package/out/server/naslServer.js.map +1 -1
  137. package/out/server/process2LogicNamespace.js +8 -0
  138. package/out/server/process2LogicNamespace.js.map +1 -1
  139. package/out/server/translator.js +66 -6
  140. package/out/server/translator.js.map +1 -1
  141. package/out/service/creator/add.configs.js +4 -0
  142. package/out/service/creator/add.configs.js.map +1 -1
  143. package/out/service/datasource/api.d.ts +12 -0
  144. package/out/service/datasource/api.js +14 -0
  145. package/out/service/datasource/api.js.map +1 -0
  146. package/out/service/datasource/index.d.ts +2 -0
  147. package/out/service/datasource/index.js +10 -0
  148. package/out/service/datasource/index.js.map +1 -0
  149. package/out/service/storage/init.js +8 -1
  150. package/out/service/storage/init.js.map +1 -1
  151. package/out/templator/genEditTableBlock.js +4 -5
  152. package/out/templator/genEditTableBlock.js.map +1 -1
  153. package/out/templator/genGetBlock.js +4 -3
  154. package/out/templator/genGetBlock.js.map +1 -1
  155. package/out/templator/genGridViewBlock.js +16 -14
  156. package/out/templator/genGridViewBlock.js.map +1 -1
  157. package/out/templator/genListViewBlock.js +5 -5
  158. package/out/templator/genListViewBlock.js.map +1 -1
  159. package/out/templator/genTableBlock.js +6 -10
  160. package/out/templator/genTableBlock.js.map +1 -1
  161. package/package.json +1 -1
  162. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  163. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  164. package/sandbox/stdlib/nasl.auth.ts +1 -1
  165. package/sandbox/stdlib/nasl.core.ts +4 -0
  166. package/sandbox/stdlib/nasl.logging.ts +4 -4
  167. package/sandbox/stdlib/nasl.util.ts +14 -5
  168. package/src/automate/template/myProcess.js +1 -1
  169. package/src/bak/translator.js +4 -1
  170. package/src/common/BaseNode.ts +1 -0
  171. package/src/common/Command.ts +4 -0
  172. package/src/concepts/AnonymousFunction__.ts +48 -2
  173. package/src/concepts/App__.ts +140 -41
  174. package/src/concepts/Assignee__.ts +4 -3
  175. package/src/concepts/BatchAssignment__.ts +111 -51
  176. package/src/concepts/BindAttribute__.ts +9 -2
  177. package/src/concepts/CallFunction__.ts +65 -31
  178. package/src/concepts/CallInterface__.ts +6 -22
  179. package/src/concepts/CallLogic__.ts +88 -24
  180. package/src/concepts/CallQueryComponent__.ts +4 -1
  181. package/src/concepts/DataSource__.ts +56 -1
  182. package/src/concepts/Destination__.ts +92 -22
  183. package/src/concepts/ForEachStatement__.ts +2 -0
  184. package/src/concepts/Identifier__.ts +18 -7
  185. package/src/concepts/LogicItem__.ts +1 -1
  186. package/src/concepts/Logic__.ts +54 -39
  187. package/src/concepts/Match__.ts +12 -8
  188. package/src/concepts/NewComposite__.ts +1356 -0
  189. package/src/concepts/NewList__.ts +444 -0
  190. package/src/concepts/NewMap__.ts +678 -0
  191. package/src/concepts/New__.ts +73 -0
  192. package/src/concepts/Param__.ts +238 -199
  193. package/src/concepts/ProcessElement__.ts +32 -10
  194. package/src/concepts/ProcessOutcome__.ts +1 -1
  195. package/src/concepts/ProcessOutcomes__.ts +90 -0
  196. package/src/concepts/Return__.ts +4 -1
  197. package/src/concepts/SelectMembers__.ts +3 -3
  198. package/src/concepts/StringInterpolation__.ts +21 -11
  199. package/src/concepts/TypeAnnotation__.ts +71 -50
  200. package/src/concepts/ValidationRule__.ts +19 -1
  201. package/src/concepts/Variable__.ts +4 -1
  202. package/src/concepts/ViewElement__.ts +23 -7
  203. package/src/concepts/View__.ts +16 -2
  204. package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
  205. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  206. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  207. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  208. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  209. package/src/concepts/dist/BindAttribute__.js +760 -0
  210. package/src/concepts/dist/BindEvent__.js +732 -0
  211. package/src/concepts/dist/CallFunction__.js +82 -28
  212. package/src/concepts/dist/CallLogic__.js +95 -27
  213. package/src/concepts/dist/Identifier__.js +311 -0
  214. package/src/concepts/dist/StringInterpolation__.js +231 -0
  215. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  216. package/src/concepts/dist/ViewElement__.js +1692 -0
  217. package/src/concepts/dist/View__.js +1601 -0
  218. package/src/concepts/index__.ts +5 -0
  219. package/src/enums/KEYWORDS.ts +1 -0
  220. package/src/generator/dist/genBundleFiles.js +23 -176
  221. package/src/generator/dist/genMetaData.js +245 -0
  222. package/src/generator/dist/permission.js +392 -0
  223. package/src/generator/genBundleFiles.ts +34 -219
  224. package/src/generator/genMetaData.ts +177 -77
  225. package/src/generator/genReleaseBody.ts +30 -5
  226. package/src/generator/index.ts +1 -0
  227. package/src/generator/permission.ts +271 -0
  228. package/src/index.ts +1 -1
  229. package/src/server/dist/naslServer.js +443 -249
  230. package/src/server/entity2LogicNamespace.ts +70 -10
  231. package/src/server/extendBaseNode.ts +10 -21
  232. package/src/server/formatTsUtils.ts +36 -46
  233. package/src/server/getLogics.ts +13 -1
  234. package/src/server/getMemberIdentifier.ts +1 -1
  235. package/src/server/getProcesses.ts +1 -1
  236. package/src/server/naslServer.ts +181 -42
  237. package/src/server/process2LogicNamespace.ts +8 -0
  238. package/src/server/translator.ts +64 -7
  239. package/src/service/creator/add.configs.js +4 -0
  240. package/src/service/dataSource/api.js +11 -0
  241. package/src/service/dataSource/index.js +6 -0
  242. package/src/service/storage/dist/init.js +48 -10
  243. package/src/service/storage/init.ts +9 -2
  244. package/src/service/video/VideoTranscribe.js +1 -0
  245. package/src/templator/dist/genEditTableBlock.js +204 -0
  246. package/src/templator/dist/genGridViewBlock.js +265 -0
  247. package/src/templator/dist/genListViewBlock.js +84 -0
  248. package/src/templator/dist/genTableBlock.js +209 -0
  249. package/src/templator/dist/utils.js +527 -0
  250. package/src/templator/genEditTableBlock.ts +8 -16
  251. package/src/templator/genGetBlock.ts +18 -19
  252. package/src/templator/genGridViewBlock.ts +18 -18
  253. package/src/templator/genListViewBlock.ts +8 -11
  254. package/src/templator/genTableBlock.ts +6 -10
  255. package/ts-worker/dist/webpack.config.dev.js +3 -1
  256. package/ts-worker/lib/tsserver.js +8 -1
  257. package/out/automate/engine/2.14-components.d.ts +0 -1115
  258. package/out/automate/engine/2.14-components.js +0 -1087
  259. package/out/automate/engine/2.14-components.js.map +0 -1
  260. package/out/concepts/ConstructArgument__.d.ts +0 -40
  261. package/out/concepts/ConstructArgument__.js.map +0 -1
  262. package/out/concepts/Construct__.d.ts +0 -189
  263. package/out/concepts/Construct__.js +0 -340
  264. package/out/concepts/Construct__.js.map +0 -1
  265. package/out/concepts/MatchExpression__.d.ts +0 -97
  266. package/out/concepts/MatchExpression__.js +0 -281
  267. package/out/concepts/MatchExpression__.js.map +0 -1
  268. package/out/templator/sql-parser/index.d.ts +0 -1
  269. package/out/templator/sql-parser/index.js +0 -228
  270. package/out/templator/sql-parser/index.js.map +0 -1
  271. package/out/templator/sql-parser/parser.js +0 -26664
  272. package/out/templator/sql-parser/parser.js.map +0 -1
  273. package/src/concepts/dist/Anchor__.js +0 -179
  274. package/src/concepts/dist/Assignment__.js +0 -301
  275. package/src/concepts/dist/CallInterface__.js +0 -533
  276. package/src/concepts/dist/ForEachStatement__.js +0 -426
  277. package/src/concepts/dist/MatchCase__.js +0 -587
  278. package/src/concepts/dist/MemberExpression__.js +0 -348
  279. package/src/concepts/dist/Param__.js +0 -537
  280. package/src/concepts/dist/Return__.js +0 -493
  281. package/src/server/dist/formatTsUtils.js +0 -683
  282. package/ts-worker/lib/dist/tsserver.dev.js +0 -22953
  283. package/ts-worker/sources/lib/dist/tsserver.dev.js +0 -22912
@@ -44,7 +44,6 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
44
44
  };
45
45
  exports.__esModule = true;
46
46
  exports.loadAppSync = exports.loadApp = exports.handleApp = exports.batchAction = exports.batchQuery = void 0;
47
- var translator_1 = require("../../translator");
48
47
  var concepts_1 = require("../../concepts");
49
48
  var decorators_1 = require("../../decorators");
50
49
  var config_1 = require("../../config");
@@ -86,7 +85,7 @@ function getLogic(key, app, diffLogicList) {
86
85
  }
87
86
  /* 获取LogicITEM */
88
87
  function getStatement(state, app, diffLogicList) {
89
- var _a, _b, _c, _d;
88
+ var _a, _b, _c, _d, _e;
90
89
  var logicItems = [];
91
90
  switch (state.concept) {
92
91
  case 'Assignment':
@@ -98,6 +97,12 @@ function getStatement(state, app, diffLogicList) {
98
97
  case 'ForEachStatement':
99
98
  logicItems = __spreadArrays(state.body, [state.each, state.start, state.end]);
100
99
  break;
100
+ case 'Match':
101
+ logicItems = state.cases.map(getStatement).flat(1);
102
+ break;
103
+ case 'MatchCase':
104
+ logicItems = __spreadArrays(state.patterns, state.body);
105
+ break;
101
106
  case 'SwitchStatement':
102
107
  logicItems = state.cases.map(getStatement).flat(1);
103
108
  break;
@@ -111,16 +116,46 @@ function getStatement(state, app, diffLogicList) {
111
116
  logicItems = (_a = state.arguments) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item.expression; });
112
117
  getLogic(state.calleewholeKey, app, diffLogicList);
113
118
  break;
114
- case 'CallInterface':
119
+ case 'CallFunction':
115
120
  logicItems = (_b = state.arguments) === null || _b === void 0 ? void 0 : _b.map(function (item) { return item.expression; });
116
121
  break;
122
+ case 'CallInterface':
123
+ logicItems = (_c = state.arguments) === null || _c === void 0 ? void 0 : _c.map(function (item) { return item.expression; });
124
+ break;
117
125
  case 'BatchAssignment':
118
- logicItems = __spreadArrays([(_c = state.left) === null || _c === void 0 ? void 0 : _c.expression], (_d = state.left) === null || _d === void 0 ? void 0 : _d.members, state.rights.map(function (item) { return __spreadArrays([item === null || item === void 0 ? void 0 : item.expression], item === null || item === void 0 ? void 0 : item.members); }).flat(1));
126
+ logicItems = __spreadArrays([(_d = state.left) === null || _d === void 0 ? void 0 : _d.expression], (_e = state.left) === null || _e === void 0 ? void 0 : _e.members, state.rights.map(function (item) { return __spreadArrays([item === null || item === void 0 ? void 0 : item.expression], item === null || item === void 0 ? void 0 : item.members); }).flat(1));
127
+ break;
128
+ case 'MemberExpression':
129
+ logicItems = [state.object, state.property];
130
+ break;
131
+ case 'StringInterpolation':
132
+ logicItems = __spreadArrays(state.expressions);
133
+ break;
119
134
  default:
120
135
  break;
121
136
  }
122
137
  return logicItems.filter(function (item) { return !!item; });
123
138
  }
139
+ /* 小程序影响的服务端发布 */
140
+ function getMiniAppChange(target, obj, action) {
141
+ var _a;
142
+ if (!target.app.miniEnable) {
143
+ return false;
144
+ }
145
+ /* 分端以后需要改 */
146
+ var len = (_a = target.nodePath) === null || _a === void 0 ? void 0 : _a.split('.').length;
147
+ if (len > 2) {
148
+ return false;
149
+ }
150
+ if (action === 'delete') {
151
+ return true;
152
+ }
153
+ else {
154
+ if ('name' in obj || 'title' in obj) {
155
+ return true;
156
+ }
157
+ }
158
+ }
124
159
  /**
125
160
  * 执行更新
126
161
  */
@@ -178,7 +213,7 @@ function doAction(app, actionItem) {
178
213
  try {
179
214
  if (Array.isArray(list)) {
180
215
  list.forEach(function (event) {
181
- var _a, _b, _c, _d, _e, _f;
216
+ var _a, _b, _c, _d, _e, _f, _g, _h;
182
217
  var emitTarget = (_a = event === null || event === void 0 ? void 0 : event.originEvent) === null || _a === void 0 ? void 0 : _a.target;
183
218
  var _path = event.originEvent.path;
184
219
  var _root = ((_b = _path.split('.')) === null || _b === void 0 ? void 0 : _b[1]) || '';
@@ -201,8 +236,11 @@ function doAction(app, actionItem) {
201
236
  hasFrontEnd = true;
202
237
  }
203
238
  if (emitTarget.concept === 'View') {
204
- var isDelete_1 = ((_c = event === null || event === void 0 ? void 0 : event.originEvent) === null || _c === void 0 ? void 0 : _c.action) === 'delete';
205
- var isUpdateAuth = ((_d = event === null || event === void 0 ? void 0 : event.originEvent) === null || _d === void 0 ? void 0 : _d.action) === 'update' && ((_e = event === null || event === void 0 ? void 0 : event.originEvent) === null || _e === void 0 ? void 0 : _e.object) && 'auth' in ((_f = event === null || event === void 0 ? void 0 : event.originEvent) === null || _f === void 0 ? void 0 : _f.object);
239
+ if (getMiniAppChange(emitTarget, (_c = event === null || event === void 0 ? void 0 : event.originEvent) === null || _c === void 0 ? void 0 : _c.object, (_d = event === null || event === void 0 ? void 0 : event.originEvent) === null || _d === void 0 ? void 0 : _d.action)) {
240
+ hasBackEnd = true;
241
+ }
242
+ var isDelete_1 = ((_e = event === null || event === void 0 ? void 0 : event.originEvent) === null || _e === void 0 ? void 0 : _e.action) === 'delete';
243
+ var isUpdateAuth = ((_f = event === null || event === void 0 ? void 0 : event.originEvent) === null || _f === void 0 ? void 0 : _f.action) === 'update' && ((_g = event === null || event === void 0 ? void 0 : event.originEvent) === null || _g === void 0 ? void 0 : _g.object) && 'auth' in ((_h = event === null || event === void 0 ? void 0 : event.originEvent) === null || _h === void 0 ? void 0 : _h.object);
206
244
  if (isDelete_1 || isUpdateAuth) {
207
245
  var app_1 = emitTarget.app;
208
246
  var diffArr_3 = [];
@@ -374,7 +412,7 @@ function handleApp(app) {
374
412
  app._timer = setTimeout(function () {
375
413
  console.error('收集超时,请及时排查原因');
376
414
  app.emit('refresh');
377
- }, 800);
415
+ }, 2500);
378
416
  }
379
417
  if (!app._isCollectingCount) {
380
418
  app._actionMsg = event === null || event === void 0 ? void 0 : event.actionMsg;
@@ -403,7 +441,7 @@ function handleApp(app) {
403
441
  app._action = '';
404
442
  app._noTimer = undefined;
405
443
  if (!(Array.isArray(collectingList) && collectingList.length)) return [3 /*break*/, 2];
406
- translator_1.embeddedTSEmitter.emit('change', {
444
+ app.naslServer.embeddedTSEmitter.emit('change', {
407
445
  value: collectingList
408
446
  });
409
447
  return [4 /*yield*/, doAction(app, {
@@ -431,7 +469,7 @@ function handleApp(app) {
431
469
  app.on('storage', function (event) {
432
470
  // 是否正在收集
433
471
  if (app._isCollectingCount === 0) {
434
- translator_1.embeddedTSEmitter.emit('change', {
472
+ app.naslServer.embeddedTSEmitter.emit('change', {
435
473
  value: [event]
436
474
  });
437
475
  var actionMsg = '';
@@ -77,6 +77,13 @@ function getStatement(state: any, app: any, diffLogicList: string[]) {
77
77
  break;
78
78
  case 'BatchAssignment':
79
79
  logicItems = [state.left?.expression, ...state.left?.members, ...state.rights.map((item: SelectMembers) => [item?.expression, ...item?.members]).flat(1)];
80
+ break;
81
+ case 'MemberExpression':
82
+ logicItems = [state.object, state.property];
83
+ break;
84
+ case 'StringInterpolation':
85
+ logicItems = [...state.expressions];
86
+ break;
80
87
  default:
81
88
  break;
82
89
  }
@@ -85,7 +92,7 @@ function getStatement(state: any, app: any, diffLogicList: string[]) {
85
92
  }
86
93
 
87
94
  /* 小程序影响的服务端发布 */
88
- function getMiniAppChange(target: any, obj: any, action:string) {
95
+ function getMiniAppChange(target: any, obj: any, action: string) {
89
96
  if (!target.app.miniEnable) {
90
97
  return false;
91
98
  }
@@ -335,7 +342,7 @@ export function handleApp(app: any) {
335
342
  app._timer = setTimeout(() => {
336
343
  console.error('收集超时,请及时排查原因');
337
344
  app.emit('refresh');
338
- }, 800);
345
+ }, 2500);
339
346
  }
340
347
  if (!app._isCollectingCount) {
341
348
  app._actionMsg = event?.actionMsg;
@@ -95,6 +95,7 @@ class VideoTranscribe {
95
95
  a.href = this.videoUrl;
96
96
  document.body.appendChild(a);
97
97
  a.click();
98
+ document.body.removeChild(a);
98
99
  }
99
100
  }
100
101
 
@@ -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;