@lcap/nasl 1.0.0-alpha.2 → 1.0.0-alpha.3
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.
- package/README.md +3 -3
- package/docs/assets/search.js +1 -1
- package/docs/classes/Entity.html +2832 -204
- package/docs/classes/View.html +4567 -365
- package/out/common/BaseNode.js +23 -16
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +22 -0
- package/out/concepts/App__.js +77 -15
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Argument__.d.ts +2 -1
- package/out/concepts/Argument__.js +2 -2
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignment__.d.ts +2 -1
- package/out/concepts/Assignment__.js +3 -8
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/Attribute__.js.map +1 -1
- package/out/concepts/BinaryExpression__.d.ts +2 -1
- package/out/concepts/BinaryExpression__.js +5 -5
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +2 -1
- package/out/concepts/BindAttribute__.js +9 -4
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +2 -1
- package/out/concepts/BindDirective__.js +2 -2
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +2 -1
- package/out/concepts/BindEvent__.js +4 -3
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +2 -1
- package/out/concepts/BooleanLiteral__.js +1 -1
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +57 -1
- package/out/concepts/CallFunction__.js +119 -11
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +2 -1
- package/out/concepts/CallInterface__.js +2 -2
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +57 -1
- package/out/concepts/CallLogic__.js +117 -10
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.js +1 -1
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/CompletionProperty__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +120 -0
- package/out/concepts/ConfigGroup__.js +214 -0
- package/out/concepts/ConfigGroup__.js.map +1 -0
- package/out/concepts/ConfigPropertyValue__.d.ts +43 -0
- package/out/concepts/ConfigPropertyValue__.js +103 -0
- package/out/concepts/ConfigPropertyValue__.js.map +1 -0
- package/out/concepts/ConfigProperty__.d.ts +128 -0
- package/out/concepts/ConfigProperty__.js +236 -0
- package/out/concepts/ConfigProperty__.js.map +1 -0
- package/out/concepts/Configuration__.d.ts +120 -0
- package/out/concepts/Configuration__.js +210 -0
- package/out/concepts/Configuration__.js.map +1 -0
- package/out/concepts/Constant__.d.ts +2 -1
- package/out/concepts/Constant__.js +1 -1
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/DataElement__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +2 -1
- package/out/concepts/Destination__.js +4 -3
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +8 -0
- package/out/concepts/EntityIndex__.js +18 -0
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +5 -5
- package/out/concepts/EntityProperty__.js +10 -9
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +30 -26
- package/out/concepts/Entity__.js +44 -36
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +8 -8
- package/out/concepts/Enum__.js +10 -4
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/Event__.js +1 -1
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +35 -33
- package/out/concepts/ForEachStatement__.js +103 -36
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.js +1 -1
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +2 -1
- package/out/concepts/Identifier__.js +15 -1
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/InterfaceParam__.js +1 -1
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +5 -1
- package/out/concepts/Interface__.js +19 -5
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +2 -1
- package/out/concepts/LogicItem__.js +2 -2
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.js +9 -7
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +2 -5
- package/out/concepts/MemberExpression__.js +12 -18
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +121 -126
- package/out/concepts/Module__.js +10 -17
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.js +12 -12
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/NullLiteral__.d.ts +2 -1
- package/out/concepts/NullLiteral__.js +1 -1
- package/out/concepts/NullLiteral__.js.map +1 -1
- package/out/concepts/NumericLiteral__.d.ts +2 -1
- package/out/concepts/NumericLiteral__.js +1 -1
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/Param__.d.ts +1 -1
- package/out/concepts/Param__.js +2 -2
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/Point__.js.map +1 -1
- package/out/concepts/ProcessComponent__.js +2 -2
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +82 -81
- package/out/concepts/ProcessElement__.js +19 -6
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/Process__.d.ts +1 -0
- package/out/concepts/Process__.js +10 -4
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.js +1 -1
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.js +1 -1
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.js +1 -1
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Rect__.js.map +1 -1
- package/out/concepts/Return__.d.ts +1 -1
- package/out/concepts/Return__.js +2 -2
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.d.ts +5 -0
- package/out/concepts/Role__.js +19 -2
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/Slot__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +2 -0
- package/out/concepts/SqlQueryComponent__.js +16 -0
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/Start__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +2 -1
- package/out/concepts/StringLiteral__.js +1 -1
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +1 -1
- package/out/concepts/StructureProperty__.js +1 -1
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +1 -1
- package/out/concepts/Structure__.js +4 -4
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/Theme__.js.map +1 -1
- package/out/concepts/Transactional__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.js +3 -0
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/UnaryExpression__.d.ts +2 -1
- package/out/concepts/UnaryExpression__.js +3 -3
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/Unparsed__.d.ts +2 -1
- package/out/concepts/Unparsed__.js +1 -1
- package/out/concepts/Unparsed__.js.map +1 -1
- package/out/concepts/UseComponent__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +2 -1
- package/out/concepts/ValidationRule__.js +2 -2
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +6 -5
- package/out/concepts/Variable__.js +3 -3
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewComponent__.js +5 -5
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +5 -4
- package/out/concepts/ViewElement__.js +109 -65
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +97 -90
- package/out/concepts/View__.js +153 -118
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/index.js +2 -2
- package/out/concepts/basics/stdlib/index.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +3 -137
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +21 -5
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.validation.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.validation.js +527 -0
- package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -0
- package/out/concepts/index__.d.ts +4 -0
- package/out/concepts/index__.js +4 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/data/Module.d.ts +34 -0
- package/out/data/Module.js +53 -0
- package/out/data/Module.js.map +1 -0
- package/out/generator/compileComponent.d.ts +1 -1
- package/out/generator/genBundleFiles.d.ts +0 -1
- package/out/generator/genBundleFiles.js +1 -1
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.d.ts +35 -0
- package/out/generator/genMetaData.js +78 -0
- package/out/generator/genMetaData.js.map +1 -0
- package/out/generator/index.d.ts +1 -0
- package/out/generator/index.js +1 -0
- package/out/generator/index.js.map +1 -1
- package/out/index.d.ts +2 -2
- package/out/index.js +3 -1
- package/out/index.js.map +1 -1
- package/out/server/createUiTs.d.ts +7 -0
- package/out/server/createUiTs.js +157 -0
- package/out/server/createUiTs.js.map +1 -0
- package/out/server/entity2LogicNamespace.d.ts +9 -1
- package/out/server/entity2LogicNamespace.js +11 -1
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/getExtensionModules.d.ts +3 -0
- package/out/server/getExtensionModules.js +18 -0
- package/out/server/getExtensionModules.js.map +1 -0
- package/out/server/getLogics.js +18 -15
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +3 -2
- package/out/server/getMemberIdentifier.js +47 -15
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +4 -1
- package/out/server/getProcesses.js +16 -7
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/getValidates.js +1 -1
- package/out/server/getValidates.js.map +1 -1
- package/out/server/index.js +1 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +23 -5
- package/out/server/naslServer.js +199 -25
- package/out/server/naslServer.js.map +1 -1
- package/out/server/process2LogicNamespace.d.ts +15 -1
- package/out/server/process2LogicNamespace.js +30 -3
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.js +28 -0
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.d.ts +5 -0
- package/out/service/storage/init.js +60 -52
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCallComponentLogic.js +2 -2
- package/out/templator/genCallComponentLogic.js.map +1 -1
- package/out/templator/genCreateBlock.js +6 -8
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +3 -3
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +4 -4
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +3 -3
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +1 -1
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +2 -2
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.js +1 -1
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +8 -12
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +20 -20
- package/out/templator/utils.js +22 -22
- package/out/templator/utils.js.map +1 -1
- package/package.json +2 -1
- package/src/automate/engine/index.js +37 -3
- package/src/automate/engine/utils.js +68 -64
- package/src/common/BaseNode.ts +24 -17
- package/src/concepts/App__.ts +93 -17
- package/src/concepts/Argument__.ts +4 -2
- package/src/concepts/Assignment__.ts +5 -7
- package/src/concepts/Attribute__.ts +1 -0
- package/src/concepts/BinaryExpression__.ts +7 -5
- package/src/concepts/BindAttribute__.ts +9 -4
- package/src/concepts/BindDirective__.ts +4 -2
- package/src/concepts/BindEvent__.ts +6 -4
- package/src/concepts/BooleanLiteral__.ts +3 -1
- package/src/concepts/CallFunction__.ts +195 -11
- package/src/concepts/CallInterface__.ts +4 -2
- package/src/concepts/CallLogic__.ts +211 -12
- package/src/concepts/CallQueryComponent__.ts +2 -1
- package/src/concepts/Comment__.ts +1 -0
- package/src/concepts/CompletionProperty__.ts +1 -0
- package/src/concepts/ConfigGroup__.ts +290 -0
- package/src/concepts/ConfigPropertyValue__.ts +112 -0
- package/src/concepts/ConfigProperty__.ts +306 -0
- package/src/concepts/Configuration__.ts +286 -0
- package/src/concepts/Constant__.ts +3 -1
- package/src/concepts/DataElement__.ts +1 -0
- package/src/concepts/Destination__.ts +7 -5
- package/src/concepts/End__.ts +1 -0
- package/src/concepts/EntityIndex__.ts +19 -0
- package/src/concepts/EntityProperty__.ts +9 -8
- package/src/concepts/Entity__.ts +66 -59
- package/src/concepts/EnumItem__.ts +1 -0
- package/src/concepts/Enum__.ts +32 -12
- package/src/concepts/Event__.ts +2 -1
- package/src/concepts/ForEachStatement__.ts +115 -69
- package/src/concepts/Function__.ts +2 -1
- package/src/concepts/Identifier__.ts +18 -1
- package/src/concepts/IfStatement__.ts +1 -0
- package/src/concepts/InterfaceParam__.ts +2 -1
- package/src/concepts/Interface__.ts +21 -5
- package/src/concepts/JSBlock__.ts +1 -0
- package/src/concepts/LogicItem__.ts +9 -40
- package/src/concepts/Logic__.ts +48 -9
- package/src/concepts/MemberExpression__.ts +14 -17
- package/src/concepts/Module__.ts +158 -139
- package/src/concepts/Namespace__.ts +13 -12
- package/src/concepts/NullLiteral__.ts +3 -1
- package/src/concepts/NumericLiteral__.ts +3 -1
- package/src/concepts/Param__.ts +3 -2
- package/src/concepts/Point__.ts +1 -0
- package/src/concepts/ProcessComponent__.ts +3 -2
- package/src/concepts/ProcessElement__.ts +102 -107
- package/src/concepts/ProcessOutcome__.ts +1 -0
- package/src/concepts/Process__.ts +12 -4
- package/src/concepts/QueryAggregateExpression__.ts +1 -0
- package/src/concepts/QueryFieldExpression__.ts +2 -1
- package/src/concepts/QueryFromExpression__.ts +1 -0
- package/src/concepts/QueryGroupByExpression__.ts +1 -0
- package/src/concepts/QueryJoinExpression__.ts +2 -1
- package/src/concepts/QueryLimitExpression__.ts +1 -0
- package/src/concepts/QueryOrderByExpression__.ts +1 -0
- package/src/concepts/QuerySelectExpression__.ts +2 -1
- package/src/concepts/Rect__.ts +1 -0
- package/src/concepts/Return__.ts +3 -2
- package/src/concepts/Role__.ts +19 -2
- package/src/concepts/Slot__.ts +1 -0
- package/src/concepts/SqlQueryComponent__.ts +11 -1
- package/src/concepts/Start__.ts +1 -0
- package/src/concepts/StringLiteral__.ts +3 -1
- package/src/concepts/StructureProperty__.ts +2 -1
- package/src/concepts/Structure__.ts +5 -4
- package/src/concepts/SwitchCase__.ts +1 -0
- package/src/concepts/SwitchStatement__.ts +1 -0
- package/src/concepts/Theme__.ts +1 -0
- package/src/concepts/Transactional__.ts +1 -0
- package/src/concepts/TypeAnnotation__.ts +4 -0
- package/src/concepts/TypeParam__.ts +1 -0
- package/src/concepts/UnaryExpression__.ts +6 -3
- package/src/concepts/Unparsed__.ts +3 -1
- package/src/concepts/UseComponent__.ts +1 -0
- package/src/concepts/ValidationRule__.ts +5 -2
- package/src/concepts/Variable__.ts +12 -6
- package/src/concepts/ViewComponent__.ts +6 -5
- package/src/concepts/ViewElement__.ts +109 -80
- package/src/concepts/View__.ts +245 -206
- package/src/concepts/WhileStatement__.ts +1 -0
- package/src/concepts/basics/stdlib/index.ts +2 -2
- package/src/concepts/basics/stdlib/nasl.ui.ts +3 -137
- package/src/concepts/basics/stdlib/nasl.util.ts +21 -5
- package/src/concepts/basics/stdlib/{nasl.validate.ts → nasl.validation.ts} +28 -28
- package/src/concepts/index__.ts +4 -0
- package/src/generator/compileComponent.ts +1 -1
- package/src/generator/genBundleFiles.ts +1 -2
- package/src/generator/genMetaData.ts +111 -0
- package/src/generator/index.ts +1 -0
- package/src/index.ts +2 -2
- package/src/server/createUiTs.ts +153 -0
- package/src/server/entity2LogicNamespace.ts +17 -1
- package/src/server/getExtensionModules.ts +13 -0
- package/src/server/getLogics.ts +19 -18
- package/src/server/getMemberIdentifier.ts +60 -19
- package/src/server/getProcesses.ts +15 -8
- package/src/server/getValidates.ts +1 -1
- package/src/server/index.ts +2 -1
- package/src/server/naslServer.ts +204 -24
- package/src/server/process2LogicNamespace.ts +44 -3
- package/src/server/translator.ts +121 -97
- package/src/service/config/api.js +32 -0
- package/src/service/config/index.js +6 -0
- package/src/service/creator/index.js +2 -2
- package/src/service/logic/checktypeSocket.js +49 -0
- package/src/service/modules/api.js +20 -0
- package/src/service/modules/index.js +6 -0
- package/src/service/storage/init.ts +62 -54
- package/src/templator/genCallComponentLogic.ts +2 -2
- package/src/templator/genCreateBlock.ts +19 -25
- package/src/templator/genCurdEditMultipleKeyBlock.ts +3 -3
- package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
- package/src/templator/genEditTableBlock.ts +3 -3
- package/src/templator/genGetBlock.ts +1 -1
- package/src/templator/genListViewBlock.ts +2 -2
- package/src/templator/genSelectBlock.ts +1 -1
- package/src/templator/genUpdateBlock.ts +19 -25
- package/src/templator/utils.ts +25 -153
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
2
3
|
//================================================================================
|
|
3
4
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
4
5
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -7,6 +8,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
7
8
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
8
9
|
|
|
9
10
|
import * as utils from '../utils';
|
|
11
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
10
12
|
import BaseNode from '../common/BaseNode';
|
|
11
13
|
import classMap from '../common/classMap';
|
|
12
14
|
import LogicItem from './LogicItem__';
|
|
@@ -140,10 +142,10 @@ export class Argument extends LogicItem {
|
|
|
140
142
|
});
|
|
141
143
|
}
|
|
142
144
|
|
|
143
|
-
toVue(
|
|
145
|
+
toVue(options?: ElementToVueOptions) {
|
|
144
146
|
let code = this.spread ? '...' : '';
|
|
145
147
|
if (this.expression) {
|
|
146
|
-
code += this.expression.toVue(
|
|
148
|
+
code += this.expression.toVue(options);
|
|
147
149
|
} else {
|
|
148
150
|
code += '';
|
|
149
151
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
2
|
import Identifier from './Identifier__';
|
|
3
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
3
4
|
|
|
4
5
|
//================================================================================
|
|
5
6
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
@@ -9,6 +10,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
9
10
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
10
11
|
|
|
11
12
|
import * as utils from '../utils';
|
|
13
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
12
14
|
import BaseNode from '../common/BaseNode';
|
|
13
15
|
import classMap from '../common/classMap';
|
|
14
16
|
import LogicItem from './LogicItem__';
|
|
@@ -181,11 +183,11 @@ export class Assignment extends LogicItem {
|
|
|
181
183
|
};
|
|
182
184
|
}
|
|
183
185
|
|
|
184
|
-
toVue(
|
|
186
|
+
toVue(options?: ElementToVueOptions) {
|
|
185
187
|
let code = '';
|
|
186
|
-
code += this.left ? this.left.toVue(
|
|
188
|
+
code += this.left ? this.left.toVue(options) : '';
|
|
187
189
|
code += ' = ';
|
|
188
|
-
code += this.right ? this.right.toVue(
|
|
190
|
+
code += this.right ? this.right.toVue(options) : '';
|
|
189
191
|
code += ';';
|
|
190
192
|
return code;
|
|
191
193
|
}
|
|
@@ -215,10 +217,6 @@ export class Assignment extends LogicItem {
|
|
|
215
217
|
code += this.left ? this.left.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__LEFT__';
|
|
216
218
|
code += ' = ';
|
|
217
219
|
|
|
218
|
-
// 因为右侧枚举要赋值就得new 一下;
|
|
219
|
-
if (this.right && this.right instanceof Identifier && this.right.namespace && this.right.namespace.endsWith('enums')) {
|
|
220
|
-
code += 'new ';
|
|
221
|
-
}
|
|
222
220
|
code += this.right ? this.right.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__RIGHT__';
|
|
223
221
|
code += ';';
|
|
224
222
|
return code;
|
|
@@ -6,6 +6,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
6
6
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
7
7
|
|
|
8
8
|
import * as utils from '../utils';
|
|
9
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
9
10
|
import BaseNode from '../common/BaseNode';
|
|
10
11
|
import classMap from '../common/classMap';
|
|
11
12
|
import TypeAnnotation from './TypeAnnotation__';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
2
3
|
|
|
3
4
|
//================================================================================
|
|
4
5
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
@@ -8,6 +9,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
8
9
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
9
10
|
|
|
10
11
|
import * as utils from '../utils';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
13
|
import BaseNode from '../common/BaseNode';
|
|
12
14
|
import classMap from '../common/classMap';
|
|
13
15
|
import LogicItem from './LogicItem__';
|
|
@@ -171,7 +173,7 @@ export class BinaryExpression extends LogicItem {
|
|
|
171
173
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
172
174
|
//================================================================================
|
|
173
175
|
|
|
174
|
-
toVue(
|
|
176
|
+
toVue(options?: ElementToVueOptions) {
|
|
175
177
|
if (['startwith', 'endwith'].includes(this.operator)) {
|
|
176
178
|
const operatorMap = {
|
|
177
179
|
startwith: 'startsWith',
|
|
@@ -179,16 +181,16 @@ export class BinaryExpression extends LogicItem {
|
|
|
179
181
|
};
|
|
180
182
|
const fnName = operatorMap[this.operator as keyof typeof operatorMap];
|
|
181
183
|
let code = '';
|
|
182
|
-
code += this.left?.toVue ? this.left.toVue(
|
|
184
|
+
code += this.left?.toVue ? this.left.toVue(options) : '';
|
|
183
185
|
code += '.' + fnName + '(';
|
|
184
|
-
code += this.right?.toVue ? this.right.toVue(
|
|
186
|
+
code += this.right?.toVue ? this.right.toVue(options) : '';
|
|
185
187
|
code += ')';
|
|
186
188
|
return code;
|
|
187
189
|
}
|
|
188
190
|
let code = '';
|
|
189
|
-
code += this.left?.toVue ? this.left.toVue(
|
|
191
|
+
code += this.left?.toVue ? this.left.toVue() : '';
|
|
190
192
|
code += ` ${this.operator} `;
|
|
191
|
-
code += this.right?.toVue ? this.right.toVue(
|
|
193
|
+
code += this.right?.toVue ? this.right.toVue() : '';
|
|
192
194
|
return code;
|
|
193
195
|
}
|
|
194
196
|
|
|
@@ -9,6 +9,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
9
9
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
10
10
|
|
|
11
11
|
import * as utils from '../utils';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
12
13
|
import BaseNode from '../common/BaseNode';
|
|
13
14
|
import classMap from '../common/classMap';
|
|
14
15
|
import LogicItem from './LogicItem__';
|
|
@@ -197,7 +198,7 @@ export class BindAttribute extends BaseNode {
|
|
|
197
198
|
|
|
198
199
|
getValidationRuleExistingNames(excludedList: Array<ValidationRule> = []) {
|
|
199
200
|
const excludedSet = new Set(excludedList);
|
|
200
|
-
return this.rules.filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
201
|
+
return (this.rules || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
|
|
201
202
|
}
|
|
202
203
|
getValidationRuleUniqueName(name = 'validationRule1') {
|
|
203
204
|
return utils.unique(name, this.getValidationRuleExistingNames());
|
|
@@ -462,16 +463,20 @@ export class BindAttribute extends BaseNode {
|
|
|
462
463
|
/**
|
|
463
464
|
* 转换成 Vue 的模板格式
|
|
464
465
|
*/
|
|
465
|
-
toVue() {
|
|
466
|
+
toVue(options?: ElementToVueOptions) {
|
|
466
467
|
let value = this.value;
|
|
467
468
|
if (this.type === 'dynamic' && this.expression) {
|
|
468
|
-
value = this.expression.toVue();
|
|
469
|
+
value = this.expression.toVue(options);
|
|
469
470
|
}
|
|
470
471
|
if (value !== undefined && value !== null && typeof value === 'string') {
|
|
471
472
|
value = value.replace(/"/g, "'");
|
|
472
473
|
}
|
|
473
474
|
if (this.name === 'destination' && this.destination) {
|
|
474
|
-
return this.destination.toVue();
|
|
475
|
+
return this.destination.toVue(options);
|
|
476
|
+
} else if (this.name === 'rules' && this.rules) {
|
|
477
|
+
const ruleStrs = this.rules.map((rule) => rule.toVue());
|
|
478
|
+
value = ruleStrs.join(' | ');
|
|
479
|
+
return value !== undefined && value !== null ? `${this.name}="${value}"` : '';
|
|
475
480
|
} else if (this.type === 'string') {
|
|
476
481
|
return value !== undefined && value !== null ? `${this.name}="${value}"` : '';
|
|
477
482
|
} else {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
1
2
|
//================================================================================
|
|
2
3
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
3
4
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -6,6 +7,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
6
7
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
7
8
|
|
|
8
9
|
import * as utils from '../utils';
|
|
10
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
9
11
|
import BaseNode from '../common/BaseNode';
|
|
10
12
|
import classMap from '../common/classMap';
|
|
11
13
|
import LogicItem from './LogicItem__';
|
|
@@ -204,7 +206,7 @@ export class BindDirective extends BaseNode {
|
|
|
204
206
|
/**
|
|
205
207
|
* 转换成 Vue 的模板格式
|
|
206
208
|
*/
|
|
207
|
-
toVue() {
|
|
209
|
+
toVue(options?: ElementToVueOptions) {
|
|
208
210
|
let modifiersString = '';
|
|
209
211
|
Object.keys(this.modifiers || {}).forEach((key) => {
|
|
210
212
|
const value = (this.modifiers as any)[key];
|
|
@@ -214,7 +216,7 @@ export class BindDirective extends BaseNode {
|
|
|
214
216
|
// eslint-disable-next-line no-nested-ternary
|
|
215
217
|
let value = this.type !== 'string' ? this.value : this.value ? `'${this.value}'` : '';
|
|
216
218
|
if (this.expression) {
|
|
217
|
-
value = this.expression.toVue();
|
|
219
|
+
value = this.expression.toVue(options);
|
|
218
220
|
if (this.expression.concept === 'StringLiteral') {
|
|
219
221
|
value = `'${value}'`;
|
|
220
222
|
}
|
|
@@ -3,7 +3,7 @@ import Logic from './Logic__';
|
|
|
3
3
|
import LogicItem from './LogicItem__';
|
|
4
4
|
import Namespace from './Namespace__';
|
|
5
5
|
import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState, embeddedTSEmitter } from '../translator';
|
|
6
|
-
|
|
6
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
7
7
|
//================================================================================
|
|
8
8
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
9
9
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -12,6 +12,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
12
12
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
13
13
|
|
|
14
14
|
import * as utils from '../utils';
|
|
15
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
15
16
|
import BaseNode from '../common/BaseNode';
|
|
16
17
|
import classMap from '../common/classMap';
|
|
17
18
|
import Argument from './Argument__';
|
|
@@ -304,7 +305,8 @@ export class BindEvent extends BaseNode {
|
|
|
304
305
|
if (/^\d/.test(tsName)) {
|
|
305
306
|
tsName = '$' + tsName;
|
|
306
307
|
}
|
|
307
|
-
|
|
308
|
+
// 匹配所有特殊字符都转为_
|
|
309
|
+
tsName = tsName.replace(/\W/g, '_');
|
|
308
310
|
return tsName;
|
|
309
311
|
}
|
|
310
312
|
return '';
|
|
@@ -376,7 +378,7 @@ export class BindEvent extends BaseNode {
|
|
|
376
378
|
/**
|
|
377
379
|
* 转换成 Vue 的模板格式
|
|
378
380
|
*/
|
|
379
|
-
toVue() {
|
|
381
|
+
toVue(options?: ElementToVueOptions) {
|
|
380
382
|
const calleeName = this.calleeName;
|
|
381
383
|
let code = '';
|
|
382
384
|
if (calleeName) {
|
|
@@ -390,8 +392,8 @@ export class BindEvent extends BaseNode {
|
|
|
390
392
|
});
|
|
391
393
|
code += ')';
|
|
392
394
|
}
|
|
395
|
+
code += `"`;
|
|
393
396
|
}
|
|
394
|
-
code += `"`;
|
|
395
397
|
return code;
|
|
396
398
|
}
|
|
397
399
|
//================================================================================
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
2
3
|
//================================================================================
|
|
3
4
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
4
5
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -7,6 +8,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
7
8
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
8
9
|
|
|
9
10
|
import * as utils from '../utils';
|
|
11
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
10
12
|
import BaseNode from '../common/BaseNode';
|
|
11
13
|
import classMap from '../common/classMap';
|
|
12
14
|
import LogicItem from './LogicItem__';
|
|
@@ -54,7 +56,7 @@ export class BooleanLiteral extends LogicItem {
|
|
|
54
56
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
55
57
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
56
58
|
//================================================================================
|
|
57
|
-
toVue(): string {
|
|
59
|
+
toVue(options?: ElementToVueOptions): string {
|
|
58
60
|
return this.value;
|
|
59
61
|
}
|
|
60
62
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
2
|
import Function from './Function__';
|
|
3
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
3
4
|
//================================================================================
|
|
4
5
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
5
6
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -8,8 +9,10 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
8
9
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
9
10
|
|
|
10
11
|
import * as utils from '../utils';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
13
|
import BaseNode from '../common/BaseNode';
|
|
12
14
|
import classMap from '../common/classMap';
|
|
15
|
+
import TypeAnnotation from './TypeAnnotation__';
|
|
13
16
|
import Argument from './Argument__';
|
|
14
17
|
import LogicItem from './LogicItem__';
|
|
15
18
|
|
|
@@ -48,6 +51,12 @@ export class CallFunction extends LogicItem {
|
|
|
48
51
|
@property()
|
|
49
52
|
shortcut: boolean = undefined;
|
|
50
53
|
|
|
54
|
+
/**
|
|
55
|
+
* 类型参数
|
|
56
|
+
*/
|
|
57
|
+
@property('TypeAnnotation')
|
|
58
|
+
typeArguments?: Array<TypeAnnotation> = null;
|
|
59
|
+
|
|
51
60
|
/**
|
|
52
61
|
* 实际参数
|
|
53
62
|
*/
|
|
@@ -76,6 +85,113 @@ export class CallFunction extends LogicItem {
|
|
|
76
85
|
|
|
77
86
|
|
|
78
87
|
|
|
88
|
+
/**
|
|
89
|
+
* 插入类型标注
|
|
90
|
+
* @internal
|
|
91
|
+
* @param typeAnnotationOptions 类型标注参数
|
|
92
|
+
*/
|
|
93
|
+
_insertTypeAnnotationAt(typeAnnotationOptions: Partial<TypeAnnotation>, index: number): TypeAnnotation;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* 插入类型标注
|
|
97
|
+
* @internal
|
|
98
|
+
* @param typeAnnotation 已有的类型标注实例
|
|
99
|
+
*/
|
|
100
|
+
_insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
|
|
101
|
+
|
|
102
|
+
_insertTypeAnnotationAt(options: Partial<TypeAnnotation> | TypeAnnotation, index: number) {
|
|
103
|
+
const typeAnnotationOptions: any = {};
|
|
104
|
+
const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
|
|
105
|
+
let typeAnnotation: TypeAnnotation;
|
|
106
|
+
if (options instanceof TypeAnnotation) {
|
|
107
|
+
options.delete(); // 同一实例不支持多处存在
|
|
108
|
+
typeAnnotation = options;
|
|
109
|
+
Object.assign(typeAnnotation, relationOptions);
|
|
110
|
+
} else {
|
|
111
|
+
typeAnnotation = TypeAnnotation.from({
|
|
112
|
+
...typeAnnotationOptions,
|
|
113
|
+
...options,
|
|
114
|
+
}, this, 'typeArguments');
|
|
115
|
+
}
|
|
116
|
+
this.typeArguments.splice(index, 0, typeAnnotation);
|
|
117
|
+
return typeAnnotation;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 插入类型标注
|
|
124
|
+
* @param typeAnnotationOptions 类型标注参数
|
|
125
|
+
*/
|
|
126
|
+
insertTypeAnnotationAt(typeAnnotationOptions: Partial<TypeAnnotation>, index: number): TypeAnnotation;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* 插入类型标注
|
|
130
|
+
* @param typeAnnotation 已有的类型标注实例
|
|
131
|
+
*/
|
|
132
|
+
insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
|
|
133
|
+
|
|
134
|
+
insertTypeAnnotationAt(options: Partial<TypeAnnotation> | TypeAnnotation, index: number) {
|
|
135
|
+
const node = this._insertTypeAnnotationAt(options as any, index);
|
|
136
|
+
node.create({
|
|
137
|
+
index,
|
|
138
|
+
parentNode: this,
|
|
139
|
+
parentKey: 'typeArguments',
|
|
140
|
+
});
|
|
141
|
+
return node;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* 添加类型标注
|
|
148
|
+
* @internal
|
|
149
|
+
* @param typeAnnotationOptions 类型标注参数
|
|
150
|
+
*/
|
|
151
|
+
_addTypeAnnotation(typeAnnotationOptions: Partial<TypeAnnotation>): TypeAnnotation;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* 添加类型标注
|
|
155
|
+
* @internal
|
|
156
|
+
* @param typeAnnotation 已有的类型标注实例
|
|
157
|
+
*/
|
|
158
|
+
_addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
|
|
159
|
+
|
|
160
|
+
_addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
|
|
161
|
+
const index = this.typeArguments.length;
|
|
162
|
+
return this._insertTypeAnnotationAt(options as any, index);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 添加类型标注
|
|
169
|
+
* @param typeAnnotationOptions 类型标注参数
|
|
170
|
+
*/
|
|
171
|
+
addTypeAnnotation(typeAnnotationOptions: Partial<TypeAnnotation>): TypeAnnotation;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* 添加类型标注
|
|
175
|
+
* @param typeAnnotation 已有的类型标注实例
|
|
176
|
+
*/
|
|
177
|
+
addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
|
|
178
|
+
|
|
179
|
+
addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
|
|
180
|
+
const node = this._addTypeAnnotation(options as any);
|
|
181
|
+
const index = this.typeArguments.length;
|
|
182
|
+
node.create({
|
|
183
|
+
index,
|
|
184
|
+
parentNode: this,
|
|
185
|
+
parentKey: 'typeArguments',
|
|
186
|
+
});
|
|
187
|
+
return node;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
79
195
|
/**
|
|
80
196
|
* 插入实际参数
|
|
81
197
|
* @internal
|
|
@@ -181,6 +297,42 @@ export class CallFunction extends LogicItem {
|
|
|
181
297
|
|
|
182
298
|
|
|
183
299
|
|
|
300
|
+
/**
|
|
301
|
+
* 删除类型标注
|
|
302
|
+
* @param typeAnnotation 已有的类型标注实例
|
|
303
|
+
*/
|
|
304
|
+
removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
|
|
305
|
+
|
|
306
|
+
removeTypeAnnotation(options: TypeAnnotation) {
|
|
307
|
+
let typeAnnotation: TypeAnnotation = options;
|
|
308
|
+
return typeAnnotation.delete();
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
__removeTypeAnnotation(typeAnnotation: TypeAnnotation) {
|
|
312
|
+
const parentKey = typeAnnotation.parentKey;
|
|
313
|
+
const params: Params = {
|
|
314
|
+
parentNode: this,
|
|
315
|
+
parentKey,
|
|
316
|
+
index: -1,
|
|
317
|
+
object: null,
|
|
318
|
+
oldObject: typeAnnotation,
|
|
319
|
+
};
|
|
320
|
+
if (parentKey) {
|
|
321
|
+
params.parentKey = parentKey;
|
|
322
|
+
if (Array.isArray((this as any)[parentKey])) {
|
|
323
|
+
const index = (this as any)[parentKey].indexOf(typeAnnotation);
|
|
324
|
+
~index && (this as any)[parentKey].splice(index, 1);
|
|
325
|
+
params.index = index;
|
|
326
|
+
} else if ((this as any)[parentKey] === typeAnnotation) {
|
|
327
|
+
params.index = 0;
|
|
328
|
+
(this as any)[parentKey] = undefined;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return params;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
184
336
|
/**
|
|
185
337
|
* 删除实际参数
|
|
186
338
|
* @param argument 已有的实际参数实例
|
|
@@ -219,11 +371,11 @@ export class CallFunction extends LogicItem {
|
|
|
219
371
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
220
372
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
221
373
|
//================================================================================
|
|
222
|
-
toVue(): string {
|
|
374
|
+
toVue(options?: ElementToVueOptions): string {
|
|
223
375
|
let code = `$utils['${this.calleeName}']`;
|
|
224
376
|
code += '(';
|
|
225
377
|
this.arguments.forEach((arg, index) => {
|
|
226
|
-
code += arg.toVue();
|
|
378
|
+
code += arg.toVue(options);
|
|
227
379
|
if (index !== this.arguments.length - 1)
|
|
228
380
|
code += ', ';
|
|
229
381
|
});
|
|
@@ -256,7 +408,7 @@ export class CallFunction extends LogicItem {
|
|
|
256
408
|
}
|
|
257
409
|
|
|
258
410
|
get calleeKey(): string {
|
|
259
|
-
return `${this.calleeNamespace}
|
|
411
|
+
return this.calleeName ? `${this.calleeNamespace ? this.calleeNamespace + '.' : ''}${this.calleeName}` : '__IDENTIFIER__';
|
|
260
412
|
}
|
|
261
413
|
|
|
262
414
|
_setCallee(func: Function) {
|
|
@@ -279,23 +431,55 @@ export class CallFunction extends LogicItem {
|
|
|
279
431
|
Object.assign(argument, relationOptions);
|
|
280
432
|
return argument;
|
|
281
433
|
});
|
|
434
|
+
let typeArguments = null;
|
|
435
|
+
if(func.typeParams) {
|
|
436
|
+
typeArguments = func.typeParams.map(() => {
|
|
437
|
+
const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
|
|
438
|
+
const typeArgu = new TypeAnnotation();
|
|
439
|
+
Object.assign(typeArgu, relationOptions);
|
|
440
|
+
return typeArgu;
|
|
441
|
+
})
|
|
442
|
+
}
|
|
282
443
|
this.update({
|
|
283
444
|
calleeNamespace,
|
|
284
445
|
calleeName,
|
|
285
446
|
arguments: params,
|
|
447
|
+
typeArguments
|
|
286
448
|
});
|
|
287
449
|
}
|
|
288
450
|
|
|
289
451
|
@withSourceMap()
|
|
290
452
|
toEmbeddedTS(state?: TranslatorState): string {
|
|
291
|
-
let code =
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
453
|
+
let code = '';
|
|
454
|
+
const calleeKey = this.calleeKey;
|
|
455
|
+
if (calleeKey === 'nasl.util.Convert') {
|
|
456
|
+
// nasl.util.Convert(variable1)<nasl.core.String>();
|
|
457
|
+
// 单独处理
|
|
458
|
+
|
|
459
|
+
code = calleeKey;
|
|
460
|
+
code += '(';
|
|
461
|
+
this.arguments.forEach((arg, index) => {
|
|
462
|
+
code += arg.toEmbeddedTS(shiftState(state, code));
|
|
463
|
+
if (index !== this.arguments.length - 1)
|
|
464
|
+
code += ', ';
|
|
465
|
+
});
|
|
466
|
+
code += ')';
|
|
467
|
+
// 如果有内容
|
|
468
|
+
const typeAnnotation = this.typeArguments[0];
|
|
469
|
+
if (typeAnnotation.typeNamespace && typeAnnotation.typeName) {
|
|
470
|
+
code += `<${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}>()`;
|
|
471
|
+
}
|
|
472
|
+
code += '\n';
|
|
473
|
+
} else {
|
|
474
|
+
code = this.calleeKey;
|
|
475
|
+
code += '(';
|
|
476
|
+
this.arguments.forEach((arg, index) => {
|
|
477
|
+
code += arg.toEmbeddedTS(shiftState(state, code));
|
|
478
|
+
if (index !== this.arguments.length - 1)
|
|
479
|
+
code += ', ';
|
|
480
|
+
});
|
|
481
|
+
code += ')\n';
|
|
482
|
+
}
|
|
299
483
|
return code;
|
|
300
484
|
}
|
|
301
485
|
//================================================================================
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TranslatorState, shiftState, withSourceMap } from '../translator';
|
|
2
2
|
import Interface from './Interface__';
|
|
3
|
+
import { ElementToVueOptions } from './ViewElement__';
|
|
3
4
|
//================================================================================
|
|
4
5
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
5
6
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
@@ -8,6 +9,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
|
|
|
8
9
|
import { concept, excludedInJSON, property } from '../decorators';
|
|
9
10
|
|
|
10
11
|
import * as utils from '../utils';
|
|
12
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
11
13
|
import BaseNode from '../common/BaseNode';
|
|
12
14
|
import classMap from '../common/classMap';
|
|
13
15
|
import Argument from './Argument__';
|
|
@@ -219,11 +221,11 @@ export class CallInterface extends LogicItem {
|
|
|
219
221
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
220
222
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
221
223
|
//================================================================================
|
|
222
|
-
toVue(): string {
|
|
224
|
+
toVue(options?: ElementToVueOptions): string {
|
|
223
225
|
let code = this.calleeName;
|
|
224
226
|
code += '(';
|
|
225
227
|
this.arguments.forEach((arg, index) => {
|
|
226
|
-
code += arg.toVue();
|
|
228
|
+
code += arg.toVue(options);
|
|
227
229
|
if (index !== this.arguments.length - 1)
|
|
228
230
|
code += ', ';
|
|
229
231
|
});
|