import type { Embedded } from '@lcap/nasl-types'; import { TranslatorGenerator } from '@lcap/nasl-translator'; import type Assignment from './Assignment__'; import type BatchAssignment from './BatchAssignment__'; import type CallFunction from './CallFunction__'; import type FrontendType from './FrontendType__'; import type Frontend from './Frontend__'; import type Logic from './Logic__'; import type Param from './Param__'; import { ElementToVueOptions } from './ViewElement__'; import { EventPayload } from '../common/types'; import BaseNode from '../common/BaseNode'; import type Event from './Event__'; import type ParamWithGroup from './ParamWithGroup__'; import type Variable from './Variable__'; import type BindEvent from './BindEvent__'; import type BusinessLogic from './BusinessLogic__'; import type ViewElement from './ViewElement__'; /** * 业务组件 */ export declare class BusinessComponent extends BaseNode { /** 类名 */ static readonly ConceptName: string; /** * 是否为抽象类 * 抽象类不能产生 concept: string */ static isAbstract: boolean; /** 继承链 */ static readonly inheritanceChain: string[]; /** * 产品概念 */ readonly concept: 'BusinessComponent'; /** * 业务组件名称 */ name: string; /** * 业务组件标题 */ title: string; /** * 业务组件描述 */ description?: string; /** * 组件事件列表 */ events: Array; /** * 参数分组列表 */ params: Array; /** * 变量列表 */ variables: Array; /** * 元素绑定事件列表 */ bindEvents: Array; /** * 业务组件逻辑列表 */ logics: Array; /** * 页面元素列表 */ elements: Array; /** * icon */ icon: string; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); static from(source: any, parentNode?: any, parentKey?: string): BusinessComponent; /** * 设置业务组件名称 */ setName(name: string): void; /** * 设置业务组件标题 */ setTitle(title: string): void; /** * 设置业务组件描述 */ setDescription(description: string): void; /** * 设置icon */ setIcon(icon: string): void; getEventExistingNames(excludedList?: Array): string[]; getEventUniqueName(name?: string): string; /** * 插入组件事件 * @internal * @param name 组件事件名称,如果不填会自动生成一个唯一名称 */ _insertEventAt(name: string, index: number): Event; /** * 插入组件事件 * @internal * @param eventOptions 组件事件参数 */ _insertEventAt(eventOptions: Partial, index: number): Event; /** * 插入组件事件 * @internal * @param event 已有的组件事件实例 */ _insertEventAt(event: Event, index: number): Event; /** * 插入组件事件 * @param name 组件事件名称,如果不填会自动生成一个唯一名称 */ insertEventAt(name: string, index: number): Event; /** * 插入组件事件 * @param eventOptions 组件事件参数 */ insertEventAt(eventOptions: Partial, index: number): Event; /** * 插入组件事件 * @param event 已有的组件事件实例 */ insertEventAt(event: Event, index: number): Event; /** * 添加组件事件 * @internal * @param name 组件事件名称,如果不填会自动生成一个唯一名称 */ _addEvent(name?: string): Event; /** * 添加组件事件 * @internal * @param eventOptions 组件事件参数 */ _addEvent(eventOptions: Partial): Event; /** * 添加组件事件 * @internal * @param event 已有的组件事件实例 */ _addEvent(event: Event): Event; /** * 添加组件事件 * @internal * @param name 组件事件名称,如果不填会自动生成一个唯一名称 */ addEvent(name?: string): Event; /** * 添加组件事件 * @param eventOptions 组件事件参数 */ addEvent(eventOptions: Partial): Event; /** * 添加组件事件 * @param event 已有的组件事件实例 */ addEvent(event: Event): Event; getParamUniqueName(name?: string): string; /** * 插入带分组的参数 * @internal * @param name 带分组的参数名称,如果不填会自动生成一个唯一名称 */ _insertParamAt(name: string, index: number): ParamWithGroup; /** * 插入带分组的参数 * @internal * @param paramOptions 带分组的参数参数 */ _insertParamAt(paramOptions: Partial, index: number): ParamWithGroup; /** * 插入带分组的参数 * @internal * @param param 已有的带分组的参数实例 */ _insertParamAt(param: ParamWithGroup, index: number): ParamWithGroup; /** * 插入带分组的参数 * @param name 带分组的参数名称,如果不填会自动生成一个唯一名称 */ insertParamAt(name: string, index: number): ParamWithGroup; /** * 插入带分组的参数 * @param paramOptions 带分组的参数参数 */ insertParamAt(paramOptions: Partial, index: number): ParamWithGroup; /** * 插入带分组的参数 * @param param 已有的带分组的参数实例 */ insertParamAt(param: ParamWithGroup, index: number): ParamWithGroup; /** * 添加带分组的参数 * @internal * @param name 带分组的参数名称,如果不填会自动生成一个唯一名称 */ _addParam(name?: string): ParamWithGroup; /** * 添加带分组的参数 * @internal * @param paramOptions 带分组的参数参数 */ _addParam(paramOptions: Partial): ParamWithGroup; /** * 添加带分组的参数 * @internal * @param param 已有的带分组的参数实例 */ _addParam(param: ParamWithGroup): ParamWithGroup; /** * 添加带分组的参数 * @internal * @param name 带分组的参数名称,如果不填会自动生成一个唯一名称 */ addParam(name?: string): ParamWithGroup; /** * 添加带分组的参数 * @param paramOptions 带分组的参数参数 */ addParam(paramOptions: Partial): ParamWithGroup; /** * 添加带分组的参数 * @param param 已有的带分组的参数实例 */ addParam(param: ParamWithGroup): ParamWithGroup; getVariableUniqueName(name?: string): string; /** * 插入变量 * @internal * @param name 变量名称,如果不填会自动生成一个唯一名称 */ _insertVariableAt(name: string, index: number): Variable; /** * 插入变量 * @internal * @param variableOptions 变量参数 */ _insertVariableAt(variableOptions: Partial, index: number): Variable; /** * 插入变量 * @internal * @param variable 已有的变量实例 */ _insertVariableAt(variable: Variable, index: number): Variable; /** * 插入变量 * @param name 变量名称,如果不填会自动生成一个唯一名称 */ insertVariableAt(name: string, index: number): Variable; /** * 插入变量 * @param variableOptions 变量参数 */ insertVariableAt(variableOptions: Partial, index: number): Variable; /** * 插入变量 * @param variable 已有的变量实例 */ insertVariableAt(variable: Variable, index: number): Variable; /** * 添加变量 * @internal * @param name 变量名称,如果不填会自动生成一个唯一名称 */ _addVariable(name?: string): Variable; /** * 添加变量 * @internal * @param variableOptions 变量参数 */ _addVariable(variableOptions: Partial): Variable; /** * 添加变量 * @internal * @param variable 已有的变量实例 */ _addVariable(variable: Variable): Variable; /** * 添加变量 * @internal * @param name 变量名称,如果不填会自动生成一个唯一名称 */ addVariable(name?: string): Variable; /** * 添加变量 * @param variableOptions 变量参数 */ addVariable(variableOptions: Partial): Variable; /** * 添加变量 * @param variable 已有的变量实例 */ addVariable(variable: Variable): Variable; getBindEventExistingNames(excludedList?: Array): string[]; getBindEventUniqueName(name?: string): string; /** * 插入元素绑定事件 * @internal * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称 */ _insertBindEventAt(name: string, index: number): BindEvent; /** * 插入元素绑定事件 * @internal * @param bindEventOptions 元素绑定事件参数 */ _insertBindEventAt(bindEventOptions: Partial, index: number): BindEvent; /** * 插入元素绑定事件 * @internal * @param bindEvent 已有的元素绑定事件实例 */ _insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent; /** * 插入元素绑定事件 * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称 */ insertBindEventAt(name: string, index: number): BindEvent; /** * 插入元素绑定事件 * @param bindEventOptions 元素绑定事件参数 */ insertBindEventAt(bindEventOptions: Partial, index: number): BindEvent; /** * 插入元素绑定事件 * @param bindEvent 已有的元素绑定事件实例 */ insertBindEventAt(bindEvent: BindEvent, index: number): BindEvent; /** * 添加元素绑定事件 * @internal * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称 */ _addBindEvent(name?: string): BindEvent; /** * 添加元素绑定事件 * @internal * @param bindEventOptions 元素绑定事件参数 */ _addBindEvent(bindEventOptions: Partial): BindEvent; /** * 添加元素绑定事件 * @internal * @param bindEvent 已有的元素绑定事件实例 */ _addBindEvent(bindEvent: BindEvent): BindEvent; /** * 添加元素绑定事件 * @internal * @param name 元素绑定事件名称,如果不填会自动生成一个唯一名称 */ addBindEvent(name?: string): BindEvent; /** * 添加元素绑定事件 * @param bindEventOptions 元素绑定事件参数 */ addBindEvent(bindEventOptions: Partial): BindEvent; /** * 添加元素绑定事件 * @param bindEvent 已有的元素绑定事件实例 */ addBindEvent(bindEvent: BindEvent): BindEvent; getLogicUniqueName(name?: string): string; /** * 插入业务组件逻辑 * @internal * @param name 业务组件逻辑名称,如果不填会自动生成一个唯一名称 */ _insertLogicAt(name: string, index: number): BusinessLogic; /** * 插入业务组件逻辑 * @internal * @param logicOptions 业务组件逻辑参数 */ _insertLogicAt(logicOptions: Partial, index: number): BusinessLogic; /** * 插入业务组件逻辑 * @internal * @param logic 已有的业务组件逻辑实例 */ _insertLogicAt(logic: BusinessLogic, index: number): BusinessLogic; /** * 插入业务组件逻辑 * @param name 业务组件逻辑名称,如果不填会自动生成一个唯一名称 */ insertLogicAt(name: string, index: number): BusinessLogic; /** * 插入业务组件逻辑 * @param logicOptions 业务组件逻辑参数 */ insertLogicAt(logicOptions: Partial, index: number): BusinessLogic; /** * 插入业务组件逻辑 * @param logic 已有的业务组件逻辑实例 */ insertLogicAt(logic: BusinessLogic, index: number): BusinessLogic; /** * 添加业务组件逻辑 * @internal * @param name 业务组件逻辑名称,如果不填会自动生成一个唯一名称 */ _addLogic(name?: string): BusinessLogic; /** * 添加业务组件逻辑 * @internal * @param logicOptions 业务组件逻辑参数 */ _addLogic(logicOptions: Partial): BusinessLogic; /** * 添加业务组件逻辑 * @internal * @param logic 已有的业务组件逻辑实例 */ _addLogic(logic: BusinessLogic): BusinessLogic; /** * 添加业务组件逻辑 * @internal * @param name 业务组件逻辑名称,如果不填会自动生成一个唯一名称 */ addLogic(name?: string): BusinessLogic; /** * 添加业务组件逻辑 * @param logicOptions 业务组件逻辑参数 */ addLogic(logicOptions: Partial): BusinessLogic; /** * 添加业务组件逻辑 * @param logic 已有的业务组件逻辑实例 */ addLogic(logic: BusinessLogic): BusinessLogic; /** * 插入页面元素 * @internal * @param name 页面元素名称,如果不填会自动生成一个唯一名称 */ _insertViewElementAt(name: string, index: number): ViewElement; /** * 插入页面元素 * @internal * @param viewElementOptions 页面元素参数 */ _insertViewElementAt(viewElementOptions: Partial, index: number): ViewElement; /** * 插入页面元素 * @internal * @param viewElement 已有的页面元素实例 */ _insertViewElementAt(viewElement: ViewElement, index: number): ViewElement; /** * 插入页面元素 * @param name 页面元素名称,如果不填会自动生成一个唯一名称 */ insertViewElementAt(name: string, index: number): ViewElement; /** * 插入页面元素 * @param viewElementOptions 页面元素参数 */ insertViewElementAt(viewElementOptions: Partial, index: number): ViewElement; /** * 插入页面元素 * @param viewElement 已有的页面元素实例 */ insertViewElementAt(viewElement: ViewElement, index: number): ViewElement; /** * 添加页面元素 * @internal * @param name 页面元素名称,如果不填会自动生成一个唯一名称 */ _addViewElement(name?: string): ViewElement; /** * 添加页面元素 * @internal * @param viewElementOptions 页面元素参数 */ _addViewElement(viewElementOptions: Partial): ViewElement; /** * 添加页面元素 * @internal * @param viewElement 已有的页面元素实例 */ _addViewElement(viewElement: ViewElement): ViewElement; /** * 添加页面元素 * @internal * @param name 页面元素名称,如果不填会自动生成一个唯一名称 */ addViewElement(name?: string): ViewElement; /** * 添加页面元素 * @param viewElementOptions 页面元素参数 */ addViewElement(viewElementOptions: Partial): ViewElement; /** * 添加页面元素 * @param viewElement 已有的页面元素实例 */ addViewElement(viewElement: ViewElement): ViewElement; /** * 删除组件事件 * @param name 组件事件名称 */ removeEvent(name: string): void; /** * 删除组件事件 * @param event 已有的组件事件实例 */ removeEvent(event: Event): void; /** * 删除带分组的参数 * @param name 带分组的参数名称 */ removeParam(name: string): void; /** * 删除带分组的参数 * @param param 已有的带分组的参数实例 */ removeParam(param: ParamWithGroup): void; /** * 删除变量 * @param name 变量名称 */ removeVariable(name: string): void; /** * 删除变量 * @param variable 已有的变量实例 */ removeVariable(variable: Variable): void; /** * 删除元素绑定事件 * @param name 元素绑定事件名称 */ removeBindEvent(name: string): void; /** * 删除元素绑定事件 * @param bindEvent 已有的元素绑定事件实例 */ removeBindEvent(bindEvent: BindEvent): void; /** * 删除业务组件逻辑 * @param name 业务组件逻辑名称 */ removeLogic(name: string): void; /** * 删除业务组件逻辑 * @param logic 已有的业务组件逻辑实例 */ removeLogic(logic: BusinessLogic): void; /** * 删除页面元素 * @param name 页面元素名称 */ removeViewElement(name: string): void; /** * 删除页面元素 * @param viewElement 已有的页面元素实例 */ removeViewElement(viewElement: ViewElement): void; setViewCacheType(type: string): void; getViewCacheType(type: string): string; autoGenBindAttrExpExample(): void; getLogicExistingNames(excludedList?: Array): any[]; static getDefaultOptions(): { title: string; icon: string; }; getNamespace(): string; getTsNamespace(): string; /** * 获取当前业务组件下所有elements上bindEvents下的logic */ elementLogicRoot: any[]; getElementLogicRoot(skipIdentifier?: boolean): void; getVarExistingNames(excludedList?: Array): any[]; existingViewElement: Set; collectExistingViewElementName(excludedList?: Array): void; collectExistingBusinessComponent(): Set; getViewElementExistingNames(excludedList?: Array): string[]; getViewElementUniqueNameOld(name?: string): string; getViewElementUniqueName(name?: string): string; getViewElementByName(name: string): ViewElement; elementsMethods(elements: Array, allMethods: Array, parentNodeNames: Array): void; mergeBlock({ code, nodePath, position, slotTarget, cb, }: { code: string; nodePath: string; position: string; slotTarget?: string; cb?: Function; }): ViewElement; mergeDefinitions(code: string): void; mergeDefinitions2(code: string): void; onChange($event?: EventPayload): void; /** * 转换成设计器中使用的 Vue template 内容 * @param options */ genDesignerVueTemplate(options?: { asCompontent?: boolean; }): string; get frontendType(): FrontendType; get frontend(): Frontend; get path(): string; get slotElems(): ViewElement[]; get completeName(): string; get directory(): import("./Directory__").Directory; findElementByName(name: string): ViewElement; /** * 转换成 Vue 文件 */ toVue(options?: ElementToVueOptions): string; /** * 生成宿主语言的文件路径 * @param name 一般不用传,用于 rename */ getEmbeddedFilePath(name?: string): string; toEmbeddedTSFile(): Embedded.TSFileGenerator; getAncestorViewElementsWithDataSource(logic: Logic): ViewElement[]; handleCurrentItemCode(code: string, logic: Logic): Generator; removeExistingViewElement(viewElement: ViewElement): void; getRightCode(code: string, assignment: Assignment | BatchAssignment | CallFunction, rightNode: any): Generator; handleReplaceCode(code: string, variable: string, replaceCode: string): string; elementsAttrs(elements: Array, componentList: Array, allComponentList: Array, currentIndex: number): void; toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): TranslatorGenerator; toEmbeddedDeclarationTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): TranslatorGenerator; toEmbeddedDeclarationTSFile(): Embedded.DeclarationTSFileResult; /** * 转换成 VueOptions * @TODO 后面 template 可以优化成 render 函数 */ toVueOptions(options?: ElementToVueOptions): { template: string; script: string; }; genVueTemplate(options?: ElementToVueOptions): string; getViewBindEvents(): BindEvent[]; getViewExpressions(): BaseNode[]; usageCollection: { getter: Record; setter: Record; libs?: Record; }; collectUsageInfo(options: ElementToVueOptions): void; /** * 生成 Vue 中需要的 JS 代码 * @TODO 这一版先做成 componentOptions 式的,后面再美化 */ genScript(isComposition?: boolean): string; genCompositionScript(): string; genPreviewTemplate(): string; getAllViewElementNames(excludeName: string): string[]; getViewCallLogics(): string[]; toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; } export default BusinessComponent; //# sourceMappingURL=BusinessComponent__.d.ts.map