@lcap/nasl 3.3.7-beta.3 → 3.3.7-beta.5
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/.nyc_output/1319679b-f102-43d6-a642-6d9e055d1730.json +1 -0
- package/.nyc_output/processinfo/1319679b-f102-43d6-a642-6d9e055d1730.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/coverage/index.html +121 -121
- package/coverage/src/automate/engine/index.html +1 -1
- package/coverage/src/automate/engine/utils.js.html +1 -1
- package/coverage/src/bak/index.html +19 -19
- package/coverage/src/bak/translator.js.html +293 -59
- package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/CallbackNode.ts.html +1 -1
- package/coverage/src/breakpoint/generator/index.html +1 -1
- package/coverage/src/breakpoint/generator/index.ts.html +1 -1
- package/coverage/src/breakpoint/index.html +1 -1
- package/coverage/src/breakpoint/index.ts.html +1 -1
- package/coverage/src/breakpoint/shared/constants.ts.html +5 -2
- package/coverage/src/breakpoint/shared/index.html +12 -12
- package/coverage/src/breakpoint/shared/index.ts.html +1 -1
- package/coverage/src/breakpoint/shared/operations.ts.html +3 -3
- package/coverage/src/breakpoint/shared/socket.ts.html +1 -1
- package/coverage/src/breakpoint/shared/utils.ts.html +29 -80
- package/coverage/src/breakpoint/store/core.ts.html +4 -4
- package/coverage/src/breakpoint/store/dock.ts.html +1 -1
- package/coverage/src/breakpoint/store/index.html +1 -1
- package/coverage/src/breakpoint/store/index.ts.html +1 -1
- package/coverage/src/common/BaseNode.ts.html +155 -191
- package/coverage/src/common/Command.ts.html +9 -6
- package/coverage/src/common/EventEmitter.ts.html +14 -29
- package/coverage/src/common/Messager.ts.html +1 -1
- package/coverage/src/common/asyncFuncMap.ts.html +1 -1
- package/coverage/src/common/index.html +32 -32
- package/coverage/src/common/index.ts.html +1 -1
- package/coverage/src/common/utils.ts.html +1 -1
- package/coverage/src/concepts/Abort__.ts.html +2 -2
- package/coverage/src/concepts/AbstractInterface__.ts.html +2 -2
- package/coverage/src/concepts/Anchor__.ts.html +3 -3
- package/coverage/src/concepts/AnonymousFunction__.ts.html +82 -28
- package/coverage/src/concepts/App__.ts.html +481 -184
- package/coverage/src/concepts/Argument__.ts.html +3 -3
- package/coverage/src/concepts/Assignee__.ts.html +3 -3
- package/coverage/src/concepts/AssignmentLine__.ts.html +2 -2
- package/coverage/src/concepts/Assignment__.ts.html +3 -3
- package/coverage/src/concepts/Attribute__.ts.html +2 -2
- package/coverage/src/concepts/AuthInterface__.ts.html +2 -2
- package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +3 -3
- package/coverage/src/concepts/AuthLogic__.ts.html +2 -2
- package/coverage/src/concepts/BackendVariable__.ts.html +35 -11
- package/coverage/src/concepts/Backend__.ts.html +3 -3
- package/coverage/src/concepts/BatchAssignment__.ts.html +3 -3
- package/coverage/src/concepts/BinaryExpression__.ts.html +2 -2
- package/coverage/src/concepts/BindAttribute__.ts.html +34 -16
- package/coverage/src/concepts/BindDirective__.ts.html +65 -20
- package/coverage/src/concepts/BindEvent__.ts.html +108 -24
- package/coverage/src/concepts/BindStyle__.ts.html +3 -3
- package/coverage/src/concepts/Block__.ts.html +3 -3
- package/coverage/src/concepts/BooleanLiteral__.ts.html +2 -2
- package/coverage/src/concepts/BusinessComponent__.ts.html +8164 -0
- package/coverage/src/concepts/BusinessLogic__.ts.html +1213 -0
- package/coverage/src/concepts/CallAuthInterface__.ts.html +3 -3
- package/coverage/src/concepts/CallConnector__.ts.html +2 -2
- package/coverage/src/concepts/CallEvent__.ts.html +1138 -0
- package/coverage/src/concepts/CallFunction__.ts.html +35 -41
- package/coverage/src/concepts/CallInterface__.ts.html +3 -3
- package/coverage/src/concepts/CallLogic__.ts.html +68 -26
- package/coverage/src/concepts/CallQueryComponent__.ts.html +3 -3
- package/coverage/src/concepts/Comment__.ts.html +2 -2
- package/coverage/src/concepts/CompletionProperty__.ts.html +2 -2
- package/coverage/src/concepts/ConfigGroup__.ts.html +3 -3
- package/coverage/src/concepts/ConfigPropertyValue__.ts.html +2 -2
- package/coverage/src/concepts/ConfigProperty__.ts.html +3 -3
- package/coverage/src/concepts/Configuration__.ts.html +3 -3
- package/coverage/src/concepts/Connection__.ts.html +3 -3
- package/coverage/src/concepts/ConnectorTrigger__.ts.html +2 -2
- package/coverage/src/concepts/Connector__.ts.html +3 -3
- package/coverage/src/concepts/Constant__.ts.html +3 -3
- package/coverage/src/concepts/CountersignPolicy__.ts.html +2 -2
- package/coverage/src/concepts/DataSource__.ts.html +3 -3
- package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +2 -2
- package/coverage/src/concepts/DefaultValue__.ts.html +3 -3
- package/coverage/src/concepts/Destination__.ts.html +18 -12
- package/coverage/src/concepts/End__.ts.html +8 -5
- package/coverage/src/concepts/EntityIndex__.ts.html +2 -2
- package/coverage/src/concepts/EntityProperty__.ts.html +3 -3
- package/coverage/src/concepts/Entity__.ts.html +10 -4
- package/coverage/src/concepts/EnumItem__.ts.html +2 -2
- package/coverage/src/concepts/Enum__.ts.html +3 -3
- package/coverage/src/concepts/Event__.ts.html +222 -12
- package/coverage/src/concepts/ExternalDestination__.ts.html +3 -3
- package/coverage/src/concepts/ForEachStatement__.ts.html +3 -3
- package/coverage/src/concepts/FrontendLibrary__.ts.html +3 -3
- package/coverage/src/concepts/FrontendType__.ts.html +2842 -0
- package/coverage/src/concepts/FrontendVariable__.ts.html +2 -2
- package/coverage/src/concepts/Frontend__.ts.html +16 -760
- package/coverage/src/concepts/Function__.ts.html +3 -3
- package/coverage/src/concepts/I18nInfo__.ts.html +2 -2
- package/coverage/src/concepts/Identifier__.ts.html +72 -24
- package/coverage/src/concepts/IfStatement__.ts.html +3 -3
- package/coverage/src/concepts/ImportedInterface__.ts.html +2 -2
- package/coverage/src/concepts/Integration__.ts.html +3 -3
- package/coverage/src/concepts/InterfaceParam__.ts.html +3 -3
- package/coverage/src/concepts/Interface__.ts.html +3 -3
- package/coverage/src/concepts/JSBlock__.ts.html +2 -2
- package/coverage/src/concepts/JavaLogic__.ts.html +2 -2
- package/coverage/src/concepts/LogicItem__.ts.html +6 -3
- package/coverage/src/concepts/Logic__.ts.html +70 -31
- package/coverage/src/concepts/MatchCase__.ts.html +3 -3
- package/coverage/src/concepts/Match__.ts.html +3 -3
- package/coverage/src/concepts/MemberExpression__.ts.html +3 -3
- package/coverage/src/concepts/MetadataType__.ts.html +3 -3
- package/coverage/src/concepts/MicroApp__.ts.html +2 -2
- package/coverage/src/concepts/Module__.ts.html +20 -20
- package/coverage/src/concepts/MsgTriggerEvent__.ts.html +3 -3
- package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +3 -3
- package/coverage/src/concepts/MultiApprovalPolicy__.ts.html +2 -2
- package/coverage/src/concepts/Namespace__.ts.html +3 -3
- package/coverage/src/concepts/NewComposite__.ts.html +7 -13
- package/coverage/src/concepts/NewList__.ts.html +3 -3
- package/coverage/src/concepts/NewMap__.ts.html +3 -3
- package/coverage/src/concepts/New__.ts.html +2 -2
- package/coverage/src/concepts/NullLiteral__.ts.html +2 -2
- package/coverage/src/concepts/NumericLiteral__.ts.html +2 -2
- package/coverage/src/concepts/OqlQueryComponent__.ts.html +2 -2
- package/coverage/src/concepts/OverriddenLogic__.ts.html +3 -3
- package/coverage/src/concepts/ParamWithGroup__.ts.html +388 -0
- package/coverage/src/concepts/Param__.ts.html +36 -12
- package/coverage/src/concepts/Point__.ts.html +2 -2
- package/coverage/src/concepts/ProcessComponent__.ts.html +3 -3
- package/coverage/src/concepts/ProcessElement__.ts.html +29 -8
- package/coverage/src/concepts/ProcessOutcome__.ts.html +2 -2
- package/coverage/src/concepts/ProcessOutcomes__.ts.html +2 -2
- package/coverage/src/concepts/Process__.ts.html +3 -3
- package/coverage/src/concepts/QueryAggregateExpression__.ts.html +2 -2
- package/coverage/src/concepts/QueryFieldExpression__.ts.html +2 -2
- package/coverage/src/concepts/QueryFromExpression__.ts.html +3 -3
- package/coverage/src/concepts/QueryGroupByExpression__.ts.html +2 -2
- package/coverage/src/concepts/QueryJoinExpression__.ts.html +3 -3
- package/coverage/src/concepts/QueryLimitExpression__.ts.html +2 -2
- package/coverage/src/concepts/QueryOrderByExpression__.ts.html +2 -2
- package/coverage/src/concepts/QuerySelectExpression__.ts.html +3 -3
- package/coverage/src/concepts/Rect__.ts.html +2 -2
- package/coverage/src/concepts/Return__.ts.html +35 -11
- package/coverage/src/concepts/Role__.ts.html +2 -2
- package/coverage/src/concepts/SelectMembers__.ts.html +3 -3
- package/coverage/src/concepts/SequentialPolicy__.ts.html +2 -2
- package/coverage/src/concepts/Slot__.ts.html +2 -2
- package/coverage/src/concepts/SqlQueryComponent__.ts.html +2 -2
- package/coverage/src/concepts/Start__.ts.html +2 -2
- package/coverage/src/concepts/StaticString__.ts.html +2 -2
- package/coverage/src/concepts/StringInterpolation__.ts.html +3 -3
- package/coverage/src/concepts/StringLiteral__.ts.html +2 -2
- package/coverage/src/concepts/StructureProperty__.ts.html +2 -2
- package/coverage/src/concepts/Structure__.ts.html +3 -3
- package/coverage/src/concepts/SwitchCase__.ts.html +3 -3
- package/coverage/src/concepts/SwitchStatement__.ts.html +3 -3
- package/coverage/src/concepts/Theme__.ts.html +2 -2
- package/coverage/src/concepts/Transactional__.ts.html +2 -2
- package/coverage/src/concepts/TriggerEvent__.ts.html +2 -2
- package/coverage/src/concepts/TriggerLauncher__.ts.html +2 -2
- package/coverage/src/concepts/TypeAnnotation__.ts.html +14 -14
- package/coverage/src/concepts/TypeParam__.ts.html +2 -2
- package/coverage/src/concepts/UnaryExpression__.ts.html +2 -2
- package/coverage/src/concepts/Unparsed__.ts.html +2 -2
- package/coverage/src/concepts/UseComponent__.ts.html +2 -2
- package/coverage/src/concepts/ValidationRule__.ts.html +21 -6
- package/coverage/src/concepts/Variable__.ts.html +42 -12
- package/coverage/src/concepts/ViewBlock__.ts.html +2 -2
- package/coverage/src/concepts/ViewComponent__.ts.html +3 -3
- package/coverage/src/concepts/ViewElement__.ts.html +522 -48
- package/coverage/src/concepts/View__.ts.html +54 -45
- package/coverage/src/concepts/WhileStatement__.ts.html +3 -3
- package/coverage/src/concepts/basics/constants.ts.html +1 -1
- package/coverage/src/concepts/basics/index.html +1 -1
- package/coverage/src/concepts/basics/stdlib/index.html +1 -1
- package/coverage/src/concepts/basics/stdlib/index.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1 -1
- package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +2 -2
- package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +1 -1
- package/coverage/src/concepts/basics/types/coreTypeList.ts.html +1 -1
- package/coverage/src/concepts/basics/types/index.html +1 -1
- package/coverage/src/concepts/basics/types/index.ts.html +1 -1
- package/coverage/src/concepts/index.html +247 -172
- package/coverage/src/concepts/index.ts.html +2 -2
- package/coverage/src/concepts/index__.ts.html +19 -4
- package/coverage/src/concepts/utils/asserts.ts.html +1111 -22
- package/coverage/src/concepts/utils/index.html +18 -18
- package/coverage/src/concepts/utils/quick-info.ts.html +1 -1
- package/coverage/src/concepts/utils/types.ts.html +86 -2
- package/coverage/src/config.ts.html +2 -2
- package/coverage/src/decorators/index.html +18 -18
- package/coverage/src/decorators/index.ts.html +42 -57
- package/coverage/src/decorators/promise.ts.html +1 -1
- package/coverage/src/eventBus.ts.html +1 -1
- package/coverage/src/generator/compileComponent.ts.html +1 -1
- package/coverage/src/generator/genBundleFiles.ts.html +89 -35
- package/coverage/src/generator/genHash.ts.html +2 -2
- package/coverage/src/generator/genMetaData.ts.html +2 -2
- package/coverage/src/generator/genReleaseBody.ts.html +46 -13
- package/coverage/src/generator/icestark.ts.html +1 -1
- package/coverage/src/generator/index.html +30 -30
- package/coverage/src/generator/index.ts.html +1 -1
- package/coverage/src/generator/microApp.ts.html +1 -1
- package/coverage/src/generator/permission.ts.html +16 -10
- package/coverage/src/generator/qiankun.ts.html +1 -1
- package/coverage/src/generator/styleReplacer.ts.html +1 -1
- package/coverage/src/index.html +1 -1
- package/coverage/src/index.ts.html +2 -2
- package/coverage/src/manager/diagnostic.ts.html +1 -1
- package/coverage/src/manager/index.html +1 -1
- package/coverage/src/manager/stepRecorder.ts.html +1 -1
- package/coverage/src/natural/genNaturalTS.ts.html +1 -1
- package/coverage/src/natural/index.html +1 -1
- package/coverage/src/natural/index.ts.html +1 -1
- package/coverage/src/natural/naslStdlibMap.ts.html +1 -1
- package/coverage/src/natural/transformTSCode.ts.html +3 -3
- package/coverage/src/sentry/index.html +1 -1
- package/coverage/src/sentry/index.ts.html +25 -25
- package/coverage/src/server/createUiTs.ts.html +1 -1
- package/coverage/src/server/entity2LogicNamespace.ts.html +1 -1
- package/coverage/src/server/event.js.html +1 -1
- package/coverage/src/server/extendBaseNode.ts.html +99 -30
- package/coverage/src/server/formatTsUtils.ts.html +1 -1
- package/coverage/src/server/getConnector.ts.html +1 -1
- package/coverage/src/server/getExtensionModules.ts.html +1 -1
- package/coverage/src/server/getFunctions.ts.html +1 -1
- package/coverage/src/server/getInterfaces.ts.html +1 -1
- package/coverage/src/server/getLogging.ts.html +1 -1
- package/coverage/src/server/getLogics.ts.html +180 -66
- package/coverage/src/server/getMemberIdentifier.ts.html +27 -9
- package/coverage/src/server/getProcessComponents.ts.html +1 -1
- package/coverage/src/server/getProcesses.ts.html +6 -6
- package/coverage/src/server/getValidates.ts.html +1 -1
- package/coverage/src/server/index.html +44 -44
- package/coverage/src/server/index.ts.html +1 -1
- package/coverage/src/server/naslServer.ts.html +99 -30
- package/coverage/src/server/naslStdlibMap.ts.html +1 -1
- package/coverage/src/server/process2LogicNamespace.ts.html +1 -1
- package/coverage/src/server/translator.ts.html +23 -5
- package/coverage/src/service/creator/add.configs.js.html +1 -1
- package/coverage/src/service/creator/errHandles.js.html +1 -1
- package/coverage/src/service/creator/index.html +1 -1
- package/coverage/src/service/creator/index.js.html +2 -2
- package/coverage/src/service/datasource/api.js.html +1 -1
- package/coverage/src/service/datasource/index.html +1 -1
- package/coverage/src/service/datasource/index.js.html +1 -1
- package/coverage/src/service/logic/api.js.html +1 -1
- package/coverage/src/service/logic/index.html +1 -1
- package/coverage/src/service/logic/index.js.html +1 -1
- package/coverage/src/service/storage/api.js.html +1 -1
- package/coverage/src/service/storage/index.html +17 -17
- package/coverage/src/service/storage/index.ts.html +2 -2
- package/coverage/src/service/storage/init.ts.html +100 -13
- package/coverage/src/service/storage/jsoner.ts.html +1 -1
- package/coverage/src/service/storage/map.ts.html +4 -4
- package/coverage/src/service/storage/service.ts.html +1 -1
- package/coverage/src/service/storage/storagePoint.ts.html +1 -1
- package/coverage/src/templator/genCallComponentLogic.ts.html +1 -1
- package/coverage/src/templator/genCreateBlock.ts.html +8 -8
- package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +18 -18
- package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2477 -305
- package/coverage/src/templator/genEditTableBlock.ts.html +2 -2
- package/coverage/src/templator/genEnumSelectBlock.ts.html +1 -1
- package/coverage/src/templator/genGetBlock.ts.html +16 -13
- package/coverage/src/templator/genGridViewBlock.ts.html +14 -14
- package/coverage/src/templator/genListViewBlock.ts.html +6 -6
- package/coverage/src/templator/genQueryComponent.ts.html +2 -2
- package/coverage/src/templator/genSelectBlock.ts.html +5 -5
- package/coverage/src/templator/genTableBlock.ts.html +397 -22
- package/coverage/src/templator/genUpdateBlock.ts.html +20 -17
- package/coverage/src/templator/index.html +43 -43
- package/coverage/src/templator/index.ts.html +2 -2
- package/coverage/src/templator/utils.ts.html +3 -3
- package/coverage/src/translator/constant.ts.html +1 -1
- package/coverage/src/translator/index.html +19 -19
- package/coverage/src/translator/index.ts.html +2 -2
- package/coverage/src/translator/types.ts.html +1 -1
- package/coverage/src/translator/utils.ts.html +110 -17
- package/coverage/src/utils/cookie.ts.html +1 -1
- package/coverage/src/utils/env.ts.html +2 -2
- package/coverage/src/utils/i18nInfo.ts.html +1 -1
- package/coverage/src/utils/index.html +19 -19
- package/coverage/src/utils/index.ts.html +641 -11
- package/coverage/src/utils/logger.ts.html +1 -1
- package/coverage/src/utils/sortTsString.ts.html +1 -1
- package/coverage/src/utils/string.ts.html +1 -1
- package/coverage/src/utils/time-slicing/constant.ts.html +1 -1
- package/coverage/src/utils/time-slicing/controller.ts.html +1 -1
- package/coverage/src/utils/time-slicing/index.html +1 -1
- package/coverage/src/utils/time-slicing/index.ts.html +1 -1
- package/coverage/src/utils/time-slicing/page-state.ts.html +1 -1
- package/coverage/src/utils/time-slicing/performance.ts.html +1 -1
- package/coverage/src/utils/time-slicing/runner.ts.html +1 -1
- package/coverage/src/utils/time-slicing/tool.ts.html +1 -1
- package/coverage/src/utils/time-slicing/utils.ts.html +1 -1
- package/coverage/src/utils/time-slicing/wrapper.ts.html +1 -1
- package/coverage/src/utils/traverse.ts.html +1 -1
- package/coverage/src/utils/types.ts.html +1 -1
- package/coverage/src/utils/window.ts.html +1 -1
- package/out/common/Messager.js +1 -1
- package/out/common/Messager.js.map +1 -1
- package/out/concepts/Destination__.d.ts +1 -1
- package/out/concepts/Destination__.js +2 -2
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +9 -1
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ViewElement__.js +1 -1
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/generator/genReleaseBody.js +1 -0
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/server/getProcesses.js +3 -3
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/naslServer.d.ts +1 -1
- package/out/server/naslServer.js +8 -8
- package/out/server/naslServer.js.map +1 -1
- package/out/service/storage/init.js +3 -0
- package/out/service/storage/init.js.map +1 -1
- package/package.json +1 -1
- package/src/common/Messager.ts +1 -1
- package/src/concepts/Destination__.ts +2 -2
- package/src/concepts/ProcessElement__.ts +8 -1
- package/src/concepts/ViewElement__.ts +1 -1
- package/src/generator/genReleaseBody.ts +2 -0
- package/src/server/getProcesses.ts +3 -3
- package/src/server/naslServer.ts +9 -8
- package/src/service/storage/init.ts +4 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">26.
|
|
26
|
+
<span class="strong">26.58% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>310/1166</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">23.
|
|
33
|
+
<span class="strong">23.47% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>204/869</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">20% </span>
|
|
40
|
+
<span class="strong">20.35% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>46/226</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">26.19% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>286/1092</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -3101,7 +3101,165 @@
|
|
|
3101
3101
|
<a name='L3036'></a><a href='#L3036'>3036</a>
|
|
3102
3102
|
<a name='L3037'></a><a href='#L3037'>3037</a>
|
|
3103
3103
|
<a name='L3038'></a><a href='#L3038'>3038</a>
|
|
3104
|
-
<a name='L3039'></a><a href='#L3039'>3039</a
|
|
3104
|
+
<a name='L3039'></a><a href='#L3039'>3039</a>
|
|
3105
|
+
<a name='L3040'></a><a href='#L3040'>3040</a>
|
|
3106
|
+
<a name='L3041'></a><a href='#L3041'>3041</a>
|
|
3107
|
+
<a name='L3042'></a><a href='#L3042'>3042</a>
|
|
3108
|
+
<a name='L3043'></a><a href='#L3043'>3043</a>
|
|
3109
|
+
<a name='L3044'></a><a href='#L3044'>3044</a>
|
|
3110
|
+
<a name='L3045'></a><a href='#L3045'>3045</a>
|
|
3111
|
+
<a name='L3046'></a><a href='#L3046'>3046</a>
|
|
3112
|
+
<a name='L3047'></a><a href='#L3047'>3047</a>
|
|
3113
|
+
<a name='L3048'></a><a href='#L3048'>3048</a>
|
|
3114
|
+
<a name='L3049'></a><a href='#L3049'>3049</a>
|
|
3115
|
+
<a name='L3050'></a><a href='#L3050'>3050</a>
|
|
3116
|
+
<a name='L3051'></a><a href='#L3051'>3051</a>
|
|
3117
|
+
<a name='L3052'></a><a href='#L3052'>3052</a>
|
|
3118
|
+
<a name='L3053'></a><a href='#L3053'>3053</a>
|
|
3119
|
+
<a name='L3054'></a><a href='#L3054'>3054</a>
|
|
3120
|
+
<a name='L3055'></a><a href='#L3055'>3055</a>
|
|
3121
|
+
<a name='L3056'></a><a href='#L3056'>3056</a>
|
|
3122
|
+
<a name='L3057'></a><a href='#L3057'>3057</a>
|
|
3123
|
+
<a name='L3058'></a><a href='#L3058'>3058</a>
|
|
3124
|
+
<a name='L3059'></a><a href='#L3059'>3059</a>
|
|
3125
|
+
<a name='L3060'></a><a href='#L3060'>3060</a>
|
|
3126
|
+
<a name='L3061'></a><a href='#L3061'>3061</a>
|
|
3127
|
+
<a name='L3062'></a><a href='#L3062'>3062</a>
|
|
3128
|
+
<a name='L3063'></a><a href='#L3063'>3063</a>
|
|
3129
|
+
<a name='L3064'></a><a href='#L3064'>3064</a>
|
|
3130
|
+
<a name='L3065'></a><a href='#L3065'>3065</a>
|
|
3131
|
+
<a name='L3066'></a><a href='#L3066'>3066</a>
|
|
3132
|
+
<a name='L3067'></a><a href='#L3067'>3067</a>
|
|
3133
|
+
<a name='L3068'></a><a href='#L3068'>3068</a>
|
|
3134
|
+
<a name='L3069'></a><a href='#L3069'>3069</a>
|
|
3135
|
+
<a name='L3070'></a><a href='#L3070'>3070</a>
|
|
3136
|
+
<a name='L3071'></a><a href='#L3071'>3071</a>
|
|
3137
|
+
<a name='L3072'></a><a href='#L3072'>3072</a>
|
|
3138
|
+
<a name='L3073'></a><a href='#L3073'>3073</a>
|
|
3139
|
+
<a name='L3074'></a><a href='#L3074'>3074</a>
|
|
3140
|
+
<a name='L3075'></a><a href='#L3075'>3075</a>
|
|
3141
|
+
<a name='L3076'></a><a href='#L3076'>3076</a>
|
|
3142
|
+
<a name='L3077'></a><a href='#L3077'>3077</a>
|
|
3143
|
+
<a name='L3078'></a><a href='#L3078'>3078</a>
|
|
3144
|
+
<a name='L3079'></a><a href='#L3079'>3079</a>
|
|
3145
|
+
<a name='L3080'></a><a href='#L3080'>3080</a>
|
|
3146
|
+
<a name='L3081'></a><a href='#L3081'>3081</a>
|
|
3147
|
+
<a name='L3082'></a><a href='#L3082'>3082</a>
|
|
3148
|
+
<a name='L3083'></a><a href='#L3083'>3083</a>
|
|
3149
|
+
<a name='L3084'></a><a href='#L3084'>3084</a>
|
|
3150
|
+
<a name='L3085'></a><a href='#L3085'>3085</a>
|
|
3151
|
+
<a name='L3086'></a><a href='#L3086'>3086</a>
|
|
3152
|
+
<a name='L3087'></a><a href='#L3087'>3087</a>
|
|
3153
|
+
<a name='L3088'></a><a href='#L3088'>3088</a>
|
|
3154
|
+
<a name='L3089'></a><a href='#L3089'>3089</a>
|
|
3155
|
+
<a name='L3090'></a><a href='#L3090'>3090</a>
|
|
3156
|
+
<a name='L3091'></a><a href='#L3091'>3091</a>
|
|
3157
|
+
<a name='L3092'></a><a href='#L3092'>3092</a>
|
|
3158
|
+
<a name='L3093'></a><a href='#L3093'>3093</a>
|
|
3159
|
+
<a name='L3094'></a><a href='#L3094'>3094</a>
|
|
3160
|
+
<a name='L3095'></a><a href='#L3095'>3095</a>
|
|
3161
|
+
<a name='L3096'></a><a href='#L3096'>3096</a>
|
|
3162
|
+
<a name='L3097'></a><a href='#L3097'>3097</a>
|
|
3163
|
+
<a name='L3098'></a><a href='#L3098'>3098</a>
|
|
3164
|
+
<a name='L3099'></a><a href='#L3099'>3099</a>
|
|
3165
|
+
<a name='L3100'></a><a href='#L3100'>3100</a>
|
|
3166
|
+
<a name='L3101'></a><a href='#L3101'>3101</a>
|
|
3167
|
+
<a name='L3102'></a><a href='#L3102'>3102</a>
|
|
3168
|
+
<a name='L3103'></a><a href='#L3103'>3103</a>
|
|
3169
|
+
<a name='L3104'></a><a href='#L3104'>3104</a>
|
|
3170
|
+
<a name='L3105'></a><a href='#L3105'>3105</a>
|
|
3171
|
+
<a name='L3106'></a><a href='#L3106'>3106</a>
|
|
3172
|
+
<a name='L3107'></a><a href='#L3107'>3107</a>
|
|
3173
|
+
<a name='L3108'></a><a href='#L3108'>3108</a>
|
|
3174
|
+
<a name='L3109'></a><a href='#L3109'>3109</a>
|
|
3175
|
+
<a name='L3110'></a><a href='#L3110'>3110</a>
|
|
3176
|
+
<a name='L3111'></a><a href='#L3111'>3111</a>
|
|
3177
|
+
<a name='L3112'></a><a href='#L3112'>3112</a>
|
|
3178
|
+
<a name='L3113'></a><a href='#L3113'>3113</a>
|
|
3179
|
+
<a name='L3114'></a><a href='#L3114'>3114</a>
|
|
3180
|
+
<a name='L3115'></a><a href='#L3115'>3115</a>
|
|
3181
|
+
<a name='L3116'></a><a href='#L3116'>3116</a>
|
|
3182
|
+
<a name='L3117'></a><a href='#L3117'>3117</a>
|
|
3183
|
+
<a name='L3118'></a><a href='#L3118'>3118</a>
|
|
3184
|
+
<a name='L3119'></a><a href='#L3119'>3119</a>
|
|
3185
|
+
<a name='L3120'></a><a href='#L3120'>3120</a>
|
|
3186
|
+
<a name='L3121'></a><a href='#L3121'>3121</a>
|
|
3187
|
+
<a name='L3122'></a><a href='#L3122'>3122</a>
|
|
3188
|
+
<a name='L3123'></a><a href='#L3123'>3123</a>
|
|
3189
|
+
<a name='L3124'></a><a href='#L3124'>3124</a>
|
|
3190
|
+
<a name='L3125'></a><a href='#L3125'>3125</a>
|
|
3191
|
+
<a name='L3126'></a><a href='#L3126'>3126</a>
|
|
3192
|
+
<a name='L3127'></a><a href='#L3127'>3127</a>
|
|
3193
|
+
<a name='L3128'></a><a href='#L3128'>3128</a>
|
|
3194
|
+
<a name='L3129'></a><a href='#L3129'>3129</a>
|
|
3195
|
+
<a name='L3130'></a><a href='#L3130'>3130</a>
|
|
3196
|
+
<a name='L3131'></a><a href='#L3131'>3131</a>
|
|
3197
|
+
<a name='L3132'></a><a href='#L3132'>3132</a>
|
|
3198
|
+
<a name='L3133'></a><a href='#L3133'>3133</a>
|
|
3199
|
+
<a name='L3134'></a><a href='#L3134'>3134</a>
|
|
3200
|
+
<a name='L3135'></a><a href='#L3135'>3135</a>
|
|
3201
|
+
<a name='L3136'></a><a href='#L3136'>3136</a>
|
|
3202
|
+
<a name='L3137'></a><a href='#L3137'>3137</a>
|
|
3203
|
+
<a name='L3138'></a><a href='#L3138'>3138</a>
|
|
3204
|
+
<a name='L3139'></a><a href='#L3139'>3139</a>
|
|
3205
|
+
<a name='L3140'></a><a href='#L3140'>3140</a>
|
|
3206
|
+
<a name='L3141'></a><a href='#L3141'>3141</a>
|
|
3207
|
+
<a name='L3142'></a><a href='#L3142'>3142</a>
|
|
3208
|
+
<a name='L3143'></a><a href='#L3143'>3143</a>
|
|
3209
|
+
<a name='L3144'></a><a href='#L3144'>3144</a>
|
|
3210
|
+
<a name='L3145'></a><a href='#L3145'>3145</a>
|
|
3211
|
+
<a name='L3146'></a><a href='#L3146'>3146</a>
|
|
3212
|
+
<a name='L3147'></a><a href='#L3147'>3147</a>
|
|
3213
|
+
<a name='L3148'></a><a href='#L3148'>3148</a>
|
|
3214
|
+
<a name='L3149'></a><a href='#L3149'>3149</a>
|
|
3215
|
+
<a name='L3150'></a><a href='#L3150'>3150</a>
|
|
3216
|
+
<a name='L3151'></a><a href='#L3151'>3151</a>
|
|
3217
|
+
<a name='L3152'></a><a href='#L3152'>3152</a>
|
|
3218
|
+
<a name='L3153'></a><a href='#L3153'>3153</a>
|
|
3219
|
+
<a name='L3154'></a><a href='#L3154'>3154</a>
|
|
3220
|
+
<a name='L3155'></a><a href='#L3155'>3155</a>
|
|
3221
|
+
<a name='L3156'></a><a href='#L3156'>3156</a>
|
|
3222
|
+
<a name='L3157'></a><a href='#L3157'>3157</a>
|
|
3223
|
+
<a name='L3158'></a><a href='#L3158'>3158</a>
|
|
3224
|
+
<a name='L3159'></a><a href='#L3159'>3159</a>
|
|
3225
|
+
<a name='L3160'></a><a href='#L3160'>3160</a>
|
|
3226
|
+
<a name='L3161'></a><a href='#L3161'>3161</a>
|
|
3227
|
+
<a name='L3162'></a><a href='#L3162'>3162</a>
|
|
3228
|
+
<a name='L3163'></a><a href='#L3163'>3163</a>
|
|
3229
|
+
<a name='L3164'></a><a href='#L3164'>3164</a>
|
|
3230
|
+
<a name='L3165'></a><a href='#L3165'>3165</a>
|
|
3231
|
+
<a name='L3166'></a><a href='#L3166'>3166</a>
|
|
3232
|
+
<a name='L3167'></a><a href='#L3167'>3167</a>
|
|
3233
|
+
<a name='L3168'></a><a href='#L3168'>3168</a>
|
|
3234
|
+
<a name='L3169'></a><a href='#L3169'>3169</a>
|
|
3235
|
+
<a name='L3170'></a><a href='#L3170'>3170</a>
|
|
3236
|
+
<a name='L3171'></a><a href='#L3171'>3171</a>
|
|
3237
|
+
<a name='L3172'></a><a href='#L3172'>3172</a>
|
|
3238
|
+
<a name='L3173'></a><a href='#L3173'>3173</a>
|
|
3239
|
+
<a name='L3174'></a><a href='#L3174'>3174</a>
|
|
3240
|
+
<a name='L3175'></a><a href='#L3175'>3175</a>
|
|
3241
|
+
<a name='L3176'></a><a href='#L3176'>3176</a>
|
|
3242
|
+
<a name='L3177'></a><a href='#L3177'>3177</a>
|
|
3243
|
+
<a name='L3178'></a><a href='#L3178'>3178</a>
|
|
3244
|
+
<a name='L3179'></a><a href='#L3179'>3179</a>
|
|
3245
|
+
<a name='L3180'></a><a href='#L3180'>3180</a>
|
|
3246
|
+
<a name='L3181'></a><a href='#L3181'>3181</a>
|
|
3247
|
+
<a name='L3182'></a><a href='#L3182'>3182</a>
|
|
3248
|
+
<a name='L3183'></a><a href='#L3183'>3183</a>
|
|
3249
|
+
<a name='L3184'></a><a href='#L3184'>3184</a>
|
|
3250
|
+
<a name='L3185'></a><a href='#L3185'>3185</a>
|
|
3251
|
+
<a name='L3186'></a><a href='#L3186'>3186</a>
|
|
3252
|
+
<a name='L3187'></a><a href='#L3187'>3187</a>
|
|
3253
|
+
<a name='L3188'></a><a href='#L3188'>3188</a>
|
|
3254
|
+
<a name='L3189'></a><a href='#L3189'>3189</a>
|
|
3255
|
+
<a name='L3190'></a><a href='#L3190'>3190</a>
|
|
3256
|
+
<a name='L3191'></a><a href='#L3191'>3191</a>
|
|
3257
|
+
<a name='L3192'></a><a href='#L3192'>3192</a>
|
|
3258
|
+
<a name='L3193'></a><a href='#L3193'>3193</a>
|
|
3259
|
+
<a name='L3194'></a><a href='#L3194'>3194</a>
|
|
3260
|
+
<a name='L3195'></a><a href='#L3195'>3195</a>
|
|
3261
|
+
<a name='L3196'></a><a href='#L3196'>3196</a>
|
|
3262
|
+
<a name='L3197'></a><a href='#L3197'>3197</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2023x</span>
|
|
3105
3263
|
<span class="cline-any cline-neutral"> </span>
|
|
3106
3264
|
<span class="cline-any cline-neutral"> </span>
|
|
3107
3265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -3125,6 +3283,8 @@
|
|
|
3125
3283
|
<span class="cline-any cline-neutral"> </span>
|
|
3126
3284
|
<span class="cline-any cline-yes">1x</span>
|
|
3127
3285
|
<span class="cline-any cline-neutral"> </span>
|
|
3286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3128
3288
|
<span class="cline-any cline-yes">1x</span>
|
|
3129
3289
|
<span class="cline-any cline-neutral"> </span>
|
|
3130
3290
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -3191,6 +3351,9 @@
|
|
|
3191
3351
|
<span class="cline-any cline-neutral"> </span>
|
|
3192
3352
|
<span class="cline-any cline-neutral"> </span>
|
|
3193
3353
|
<span class="cline-any cline-neutral"> </span>
|
|
3354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3194
3357
|
<span class="cline-any cline-yes">1x</span>
|
|
3195
3358
|
<span class="cline-any cline-no"> </span>
|
|
3196
3359
|
<span class="cline-any cline-no"> </span>
|
|
@@ -3367,6 +3530,14 @@
|
|
|
3367
3530
|
<span class="cline-any cline-no"> </span>
|
|
3368
3531
|
<span class="cline-any cline-neutral"> </span>
|
|
3369
3532
|
<span class="cline-any cline-neutral"> </span>
|
|
3533
|
+
<span class="cline-any cline-yes">1x</span>
|
|
3534
|
+
<span class="cline-any cline-no"> </span>
|
|
3535
|
+
<span class="cline-any cline-no"> </span>
|
|
3536
|
+
<span class="cline-any cline-no"> </span>
|
|
3537
|
+
<span class="cline-any cline-no"> </span>
|
|
3538
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
3370
3541
|
<span class="cline-any cline-neutral"> </span>
|
|
3371
3542
|
<span class="cline-any cline-neutral"> </span>
|
|
3372
3543
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -4646,6 +4817,10 @@
|
|
|
4646
4817
|
<span class="cline-any cline-neutral"> </span>
|
|
4647
4818
|
<span class="cline-any cline-neutral"> </span>
|
|
4648
4819
|
<span class="cline-any cline-neutral"> </span>
|
|
4820
|
+
<span class="cline-any cline-no"> </span>
|
|
4821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
4822
|
+
<span class="cline-any cline-neutral"> </span>
|
|
4823
|
+
<span class="cline-any cline-neutral"> </span>
|
|
4649
4824
|
<span class="cline-any cline-neutral"> </span>
|
|
4650
4825
|
<span class="cline-any cline-no"> </span>
|
|
4651
4826
|
<span class="cline-any cline-no"> </span>
|
|
@@ -4721,7 +4896,6 @@
|
|
|
4721
4896
|
<span class="cline-any cline-no"> </span>
|
|
4722
4897
|
<span class="cline-any cline-no"> </span>
|
|
4723
4898
|
<span class="cline-any cline-no"> </span>
|
|
4724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
4725
4899
|
<span class="cline-any cline-no"> </span>
|
|
4726
4900
|
<span class="cline-any cline-no"> </span>
|
|
4727
4901
|
<span class="cline-any cline-no"> </span>
|
|
@@ -4729,7 +4903,8 @@
|
|
|
4729
4903
|
<span class="cline-any cline-no"> </span>
|
|
4730
4904
|
<span class="cline-any cline-no"> </span>
|
|
4731
4905
|
<span class="cline-any cline-no"> </span>
|
|
4732
|
-
<span class="cline-any cline-
|
|
4906
|
+
<span class="cline-any cline-no"> </span>
|
|
4907
|
+
<span class="cline-any cline-no"> </span>
|
|
4733
4908
|
<span class="cline-any cline-neutral"> </span>
|
|
4734
4909
|
<span class="cline-any cline-neutral"> </span>
|
|
4735
4910
|
<span class="cline-any cline-no"> </span>
|
|
@@ -4819,7 +4994,6 @@
|
|
|
4819
4994
|
<span class="cline-any cline-no"> </span>
|
|
4820
4995
|
<span class="cline-any cline-neutral"> </span>
|
|
4821
4996
|
<span class="cline-any cline-neutral"> </span>
|
|
4822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
4823
4997
|
<span class="cline-any cline-no"> </span>
|
|
4824
4998
|
<span class="cline-any cline-no"> </span>
|
|
4825
4999
|
<span class="cline-any cline-no"> </span>
|
|
@@ -4961,6 +5135,35 @@
|
|
|
4961
5135
|
<span class="cline-any cline-yes">66x</span>
|
|
4962
5136
|
<span class="cline-any cline-neutral"> </span>
|
|
4963
5137
|
<span class="cline-any cline-neutral"> </span>
|
|
5138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5140
|
+
<span class="cline-any cline-no"> </span>
|
|
5141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5145
|
+
<span class="cline-any cline-yes">332x</span>
|
|
5146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5147
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5150
|
+
<span class="cline-any cline-no"> </span>
|
|
5151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5152
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5155
|
+
<span class="cline-any cline-yes">5x</span>
|
|
5156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5157
|
+
<span class="cline-any cline-no"> </span>
|
|
5158
|
+
<span class="cline-any cline-no"> </span>
|
|
5159
|
+
<span class="cline-any cline-no"> </span>
|
|
5160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5161
|
+
<span class="cline-any cline-no"> </span>
|
|
5162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
4964
5167
|
<span class="cline-any cline-yes">1x</span>
|
|
4965
5168
|
<span class="cline-any cline-yes">73x</span>
|
|
4966
5169
|
<span class="cline-any cline-yes">73x</span>
|
|
@@ -5039,6 +5242,10 @@
|
|
|
5039
5242
|
<span class="cline-any cline-yes">10x</span>
|
|
5040
5243
|
<span class="cline-any cline-yes">10x</span>
|
|
5041
5244
|
<span class="cline-any cline-neutral"> </span>
|
|
5245
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5246
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5247
|
+
<span class="cline-any cline-no"> </span>
|
|
5248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5042
5249
|
<span class="cline-any cline-neutral"> </span>
|
|
5043
5250
|
<span class="cline-any cline-yes">57x</span>
|
|
5044
5251
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5074,6 +5281,16 @@
|
|
|
5074
5281
|
<span class="cline-any cline-yes">57x</span>
|
|
5075
5282
|
<span class="cline-any cline-yes">57x</span>
|
|
5076
5283
|
<span class="cline-any cline-yes">57x</span>
|
|
5284
|
+
<span class="cline-any cline-no"> </span>
|
|
5285
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5286
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5288
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5290
|
+
<span class="cline-any cline-yes">77x</span>
|
|
5291
|
+
<span class="cline-any cline-yes">77x</span>
|
|
5292
|
+
<span class="cline-any cline-no"> </span>
|
|
5293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5077
5294
|
<span class="cline-any cline-yes">77x</span>
|
|
5078
5295
|
<span class="cline-any cline-neutral"> </span>
|
|
5079
5296
|
<span class="cline-any cline-yes">57x</span>
|
|
@@ -5083,6 +5300,11 @@
|
|
|
5083
5300
|
<span class="cline-any cline-no"> </span>
|
|
5084
5301
|
<span class="cline-any cline-neutral"> </span>
|
|
5085
5302
|
<span class="cline-any cline-yes">57x</span>
|
|
5303
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5304
|
+
<span class="cline-any cline-no"> </span>
|
|
5305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5306
|
+
<span class="cline-any cline-yes">57x</span>
|
|
5307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5086
5308
|
<span class="cline-any cline-neutral"> </span>
|
|
5087
5309
|
<span class="cline-any cline-neutral"> </span>
|
|
5088
5310
|
<span class="cline-any cline-yes">57x</span>
|
|
@@ -5261,6 +5483,16 @@
|
|
|
5261
5483
|
<span class="cline-any cline-neutral"> </span>
|
|
5262
5484
|
<span class="cline-any cline-neutral"> </span>
|
|
5263
5485
|
<span class="cline-any cline-neutral"> </span>
|
|
5486
|
+
<span class="cline-any cline-no"> </span>
|
|
5487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5489
|
+
<span class="cline-any cline-no"> </span>
|
|
5490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5494
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5264
5496
|
<span class="cline-any cline-neutral"> </span>
|
|
5265
5497
|
<span class="cline-any cline-no"> </span>
|
|
5266
5498
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5618,6 +5850,8 @@
|
|
|
5618
5850
|
<span class="cline-any cline-neutral"> </span>
|
|
5619
5851
|
<span class="cline-any cline-neutral"> </span>
|
|
5620
5852
|
<span class="cline-any cline-neutral"> </span>
|
|
5853
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5854
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5621
5855
|
<span class="cline-any cline-no"> </span>
|
|
5622
5856
|
<span class="cline-any cline-neutral"> </span>
|
|
5623
5857
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5673,6 +5907,10 @@
|
|
|
5673
5907
|
<span class="cline-any cline-neutral"> </span>
|
|
5674
5908
|
<span class="cline-any cline-neutral"> </span>
|
|
5675
5909
|
<span class="cline-any cline-neutral"> </span>
|
|
5910
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5911
|
+
<span class="cline-any cline-no"> </span>
|
|
5912
|
+
<span class="cline-any cline-no"> </span>
|
|
5913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5676
5914
|
<span class="cline-any cline-no"> </span>
|
|
5677
5915
|
<span class="cline-any cline-neutral"> </span>
|
|
5678
5916
|
<span class="cline-any cline-no"> </span>
|
|
@@ -5746,6 +5984,11 @@
|
|
|
5746
5984
|
<span class="cline-any cline-neutral"> </span>
|
|
5747
5985
|
<span class="cline-any cline-neutral"> </span>
|
|
5748
5986
|
<span class="cline-any cline-neutral"> </span>
|
|
5987
|
+
<span class="cline-any cline-yes">729x</span>
|
|
5988
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5990
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5749
5992
|
<span class="cline-any cline-yes">155x</span>
|
|
5750
5993
|
<span class="cline-any cline-yes">155x</span>
|
|
5751
5994
|
<span class="cline-any cline-yes">155x</span>
|
|
@@ -5790,10 +6033,79 @@
|
|
|
5790
6033
|
<span class="cline-any cline-neutral"> </span>
|
|
5791
6034
|
<span class="cline-any cline-neutral"> </span>
|
|
5792
6035
|
<span class="cline-any cline-neutral"> </span>
|
|
6036
|
+
<span class="cline-any cline-no"> </span>
|
|
6037
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6038
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6039
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6040
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6041
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5793
6042
|
<span class="cline-any cline-neutral"> </span>
|
|
5794
6043
|
<span class="cline-any cline-neutral"> </span>
|
|
5795
6044
|
<span class="cline-any cline-neutral"> </span>
|
|
5796
6045
|
<span class="cline-any cline-yes">73x</span>
|
|
6046
|
+
<span class="cline-any cline-no"> </span>
|
|
6047
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6048
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6049
|
+
<span class="cline-any cline-yes">73x</span>
|
|
6050
|
+
<span class="cline-any cline-yes">73x</span>
|
|
6051
|
+
<span class="cline-any cline-yes">73x</span>
|
|
6052
|
+
<span class="cline-any cline-no"> </span>
|
|
6053
|
+
<span class="cline-any cline-no"> </span>
|
|
6054
|
+
<span class="cline-any cline-no"> </span>
|
|
6055
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6056
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6057
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6058
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6059
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6060
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6062
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6063
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6064
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6065
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6066
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6067
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6068
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6069
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6070
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6071
|
+
<span class="cline-any cline-no"> </span>
|
|
6072
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6073
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6074
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6075
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6076
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6077
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6078
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6079
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6080
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6081
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6082
|
+
<span class="cline-any cline-no"> </span>
|
|
6083
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6084
|
+
<span class="cline-any cline-no"> </span>
|
|
6085
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6086
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6087
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6088
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6089
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6090
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6091
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6092
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6095
|
+
<span class="cline-any cline-no"> </span>
|
|
6096
|
+
<span class="cline-any cline-no"> </span>
|
|
6097
|
+
<span class="cline-any cline-no"> </span>
|
|
6098
|
+
<span class="cline-any cline-no"> </span>
|
|
6099
|
+
<span class="cline-any cline-no"> </span>
|
|
6100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6101
|
+
<span class="cline-any cline-no"> </span>
|
|
6102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6105
|
+
<span class="cline-any cline-yes">73x</span>
|
|
6106
|
+
<span class="cline-any cline-yes">69x</span>
|
|
6107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6108
|
+
<span class="cline-any cline-yes">73x</span>
|
|
5797
6109
|
<span class="cline-any cline-yes">73x</span>
|
|
5798
6110
|
<span class="cline-any cline-yes">69x</span>
|
|
5799
6111
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5841,7 +6153,6 @@
|
|
|
5841
6153
|
<span class="cline-any cline-yes">28x</span>
|
|
5842
6154
|
<span class="cline-any cline-neutral"> </span>
|
|
5843
6155
|
<span class="cline-any cline-yes">73x</span>
|
|
5844
|
-
<span class="cline-any cline-yes">73x</span>
|
|
5845
6156
|
<span class="cline-any cline-no"> </span>
|
|
5846
6157
|
<span class="cline-any cline-no"> </span>
|
|
5847
6158
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5903,6 +6214,8 @@
|
|
|
5903
6214
|
<span class="cline-any cline-neutral"> </span>
|
|
5904
6215
|
<span class="cline-any cline-yes">3x</span>
|
|
5905
6216
|
<span class="cline-any cline-neutral"> </span>
|
|
6217
|
+
<span class="cline-any cline-yes">73x</span>
|
|
6218
|
+
<span class="cline-any cline-no"> </span>
|
|
5906
6219
|
<span class="cline-any cline-neutral"> </span>
|
|
5907
6220
|
<span class="cline-any cline-yes">73x</span>
|
|
5908
6221
|
<span class="cline-any cline-yes">73x</span>
|
|
@@ -5915,6 +6228,8 @@
|
|
|
5915
6228
|
<span class="cline-any cline-yes">193x</span>
|
|
5916
6229
|
<span class="cline-any cline-neutral"> </span>
|
|
5917
6230
|
<span class="cline-any cline-neutral"> </span>
|
|
6231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
6232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5918
6233
|
<span class="cline-any cline-yes">73x</span>
|
|
5919
6234
|
<span class="cline-any cline-neutral"> </span>
|
|
5920
6235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -5922,6 +6237,7 @@
|
|
|
5922
6237
|
<span class="cline-any cline-yes">73x</span>
|
|
5923
6238
|
<span class="cline-any cline-yes">1x</span>
|
|
5924
6239
|
<span class="cline-any cline-neutral"> </span>
|
|
6240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
5925
6241
|
<span class="cline-any cline-yes">73x</span>
|
|
5926
6242
|
<span class="cline-any cline-neutral"> </span>
|
|
5927
6243
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -6162,6 +6478,8 @@ import { config } from '../config';
|
|
|
6162
6478
|
import type MemberExpression from './MemberExpression__';
|
|
6163
6479
|
import type Identifier from './Identifier__';
|
|
6164
6480
|
import { PAGE_COMPONENT_INCLUDE_TAG_MAP } from './View__';
|
|
6481
|
+
import type BusinessComponent from './BusinessComponent__';
|
|
6482
|
+
import type FrontendType from './FrontendType__';
|
|
6165
6483
|
|
|
6166
6484
|
import { kebab2Camel } from '../utils';
|
|
6167
6485
|
export interface ParseContext {
|
|
@@ -6213,6 +6531,8 @@ function <span class="fstat-no" title="function not covered" >genArgumentMemberE
|
|
|
6213
6531
|
<span class="cstat-no" title="statement not covered" > return expressionNode;</span>
|
|
6214
6532
|
}
|
|
6215
6533
|
export interface ElementToVueOptions {
|
|
6534
|
+
isRoot?: boolean;
|
|
6535
|
+
asCompontent?: boolean;
|
|
6216
6536
|
indentStyle?: 'space' | 'tab';
|
|
6217
6537
|
tabSize?: number;
|
|
6218
6538
|
indentLevel?: number;
|
|
@@ -6227,6 +6547,7 @@ export interface ElementToVueOptions {
|
|
|
6227
6547
|
bindStylesFormat?: (bindStyles: BindStyle[], element?: ViewElement, defaultResult?: string) => string | false;
|
|
6228
6548
|
finalCode?: boolean;
|
|
6229
6549
|
currentList?: string[];
|
|
6550
|
+
isDev?: boolean;
|
|
6230
6551
|
}
|
|
6231
6552
|
|
|
6232
6553
|
function <span class="fstat-no" title="function not covered" >transAstNodeToNaslNode(a</span>stNode: any, namespace?: string): any {
|
|
@@ -6404,12 +6725,20 @@ function <span class="fstat-no" title="function not covered" >transAstNodeToNasl
|
|
|
6404
6725
|
}
|
|
6405
6726
|
<span class="cstat-no" title="statement not covered" > return node;</span>
|
|
6406
6727
|
}
|
|
6728
|
+
|
|
6729
|
+
function <span class="fstat-no" title="function not covered" >isLockField(n</span>ode?:any):boolean {
|
|
6730
|
+
<span class="cstat-no" title="statement not covered" > if (!node || node.concept !== 'ViewElement') <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
6731
|
+
const attr = <span class="cstat-no" title="statement not covered" >node?.bindAttrs?.find((<span class="fstat-no" title="function not covered" >attr: any) => <span class="cstat-no" title="statement not covered" >[</span>'FormDesignerLocked','TableDesignerLocked'].includes(attr.name))</span>?.value</span>
|
|
6732
|
+
<span class="cstat-no" title="statement not covered" > if (attr === undefined) <span class="cstat-no" title="statement not covered" >return !!isLockField(node?.parentNode);</span></span>
|
|
6733
|
+
else <span class="cstat-no" title="statement not covered" >return !!attr</span>
|
|
6734
|
+
}
|
|
6735
|
+
|
|
6407
6736
|
//================================================================================
|
|
6408
6737
|
// 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
|
|
6409
6738
|
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
6410
6739
|
//================================================================================
|
|
6411
6740
|
import { EventPayload, Params } from '../common/EventEmitter';
|
|
6412
|
-
import { concept, excludedInJSON, property, getConceptConstructor
|
|
6741
|
+
import { concept, excludedInJSON, property, getConceptConstructor } from '../decorators';
|
|
6413
6742
|
|
|
6414
6743
|
import * as utils from '../utils';
|
|
6415
6744
|
import * as types from './utils/types';
|
|
@@ -7682,6 +8011,10 @@ export class ViewElement extends BaseNode {
|
|
|
7682
8011
|
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
7683
8012
|
// 自动生成的代码已结束。下面可以手动编写。
|
|
7684
8013
|
//================================================================================
|
|
8014
|
+
|
|
8015
|
+
<span class="fstat-no" title="function not covered" > get l</span>ikeComponent(): View | BusinessComponent {
|
|
8016
|
+
<span class="cstat-no" title="statement not covered" > return this.view || (this?.getAncestor('BusinessComponent') as BusinessComponent);</span>
|
|
8017
|
+
}
|
|
7685
8018
|
|
|
7686
8019
|
/* 主页面有没有权限 */
|
|
7687
8020
|
<span class="fstat-no" title="function not covered" > get p</span>arentAuth() {
|
|
@@ -7709,11 +8042,11 @@ export class ViewElement extends BaseNode {
|
|
|
7709
8042
|
}
|
|
7710
8043
|
|
|
7711
8044
|
<span class="fstat-no" title="function not covered" > getViewElementUniqueName(n</span>ame = <span class="branch-0 cbranch-no" title="branch not covered" >'viewElement1') {</span>
|
|
7712
|
-
<span class="cstat-no" title="statement not covered" > return this.
|
|
8045
|
+
<span class="cstat-no" title="statement not covered" > return this.likeComponent?.getViewElementUniqueName(name);</span>
|
|
7713
8046
|
}
|
|
7714
8047
|
|
|
7715
8048
|
<span class="fstat-no" title="function not covered" > getViewElementUniqueNameOld(n</span>ame = <span class="branch-0 cbranch-no" title="branch not covered" >'viewElement1') {</span>
|
|
7716
|
-
<span class="cstat-no" title="statement not covered" > return this.
|
|
8049
|
+
<span class="cstat-no" title="statement not covered" > return this.likeComponent?.getViewElementUniqueNameOld(name);</span>
|
|
7717
8050
|
}
|
|
7718
8051
|
|
|
7719
8052
|
public static readonly TAG_NAME_PREFIX_REG?: RegExp = /^([lieu]|van)[-_]/;
|
|
@@ -7759,16 +8092,16 @@ export class ViewElement extends BaseNode {
|
|
|
7759
8092
|
const self = <span class="cstat-no" title="statement not covered" >this;</span>
|
|
7760
8093
|
let code = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
7761
8094
|
<span class="cstat-no" title="statement not covered" > code += indent((state?.tabSize || 0) + 1);</span>
|
|
7762
|
-
|
|
7763
|
-
<span class="cstat-no" title="statement not covered" >
|
|
8095
|
+
<span class="cstat-no" title="statement not covered" > if (self.isCorrespondingBusinessComponent) {</span>
|
|
8096
|
+
<span class="cstat-no" title="statement not covered" > code += `${self.name}: ${self.correspondingBusinessComponentNamespace}.${self.tag.replace('bs-', '')};\n`;</span>
|
|
8097
|
+
<span class="cstat-no" title="statement not covered" > } else if (self.toHump(self.tag) === 'lcapLogin' || self.staticClass === 'login-form') { // 登录组件不翻译</span>
|
|
7764
8098
|
<span class="cstat-no" title="statement not covered" > code += `${self.name}: nasl.ui.div<any>;\n`;</span>
|
|
7765
8099
|
<span class="cstat-no" title="statement not covered" > } else if (self.tag === 'u-table-view-column-dynamic') {</span>
|
|
7766
8100
|
<span class="cstat-no" title="statement not covered" > code += `${self.name}: nasl.ui.${self.toHump(self.tag)}<any, any>;\n`;</span>
|
|
7767
8101
|
<span class="cstat-no" title="statement not covered" > } else if (Object.keys(PAGE_COMPONENT_INCLUDE_TAG_MAP).includes(self.tag)) {</span>
|
|
7768
8102
|
<span class="cstat-no" title="statement not covered" > if (self.bindAttrs?.findIndex((<span class="fstat-no" title="function not covered" >attr) => <span class="cstat-no" title="statement not covered" >a</span>ttr.name === 'data-source')</span> > -1) {</span>
|
|
7769
|
-
<span class="cstat-no" title="statement not covered" > code += `${self.name}: nasl.ui.${self.toHump(self.tag)}<__elements_completionProperty['${</span>
|
|
7770
|
-
|
|
7771
|
-
}']['dataSource']>;\n`;
|
|
8103
|
+
<span class="cstat-no" title="statement not covered" > code += `${self.name}: nasl.ui.${self.toHump(self.tag)}<__elements_completionProperty['${self.name</span>
|
|
8104
|
+
}']['dataSource']>;\n`;
|
|
7772
8105
|
} else {
|
|
7773
8106
|
<span class="cstat-no" title="statement not covered" > code += `${self.name}: nasl.ui.${self.toHump(self.tag)}<any>;\n`;</span>
|
|
7774
8107
|
}
|
|
@@ -7854,12 +8187,11 @@ export class ViewElement extends BaseNode {
|
|
|
7854
8187
|
const _this = <span class="cstat-no" title="statement not covered" >self.parentNode;</span>
|
|
7855
8188
|
let genericity = <span class="cstat-no" title="statement not covered" >'';</span>
|
|
7856
8189
|
<span class="cstat-no" title="statement not covered" > if (_this.tag === 'u-table-view-column-dynamic') {</span>
|
|
7857
|
-
<span class="cstat-no" title="statement not covered" > genericity += `<${(_this.parentNode as any).__tsVariableDataSourceTypeName}, ${</span>
|
|
7858
|
-
|
|
7859
|
-
}>`;
|
|
8190
|
+
<span class="cstat-no" title="statement not covered" > genericity += `<${(_this.parentNode as any).__tsVariableDataSourceTypeName}, ${(_this as any).__tsVariableDataSourceTypeName</span>
|
|
8191
|
+
}>`;
|
|
7860
8192
|
} else {
|
|
7861
8193
|
let targetNode: any = <span class="cstat-no" title="statement not covered" >_this;</span>
|
|
7862
|
-
<span class="cstat-no" title="statement not covered" > while (!targetNode.__tsVariableDataSourceTypeName && asserts.isViewElement(targetNode?.parentNode)) {</span>
|
|
8194
|
+
<span class="cstat-no" title="statement not covered" > while ((!targetNode.__tsVariableDataSourceTypeName || targetNode.__tsVariableDataSourceTypeName === 'any') && asserts.isViewElement(targetNode?.parentNode)) {</span>
|
|
7863
8195
|
<span class="cstat-no" title="statement not covered" > targetNode = targetNode.parentNode;</span>
|
|
7864
8196
|
}
|
|
7865
8197
|
<span class="cstat-no" title="statement not covered" > genericity += `<${(targetNode as any).__tsVariableDataSourceTypeName ?? 'any'}>`;</span>
|
|
@@ -7998,10 +8330,39 @@ export class ViewElement extends BaseNode {
|
|
|
7998
8330
|
code += indent((state?.tabSize || 0) + 2);
|
|
7999
8331
|
return code;
|
|
8000
8332
|
}
|
|
8333
|
+
|
|
8334
|
+
// 获取端类型
|
|
8335
|
+
<span class="fstat-no" title="function not covered" > get f</span>rontendType() {
|
|
8336
|
+
<span class="cstat-no" title="statement not covered" > return this.getAncestor('FrontendType') as FrontendType;</span>
|
|
8337
|
+
}
|
|
8338
|
+
|
|
8339
|
+
// 对应业务组件
|
|
8340
|
+
get isCorrespondingBusinessComponent() {
|
|
8341
|
+
return this.tag.startsWith('bs-');
|
|
8342
|
+
}
|
|
8343
|
+
|
|
8344
|
+
// 对应的业务组件的Namespace
|
|
8345
|
+
<span class="fstat-no" title="function not covered" > get c</span>orrespondingBusinessComponentNamespace() {
|
|
8346
|
+
<span class="cstat-no" title="statement not covered" > return `${this.frontendType?.getNamespace()}.${this.frontendType?.name}.businessComponents`;</span>
|
|
8347
|
+
}
|
|
8348
|
+
|
|
8349
|
+
// 获取对应的业务组件
|
|
8350
|
+
get correspondingBusinessComponent() {
|
|
8351
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (this.isCorrespondingBusinessComponent) {
|
|
8352
|
+
// 端下的业务组件
|
|
8353
|
+
const businessComponents = <span class="cstat-no" title="statement not covered" >this.frontendType?.businessComponents;</span>
|
|
8354
|
+
const businessComponent = <span class="cstat-no" title="statement not covered" >businessComponents.find((<span class="fstat-no" title="function not covered" >businessComponent) => {</span></span>
|
|
8355
|
+
<span class="cstat-no" title="statement not covered" > return `bs-${businessComponent?.name}` === this.tag;</span>
|
|
8356
|
+
});
|
|
8357
|
+
<span class="cstat-no" title="statement not covered" > return businessComponent;</span>
|
|
8358
|
+
}
|
|
8359
|
+
}
|
|
8360
|
+
|
|
8361
|
+
|
|
8001
8362
|
@withSourceMapGenerator
|
|
8002
8363
|
*toEmbeddedTS(state = createCompilerState(), parentLevel?: number): TranslatorGenerator {
|
|
8003
8364
|
const self = this;
|
|
8004
|
-
const { parentNode, app, tag, staticClass, name,
|
|
8365
|
+
const { parentNode, app, tag, staticClass, name, bindRoles, bindEvents, children } = self;
|
|
8005
8366
|
const chineseTsName = (name: string) => {
|
|
8006
8367
|
let tsName = name;
|
|
8007
8368
|
// 匹配所有特殊字符都转为_
|
|
@@ -8077,8 +8438,12 @@ export class ViewElement extends BaseNode {
|
|
|
8077
8438
|
code += '},\n';
|
|
8078
8439
|
return code;
|
|
8079
8440
|
}
|
|
8441
|
+
let namespace = `nasl.ui.${self.toHump(tag)}`;
|
|
8442
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (self.isCorrespondingBusinessComponent) {
|
|
8443
|
+
<span class="cstat-no" title="statement not covered" > namespace = `${self.correspondingBusinessComponentNamespace}.${self.tag.replace('bs-', '')}`;</span>
|
|
8444
|
+
}
|
|
8080
8445
|
// 后面那个name是为了查找引用的时候用的
|
|
8081
|
-
let code = `new
|
|
8446
|
+
let code = `new ${namespace}${self.getTypeArgmentsStr(state)}({name: __elements.${name},\n`;
|
|
8082
8447
|
// 是否开启权限
|
|
8083
8448
|
// const hasAuth = Array.isArray(bindDirectives)
|
|
8084
8449
|
// ? !!bindDirectives.filter((directive) => directive.name === 'auth').length
|
|
@@ -8110,8 +8475,18 @@ export class ViewElement extends BaseNode {
|
|
|
8110
8475
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (Array.isArray(children)) {
|
|
8111
8476
|
code += indent((state?.tabSize || 0) + 1);
|
|
8112
8477
|
<span class="missing-if-branch" title="else path not taken" >E</span>if (Array.isArray(self.bindAttrs)) {
|
|
8113
|
-
code += `bindAttr:
|
|
8478
|
+
code += `bindAttr: `;
|
|
8479
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (self.isCorrespondingBusinessComponent) {
|
|
8480
|
+
<span class="cstat-no" title="statement not covered" > code += `{\n`;</span>
|
|
8481
|
+
} else {
|
|
8482
|
+
code += `() => [\n`;
|
|
8483
|
+
}
|
|
8114
8484
|
yield* wrapForEach(self.bindAttrs, function* warpForEachGenerator(attr) {
|
|
8485
|
+
// 过滤自由布局的key
|
|
8486
|
+
const shouldFilter = self.isCorrespondingBusinessComponent && (<span class="branch-1 cbranch-no" title="branch not covered" >attr.name === 'key' && <span class="branch-2 cbranch-no" title="branch not covered" >!</span>attr.expression);</span>
|
|
8487
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (shouldFilter) {
|
|
8488
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
8489
|
+
}
|
|
8115
8490
|
code += (yield* attr.toEmbeddedTS(shiftState(state, code, { tabSize: 1 }))) + ',\n';
|
|
8116
8491
|
});
|
|
8117
8492
|
yield* wrapForEach(self.bindDirectives, function* warpForEachGenerator(directive) {
|
|
@@ -8120,7 +8495,12 @@ export class ViewElement extends BaseNode {
|
|
|
8120
8495
|
yield* wrapForEach(self.bindStyles, function* <span class="fstat-no" title="function not covered" >warpForEachGenerator(b</span>indStyle) {
|
|
8121
8496
|
<span class="cstat-no" title="statement not covered" > code += (yield* bindStyle.toEmbeddedTS(shiftState(state, code, { tabSize: 1 }))) + ',\n';</span>
|
|
8122
8497
|
});
|
|
8123
|
-
code += indent((state?.tabSize || 0) + 2)
|
|
8498
|
+
code += indent((state?.tabSize || 0) + 2)
|
|
8499
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (self.isCorrespondingBusinessComponent) {
|
|
8500
|
+
<span class="cstat-no" title="statement not covered" > code += '},\n';</span>
|
|
8501
|
+
} else {
|
|
8502
|
+
code += '],\n';
|
|
8503
|
+
}
|
|
8124
8504
|
}
|
|
8125
8505
|
// 如果子集中有插槽的就
|
|
8126
8506
|
if (children.find((item) => item.tag === 'template' && item.slotTarget)) {
|
|
@@ -8181,7 +8561,7 @@ export class ViewElement extends BaseNode {
|
|
|
8181
8561
|
}
|
|
8182
8562
|
code += indent(state?.tabSize || 0) + '})';
|
|
8183
8563
|
// 顶层元素是单独的表达式
|
|
8184
|
-
if (parentNode.concept === 'View') {
|
|
8564
|
+
if (parentNode.concept === 'View' || asserts.isBusinessComponent(parentNode)) {
|
|
8185
8565
|
code += ';\n';
|
|
8186
8566
|
} else {
|
|
8187
8567
|
code += ',\n';
|
|
@@ -8294,9 +8674,19 @@ export class ViewElement extends BaseNode {
|
|
|
8294
8674
|
{ mode: 'anyObject', excludedKeySet: element.JSON_EXCLUDED_KEYS },
|
|
8295
8675
|
);
|
|
8296
8676
|
|
|
8297
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
8677
|
+
<span class="cstat-no" title="statement not covered" > this.likeComponent?.existingViewElement.clear();</span>
|
|
8298
8678
|
<span class="cstat-no" title="statement not covered" > return element;</span>
|
|
8299
8679
|
}
|
|
8680
|
+
|
|
8681
|
+
<span class="fstat-no" title="function not covered" > setTag(t</span>ag: string) {
|
|
8682
|
+
const object = <span class="cstat-no" title="statement not covered" >{</span>
|
|
8683
|
+
tag,
|
|
8684
|
+
};
|
|
8685
|
+
<span class="cstat-no" title="statement not covered" > this.update({</span>
|
|
8686
|
+
...object,
|
|
8687
|
+
|
|
8688
|
+
});
|
|
8689
|
+
}
|
|
8300
8690
|
|
|
8301
8691
|
// 递归遍历组件
|
|
8302
8692
|
public <span class="fstat-no" title="function not covered" >traverseChildren(c</span>b: (ele: ViewElement) => void): void {
|
|
@@ -8356,7 +8746,7 @@ export class ViewElement extends BaseNode {
|
|
|
8356
8746
|
expression: transAstNodeToNaslNode(Object.assign({}, argument)),
|
|
8357
8747
|
}));
|
|
8358
8748
|
}
|
|
8359
|
-
} catch (error) {}
|
|
8749
|
+
} catch (error) { }
|
|
8360
8750
|
|
|
8361
8751
|
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
8362
8752
|
concept: 'ValidationRule',
|
|
@@ -8651,8 +9041,10 @@ export class ViewElement extends BaseNode {
|
|
|
8651
9041
|
* 转换成设计器中使用的 Vue 文件
|
|
8652
9042
|
* @param options
|
|
8653
9043
|
*/
|
|
8654
|
-
<span class="fstat-no" title="function not covered" > toDesignerVue() {
|
|
9044
|
+
<span class="fstat-no" title="function not covered" > toDesignerVue(o</span>ptions?: { isRoot: boolean; asCompontent?: boolean }) {
|
|
8655
9045
|
<span class="cstat-no" title="statement not covered" > return this.toVue({</span>
|
|
9046
|
+
isRoot: options?.isRoot,
|
|
9047
|
+
asCompontent: options?.asCompontent,
|
|
8656
9048
|
finalCode: false,
|
|
8657
9049
|
nodePathAttr: true,
|
|
8658
9050
|
attrFormat: <span class="fstat-no" title="function not covered" >(a</span>ttr: BindAttribute | BindEvent | BindDirective, element?: ViewElement, defaultResult?: string) => {
|
|
@@ -8711,6 +9103,10 @@ export class ViewElement extends BaseNode {
|
|
|
8711
9103
|
.replace(/\$global./g, 'nasl.')
|
|
8712
9104
|
.replace(/\bscope\.item\.\b/g, '')
|
|
8713
9105
|
.replace(/\bcurrent\.item\.\b/g, '');
|
|
9106
|
+
|
|
9107
|
+
<span class="cstat-no" title="statement not covered" > if (isLockField(element)) {</span>
|
|
9108
|
+
<span class="cstat-no" title="statement not covered" > return element.tag === 'u-text' ? `${name}="--"` : `${name}=""`</span>
|
|
9109
|
+
}
|
|
8714
9110
|
<span class="cstat-no" title="statement not covered" > return `${name}="{{ ${value} }}"`;</span>
|
|
8715
9111
|
});
|
|
8716
9112
|
else <span class="cstat-no" title="statement not covered" >return defaultResult;</span>
|
|
@@ -8779,15 +9175,20 @@ export class ViewElement extends BaseNode {
|
|
|
8779
9175
|
|
|
8780
9176
|
<span class="cstat-no" title="statement not covered" > return parts;</span>
|
|
8781
9177
|
},
|
|
9178
|
+
isDev: true,
|
|
8782
9179
|
});
|
|
8783
9180
|
}
|
|
9181
|
+
|
|
9182
|
+
isLikeComponent(node: types.SyntaxNode) {
|
|
9183
|
+
return ['View', 'BusinessComponent'].includes(node?.concept);
|
|
9184
|
+
}
|
|
8784
9185
|
|
|
8785
9186
|
// 获取currentList
|
|
8786
9187
|
getCurrentList() {
|
|
8787
9188
|
const argsList: string[] = [];
|
|
8788
9189
|
let parent = this.parentNode;
|
|
8789
9190
|
let index = 0;
|
|
8790
|
-
while (parent && parent
|
|
9191
|
+
while (parent && !this.isLikeComponent(parent)) {
|
|
8791
9192
|
if ((parent as ViewElement).slotScope) {
|
|
8792
9193
|
argsList.push(index === 0 ? 'current' : <span class="branch-1 cbranch-no" title="branch not covered" >'current' + index)</span>;
|
|
8793
9194
|
index++;
|
|
@@ -8826,11 +9227,80 @@ export class ViewElement extends BaseNode {
|
|
|
8826
9227
|
|
|
8827
9228
|
return null;
|
|
8828
9229
|
}
|
|
9230
|
+
|
|
9231
|
+
<span class="fstat-no" title="function not covered" > get b</span>usinessComponent() {
|
|
9232
|
+
<span class="cstat-no" title="statement not covered" > return this.getAncestor('BusinessComponent');</span>
|
|
9233
|
+
}
|
|
8829
9234
|
|
|
8830
9235
|
/**
|
|
8831
9236
|
* 转换成 Vue 的模板格式
|
|
8832
9237
|
*/
|
|
8833
9238
|
toVue(options?: ElementToVueOptions) {
|
|
9239
|
+
|
|
9240
|
+
// lockField 不翻译modal
|
|
9241
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (options?.isDev && <span class="branch-1 cbranch-no" title="branch not covered" >this?.tag === 'u-modal' && <span class="branch-2 cbranch-no" title="branch not covered" >i</span>sLockField(this)) {</span>
|
|
9242
|
+
<span class="cstat-no" title="statement not covered" > return ``;</span>
|
|
9243
|
+
}
|
|
9244
|
+
|
|
9245
|
+
const { finalCode, asCompontent } = options || {};
|
|
9246
|
+
const parts: string[] = [];
|
|
9247
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (finalCode === false) {
|
|
9248
|
+
<span class="cstat-no" title="statement not covered" > if (this.tag === 'slot') {</span>
|
|
9249
|
+
<span class="cstat-no" title="statement not covered" > if (asCompontent) {</span>
|
|
9250
|
+
<span class="cstat-no" title="statement not covered" > return `<div vusion-slot-name="${this.name}"></span>
|
|
9251
|
+
<slot name="${this.name}">
|
|
9252
|
+
<div s-empty="true" bs-empty="true" style="background: #f7f8fa;
|
|
9253
|
+
border: 1px dashed #c3c3c3;
|
|
9254
|
+
text-align: center;
|
|
9255
|
+
color: #999;
|
|
9256
|
+
min-height: 32px;
|
|
9257
|
+
min-width: 32px;
|
|
9258
|
+
width: 100%;
|
|
9259
|
+
align-items: center;
|
|
9260
|
+
display: inline-flex;
|
|
9261
|
+
justify-content: center;">
|
|
9262
|
+
+
|
|
9263
|
+
</div>
|
|
9264
|
+
</slot>
|
|
9265
|
+
</div>`;
|
|
9266
|
+
} else {
|
|
9267
|
+
<span class="cstat-no" title="statement not covered" > return `<div vusion-node-path="${this.nodePath}"</span>
|
|
9268
|
+
style="background: linear-gradient(-45deg,#fff 25%,#f3f5fa 0,#f3f5fa 50%,#fff 0,#fff 75%,#f3f5fa 0);
|
|
9269
|
+
background-size: 45px 45px;
|
|
9270
|
+
background-repeat: repeat;
|
|
9271
|
+
line-height: 32px;
|
|
9272
|
+
min-height: 32px;
|
|
9273
|
+
color: var(--font-second-color);
|
|
9274
|
+
text-align: center;">
|
|
9275
|
+
组件占位,可在使用业务组件时插入任意组件
|
|
9276
|
+
</div>`;
|
|
9277
|
+
}
|
|
9278
|
+
<span class="cstat-no" title="statement not covered" > } else if (this.businessComponent?.name === this.tag) {</span>
|
|
9279
|
+
// 组件内部使用自身的情况
|
|
9280
|
+
<span class="cstat-no" title="statement not covered" > return `<div vusion-node-path="${this.nodePath}"</span>
|
|
9281
|
+
style="background: linear-gradient(-45deg,#fff 25%,#f3f5fa 0,#f3f5fa 50%,#fff 0,#fff 75%,#f3f5fa 0);
|
|
9282
|
+
background-size: 45px 45px;
|
|
9283
|
+
background-repeat: repeat;
|
|
9284
|
+
line-height: 32px;
|
|
9285
|
+
min-height: 32px;
|
|
9286
|
+
color: var(--font-second-color);
|
|
9287
|
+
text-align: center;">
|
|
9288
|
+
在组件内部使用自身可能会导致循环引用,请谨慎使用
|
|
9289
|
+
</div>`;
|
|
9290
|
+
}
|
|
9291
|
+
const isRoot = <span class="cstat-no" title="statement not covered" >options.isRoot;</span>
|
|
9292
|
+
<span class="cstat-no" title="statement not covered" > if (isRoot && !options?.asCompontent) {</span>
|
|
9293
|
+
<span class="cstat-no" title="statement not covered" > parts.push('type="root"');</span>
|
|
9294
|
+
<span class="cstat-no" title="statement not covered" > if (this.frontendType?.kind === 'h5') {</span>
|
|
9295
|
+
<span class="cstat-no" title="statement not covered" > parts.push('class="l-root-h5"');</span>
|
|
9296
|
+
} else {
|
|
9297
|
+
<span class="cstat-no" title="statement not covered" > parts.push('style="height:100%; --custom-start: auto; min-height: 200px;"');</span>
|
|
9298
|
+
}
|
|
9299
|
+
}
|
|
9300
|
+
}
|
|
9301
|
+
if (options) {
|
|
9302
|
+
options.isRoot = false;
|
|
9303
|
+
}
|
|
8834
9304
|
let currentList: string[] = [];
|
|
8835
9305
|
if (Array.isArray(options?.currentList)) {
|
|
8836
9306
|
currentList = [...options?.currentList];
|
|
@@ -8869,16 +9339,15 @@ export class ViewElement extends BaseNode {
|
|
|
8869
9339
|
const content: string = !this.children
|
|
8870
9340
|
? <span class="branch-0 cbranch-no" title="branch not covered" >''</span>
|
|
8871
9341
|
: this.children
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8876
|
-
|
|
8877
|
-
|
|
9342
|
+
.map((element) => {
|
|
9343
|
+
const childOptions = Object.assign({}, newOptions);
|
|
9344
|
+
childOptions.indentLevel++;
|
|
9345
|
+
return (shouldIndent ? '\n' + insideTabString : <span class="branch-1 cbranch-no" title="branch not covered" >'') + e</span>lement?.toVue(childOptions);
|
|
9346
|
+
})
|
|
9347
|
+
.join('');
|
|
8878
9348
|
if (!content.length) {
|
|
8879
9349
|
shouldIndent = false;
|
|
8880
9350
|
}
|
|
8881
|
-
const parts: string[] = [];
|
|
8882
9351
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (newOptions.aslIdAttr) {
|
|
8883
9352
|
<span class="cstat-no" title="statement not covered" > if (newOptions.aslIdAttr === true) {</span>
|
|
8884
9353
|
<span class="cstat-no" title="statement not covered" > newOptions.aslIdAttr = 'asl-id';</span>
|
|
@@ -8893,9 +9362,9 @@ export class ViewElement extends BaseNode {
|
|
|
8893
9362
|
this.slotTarget &&
|
|
8894
9363
|
parts.push(
|
|
8895
9364
|
`#${this.slotTarget}` +
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
9365
|
+
(this.slotScope
|
|
9366
|
+
? `="${currentList.length > 1 ? <span class="branch-0 cbranch-no" title="branch not covered" >this.slotScope + (currentList.length - 1) : t</span>his.slotScope}"`
|
|
9367
|
+
: ''),
|
|
8899
9368
|
);
|
|
8900
9369
|
this.refName && parts.push(`:ref="\`${this.refName}\`"`);
|
|
8901
9370
|
this.keyName && parts.push(`:key="\`${this.keyName}\`"`);
|
|
@@ -8941,7 +9410,9 @@ export class ViewElement extends BaseNode {
|
|
|
8941
9410
|
) {
|
|
8942
9411
|
this.name && parts.push(`key="${this.name}"`);
|
|
8943
9412
|
}
|
|
8944
|
-
|
|
9413
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (this.tag === 'slot') {
|
|
9414
|
+
<span class="cstat-no" title="statement not covered" > this.name && parts.push(`name="${this.name}"`);</span>
|
|
9415
|
+
}
|
|
8945
9416
|
let partsLength = 0;
|
|
8946
9417
|
let partsString = '';
|
|
8947
9418
|
parts.forEach((part) => {
|
|
@@ -8952,6 +9423,8 @@ export class ViewElement extends BaseNode {
|
|
|
8952
9423
|
partsString += ' ' + part;
|
|
8953
9424
|
partsLength += part.length;
|
|
8954
9425
|
});
|
|
9426
|
+
|
|
9427
|
+
|
|
8955
9428
|
let htmlContent =
|
|
8956
9429
|
`<${this.tag}${partsString.length ? partsString : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>>` +
|
|
8957
9430
|
content +
|
|
@@ -8960,6 +9433,7 @@ export class ViewElement extends BaseNode {
|
|
|
8960
9433
|
if (!content.trim() && selfClosingTag.includes(this.tag)) {
|
|
8961
9434
|
htmlContent = `<${this.tag}${partsString.length ? partsString : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span> />`;
|
|
8962
9435
|
}
|
|
9436
|
+
|
|
8963
9437
|
return htmlContent;
|
|
8964
9438
|
}
|
|
8965
9439
|
|
|
@@ -8971,7 +9445,7 @@ export class ViewElement extends BaseNode {
|
|
|
8971
9445
|
<span class="cstat-no" title="statement not covered" > super.delete();</span>
|
|
8972
9446
|
<span class="cstat-no" title="statement not covered" > if (this.parentNode) {</span>
|
|
8973
9447
|
<span class="cstat-no" title="statement not covered" > this.traverseChildren((<span class="fstat-no" title="function not covered" >ele: ViewElement) => {</span></span>
|
|
8974
|
-
(<span class="cstat-no" title="statement not covered" >this.
|
|
9448
|
+
(<span class="cstat-no" title="statement not covered" >this.likeComponent as any)?.removeExistingViewElement(ele);</span>
|
|
8975
9449
|
});
|
|
8976
9450
|
}
|
|
8977
9451
|
}
|
|
@@ -9009,7 +9483,7 @@ export class ViewElement extends BaseNode {
|
|
|
9009
9483
|
let current = <span class="cstat-no" title="statement not covered" >'current';</span>
|
|
9010
9484
|
let parent = <span class="cstat-no" title="statement not covered" >this.parentNode;</span>
|
|
9011
9485
|
let index = <span class="cstat-no" title="statement not covered" >0;</span>
|
|
9012
|
-
<span class="cstat-no" title="statement not covered" > while (parent && parent
|
|
9486
|
+
<span class="cstat-no" title="statement not covered" > while (parent && !this.isLikeComponent(parent)) {</span>
|
|
9013
9487
|
<span class="cstat-no" title="statement not covered" > if ((parent as ViewElement).slotScope) {</span>
|
|
9014
9488
|
<span class="cstat-no" title="statement not covered" > index++;</span>
|
|
9015
9489
|
}
|
|
@@ -9184,7 +9658,7 @@ export default ViewElement;
|
|
|
9184
9658
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
9185
9659
|
Code coverage generated by
|
|
9186
9660
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
9187
|
-
at 2023-12-
|
|
9661
|
+
at 2023-12-20T14:01:00.156Z
|
|
9188
9662
|
</div>
|
|
9189
9663
|
<script src="../../prettify.js"></script>
|
|
9190
9664
|
<script>
|