import type { Embedded } from '@lcap/nasl-types'; import { TranslatorState, TranslatorGenerator } from '@lcap/nasl-translator'; import type BaseNode from '../common/BaseNode'; import { ElementToVueOptions } from './ViewElement__'; import type Assignment from './Assignment__'; import type BatchAssignment from './BatchAssignment__'; import type CallFunction from './CallFunction__'; import type SubLogic from './SubLogic__'; import type Module from './Module__'; import type Frontend from './Frontend__'; import type FrontendType from './FrontendType__'; import type ProcessV2 from './ProcessV2__'; import type ProcessElementV2 from './ProcessElementV2__'; import { EventPayload } from '../common/types'; import Annotatable from './Annotatable__'; import type StaticString from './StaticString__'; import type ViewElement from './ViewElement__'; import type Param from './Param__'; import type Variable from './Variable__'; import type Logic from './Logic__'; import type BindEvent from './BindEvent__'; import type Directory from './Directory__'; /** * 页面 */ export declare class View extends Annotatable { /** 类名 */ static readonly ConceptName: string; /** * 是否为抽象类 * 抽象类不能产生 concept: string */ static isAbstract: boolean; /** 继承链 */ static readonly inheritanceChain: string[]; /** * 产品概念 */ readonly concept: 'View'; /** * 页面模板 Id */ pageTemplateId?: string; /** * 页面名称 */ name: string; /** * 唯一标识 */ uuid?: string; /** * 页面标题 */ title: string; /** * 面包屑 */ crumb?: StaticString; /** * 权限控制 */ auth: boolean; /** * 权限资源描述 */ authDescription?: string; /** * 是否是默认跳转的页面 */ isIndex?: boolean; /** * 未解析的模板代码 */ template?: string; /** * 未解析的逻辑代码 */ script: string; /** * 未解析的样式代码 */ style?: string; /** * pinia store 代码 */ storeCode?: string; /** * 拆分组件代码 */ compScriptCode?: string; /** * 页面元素列表 */ elements: Array; /** * 输入参数列表 */ params: Array; /** * 变量列表 */ variables: Array; /** * 逻辑列表 */ logics: Array; /** * 元素绑定事件列表 */ bindEvents: Array; /** * 绑定的角色 */ bindRoles: Array; /** * 页面列表 */ children: Array; /** * 文件夹列表 */ directories: Array; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); static from(source: any, parentNode?: any, parentKey?: string): View; /** * 设置页面名称 */ setName(name: string): void; /** * 设置页面标题 */ setTitle(title: string): void; /** * 设置面包屑 */ setCrumb(crumb: StaticString): void; /** * 设置权限控制 */ setAuth(auth: boolean): void; /** * 设置权限资源描述 */ setAuthDescription(authDescription: string): void; /** * 设置是否是默认跳转的页面 */ setIsIndex(isIndex: boolean): void; /** * 插入页面元素 * @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; getParamUniqueName(name?: string): string; /** * 插入输入参数 * @internal * @param name 输入参数名称,如果不填会自动生成一个唯一名称 */ _insertParamAt(name: string, index: number): Param; /** * 插入输入参数 * @internal * @param paramOptions 输入参数参数 */ _insertParamAt(paramOptions: Partial, index: number): Param; /** * 插入输入参数 * @internal * @param param 已有的输入参数实例 */ _insertParamAt(param: Param, index: number): Param; /** * 插入输入参数 * @param name 输入参数名称,如果不填会自动生成一个唯一名称 */ insertParamAt(name: string, index: number): Param; /** * 插入输入参数 * @param paramOptions 输入参数参数 */ insertParamAt(paramOptions: Partial, index: number): Param; /** * 插入输入参数 * @param param 已有的输入参数实例 */ insertParamAt(param: Param, index: number): Param; /** * 添加输入参数 * @internal * @param name 输入参数名称,如果不填会自动生成一个唯一名称 */ _addParam(name?: string): Param; /** * 添加输入参数 * @internal * @param paramOptions 输入参数参数 */ _addParam(paramOptions: Partial): Param; /** * 添加输入参数 * @internal * @param param 已有的输入参数实例 */ _addParam(param: Param): Param; /** * 添加输入参数 * @internal * @param name 输入参数名称,如果不填会自动生成一个唯一名称 */ addParam(name?: string): Param; /** * 添加输入参数 * @param paramOptions 输入参数参数 */ addParam(paramOptions: Partial): Param; /** * 添加输入参数 * @param param 已有的输入参数实例 */ addParam(param: Param): Param; 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; getLogicUniqueName(name?: string): string; /** * 插入逻辑 * @internal * @param name 逻辑名称,如果不填会自动生成一个唯一名称 */ _insertLogicAt(name: string, index: number): Logic; /** * 插入逻辑 * @internal * @param logicOptions 逻辑参数 */ _insertLogicAt(logicOptions: Partial, index: number): Logic; /** * 插入逻辑 * @internal * @param logic 已有的逻辑实例 */ _insertLogicAt(logic: Logic, index: number): Logic; /** * 插入逻辑 * @param name 逻辑名称,如果不填会自动生成一个唯一名称 */ insertLogicAt(name: string, index: number): Logic; /** * 插入逻辑 * @param logicOptions 逻辑参数 */ insertLogicAt(logicOptions: Partial, index: number): Logic; /** * 插入逻辑 * @param logic 已有的逻辑实例 */ insertLogicAt(logic: Logic, index: number): Logic; /** * 添加逻辑 * @internal * @param name 逻辑名称,如果不填会自动生成一个唯一名称 */ _addLogic(name?: string): Logic; /** * 添加逻辑 * @internal * @param logicOptions 逻辑参数 */ _addLogic(logicOptions: Partial): Logic; /** * 添加逻辑 * @internal * @param logic 已有的逻辑实例 */ _addLogic(logic: Logic): Logic; /** * 添加逻辑 * @internal * @param name 逻辑名称,如果不填会自动生成一个唯一名称 */ addLogic(name?: string): Logic; /** * 添加逻辑 * @param logicOptions 逻辑参数 */ addLogic(logicOptions: Partial): Logic; /** * 添加逻辑 * @param logic 已有的逻辑实例 */ addLogic(logic: Logic): Logic; 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; getViewExistingNames(excludedList?: Array): string[]; getViewUniqueName(name?: string): string; /** * 插入页面 * @internal * @param name 页面名称,如果不填会自动生成一个唯一名称 */ _insertViewAt(name: string, index: number): View; /** * 插入页面 * @internal * @param viewOptions 页面参数 */ _insertViewAt(viewOptions: Partial, index: number): View; /** * 插入页面 * @internal * @param view 已有的页面实例 */ _insertViewAt(view: View, index: number): View; /** * 插入页面 * @param name 页面名称,如果不填会自动生成一个唯一名称 */ insertViewAt(name: string, index: number): View; /** * 插入页面 * @param viewOptions 页面参数 */ insertViewAt(viewOptions: Partial, index: number): View; /** * 插入页面 * @param view 已有的页面实例 */ insertViewAt(view: View, index: number): View; /** * 添加页面 * @internal * @param name 页面名称,如果不填会自动生成一个唯一名称 */ _addView(name?: string): View; /** * 添加页面 * @internal * @param viewOptions 页面参数 */ _addView(viewOptions: Partial): View; /** * 添加页面 * @internal * @param view 已有的页面实例 */ _addView(view: View): View; /** * 添加页面 * @internal * @param name 页面名称,如果不填会自动生成一个唯一名称 */ addView(name?: string): View; /** * 添加页面 * @param viewOptions 页面参数 */ addView(viewOptions: Partial): View; /** * 添加页面 * @param view 已有的页面实例 */ addView(view: View): View; getDirectoryExistingNames(excludedList?: Array): string[]; getDirectoryUniqueName(name?: string): string; /** * 插入文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ _insertDirectoryAt(name: string, index: number): Directory; /** * 插入文件夹 * @internal * @param directoryOptions 文件夹参数 */ _insertDirectoryAt(directoryOptions: Partial, index: number): Directory; /** * 插入文件夹 * @internal * @param directory 已有的文件夹实例 */ _insertDirectoryAt(directory: Directory, index: number): Directory; /** * 插入文件夹 * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ insertDirectoryAt(name: string, index: number): Directory; /** * 插入文件夹 * @param directoryOptions 文件夹参数 */ insertDirectoryAt(directoryOptions: Partial, index: number): Directory; /** * 插入文件夹 * @param directory 已有的文件夹实例 */ insertDirectoryAt(directory: Directory, index: number): Directory; /** * 添加文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ _addDirectory(name?: string): Directory; /** * 添加文件夹 * @internal * @param directoryOptions 文件夹参数 */ _addDirectory(directoryOptions: Partial): Directory; /** * 添加文件夹 * @internal * @param directory 已有的文件夹实例 */ _addDirectory(directory: Directory): Directory; /** * 添加文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ addDirectory(name?: string): Directory; /** * 添加文件夹 * @param directoryOptions 文件夹参数 */ addDirectory(directoryOptions: Partial): Directory; /** * 添加文件夹 * @param directory 已有的文件夹实例 */ addDirectory(directory: Directory): Directory; /** * 删除页面元素 * @param name 页面元素名称 */ removeViewElement(name: string): void; /** * 删除页面元素 * @param viewElement 已有的页面元素实例 */ removeViewElement(viewElement: ViewElement): void; /** * 删除输入参数 * @param name 输入参数名称 */ removeParam(name: string): void; /** * 删除输入参数 * @param param 已有的输入参数实例 */ removeParam(param: Param): void; /** * 删除变量 * @param name 变量名称 */ removeVariable(name: string): void; /** * 删除变量 * @param variable 已有的变量实例 */ removeVariable(variable: Variable): void; /** * 删除逻辑 * @param name 逻辑名称 */ removeLogic(name: string): void; /** * 删除逻辑 * @param logic 已有的逻辑实例 */ removeLogic(logic: Logic): void; /** * 删除元素绑定事件 * @param name 元素绑定事件名称 */ removeBindEvent(name: string): void; /** * 删除元素绑定事件 * @param bindEvent 已有的元素绑定事件实例 */ removeBindEvent(bindEvent: BindEvent): void; /** * 删除页面 * @param name 页面名称 */ removeView(name: string): void; /** * 删除页面 * @param view 已有的页面实例 */ removeView(view: View): void; /** * 删除文件夹 * @param name 文件夹名称 */ removeDirectory(name: string): void; /** * 删除文件夹 * @param directory 已有的文件夹实例 */ removeDirectory(directory: Directory): void; /** * 祖先 Module */ get module(): Module; /** * 祖先 Frontend */ get frontend(): Frontend; get frontendType(): FrontendType; get parentAuth(): boolean; /** * 设置页面权限 */ setBindRoles(bindRoles: string[]): void; findLogicByName(name: string): Logic; existingViewElement: Set; collectExistingViewElementName(excludedList?: Array): void; setViewCacheType(type: string): void; getViewCacheType(type: string): string; autoGenBindAttrExpExample(): void; getViewElementExistingNames(excludedList?: Array): string[]; getViewElementUniqueName(name?: string): string; getViewElementUniqueNameOld(name?: string): string; getAllViewElementNames(excludeName: string): string[]; isValidElementName(name: string): boolean; getViewElementByName(name: string): ViewElement; static readonly TAG_NAME_PREFIX_REG?: RegExp; 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; getLogicExistingNodes(excludedList?: Array): any[]; getLogicExistingNames(excludedList?: Array): any[]; getVarExistingNodes(excludedList?: Array): any[]; getVarExistingNames(excludedList?: Array): any[]; getRoutePath(): string; genExtraStyle(): string; /** * 生成 Vue 中需要的 JS 代码 * @TODO 这一版先做成 componentOptions 式的,后面再美化 */ genScript(options?: ElementToVueOptions): string; genCompositionScript(options?: ElementToVueOptions): string; genVueTemplate(options?: ElementToVueOptions): string; /** * 转换成 Vue 文件 */ toVue(options?: ElementToVueOptions): string; /** * 转换成设计器中使用的 Vue template 内容 * @param options */ genDesignerVueTemplate(): string; /** * 转换成设计器中使用的 Vue 文件 * 目前不需要 script 和 style * @param options */ toDesignerVue(): string; /** * 转换成 VueOptions * @TODO 后面 template 可以优化成 render 函数 */ toVueOptions(options?: ElementToVueOptions): { template: string; script: string; }; /** * 生成宿主语言的文件路径 * @param name 一般不用传,用于 rename */ getEmbeddedFilePath(name?: string): string; getNamespace(): string; getTsNamespace(): string; elementsMethods(elements: Array, allMethods: Array, parentNodeNames: Array): void; elementsAttrs(elements: Array, componentList: Array, allComponentList: Array, currentIndex: number): void; _cacheBindProcessV2: ProcessV2 | null; get getDestinationProcessV2(): ProcessV2; getDestinationProcessV2Element(): ProcessElementV2; toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): TranslatorGenerator; toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, callback?: (this: View, state: TranslatorState) => string): string; toNaturalTSX(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState, callback?: (this: View, state: TranslatorState) => string): string; toEmbeddedTSFile(): Embedded.TSFileGenerator; toEmbeddedDeclarationTSFile(): Embedded.DeclarationTSFileResult; get uiPath(): string; get path(): string; /** * 权限领域的资源路径 */ get authPath(): string; /** * 获取当前页面下所有elements上bindEvents下的logic */ elementLogicRoot: any[]; getElementLogicRoot(skipIdentifier?: boolean): void; getViewBindEvents(): BindEvent[]; getViewExpressions(): BaseNode[]; usageCollection: { getter: Record; setter: Record; libs?: Record; }; collectUsageInfo(options: ElementToVueOptions): void; viewSplitComponentInfos: Array<{ tag: string; name: string; compName: string; templateCompName: string; nodePath: string; }>; getViewSplitComponentInfos(): void; /** * @param path 子路径 * 比如当前页面路径为:/dashboard * path 为要查找子路径:如 /student/list、student/list */ findViewByPath(path: string): View; findViewByName(name: string): View; findElementByName(name: string): ViewElement; findElementByTag(tag: string): ViewElement; findElementByAttr(name: string, value: string): ViewElement; _setAsIndexView(isIndex: boolean): void; setAsIndexView(isIndex: boolean): void; removeExistingViewElement(viewElement: ViewElement): void; getRightCode(code: string, assignment: Assignment | BatchAssignment | CallFunction, rightNode: any): Generator; handleReplaceCode(code: string, variable: string, replaceCode: string): string; getAncestorViewElementsWithDataSource(logic: Logic): ViewElement[]; handleCurrentItemCode(code: string, logic: Logic): Generator; /** * 该视图是否有子页面容器 */ hasRouterView(): boolean; getViewCallLogics(): Set; delProcessViewDestination(): Promise; getViewProcessForm(): undefined; getViewProcessComponent(componentName: string): undefined; getRouteMeta(): { title: string; crumb: string; crumbI18n: string; first: string; auth: string; }; subLogics: Array; getSubLogics(): void; existingSubLogic: Set; collectExistSubLogic(): SubLogic[]; getSubLogicExistingNames(excludedList?: Array): string[]; getSubLogicUniqueName(name?: string, excludedNames?: Array): string; getLogicVariableTree(): { variables: Variable[]; logics: Logic[]; directories: Directory[]; }; /** * 多人协作,放置页面下的文件夹数据 */ _virtualNode?: object; } export default View; export declare const FrontendTypeComponentNamePerfixMap: Record; export declare function getComponentNameFromElementName(name: string, frontendType?: string): string; //# sourceMappingURL=View__.d.ts.map