import { TranslatorState, TranslatorGenerator } from '@lcap/nasl-translator'; import type BusinessComponent from './BusinessComponent__'; import type FrontendType from './FrontendType__'; export interface ParseContext { [key: string]: any; } export interface ElementToVueOptions { filterAttr?: Array; /** 生成器镜像的导出流程 */ isGeneratorExport?: boolean; isExport?: boolean; isRelease?: boolean; isRoot?: boolean; asCompontent?: boolean; indentStyle?: 'space' | 'tab'; tabSize?: number; indentLevel?: number; aslIdAttr?: string | boolean; nodePathAttr?: string | boolean; getExtraParts?: (element?: ViewElement) => Array; attrFormat?: (attr: BindAttribute | BindEvent | BindDirective, element?: ViewElement, defaultResult?: string) => string | false; bindStylesFormat?: (bindStyles: BindStyle[], element?: ViewElement, defaultResult?: string) => string | false; finalCode?: boolean; currentList?: string[]; isDev?: boolean; frontendI18nEnabled?: boolean; isComposition?: boolean; /** 是否自动对页面进行组件拆分 */ autoSplitComponent?: boolean; /** 格式化文件和文件夹名 */ formatFileAndFolderName?: (name: string) => string; config?: { allNodesAPI?: { [name: string]: any; }; }; /** 智能应用生成模式 */ creatorDevMode?: boolean; } import type View from './View__'; import type Module from './Module__'; import type Frontend from './Frontend__'; import * as types from './utils/types'; import Annotatable from './Annotatable__'; import type CSSRule from './CSSRule__'; import type BindAttribute from './BindAttribute__'; import type BindEvent from './BindEvent__'; import type BindDirective from './BindDirective__'; import type BindStyle from './BindStyle__'; /** * 页面元素 */ export declare class ViewElement extends Annotatable { /** 类名 */ static readonly ConceptName: string; /** * 是否为抽象类 * 抽象类不能产生 concept: string */ static isAbstract: boolean; /** 继承链 */ static readonly inheritanceChain: string[]; /** * 产品概念 */ readonly concept: 'ViewElement'; /** * 元素标签 */ tag: string; /** * 命名空间 */ refNamespace?: string; /** * 页面元素名称 */ name: string; /** * 静态 class 名 */ staticClass?: string; /** * 静态 style */ staticStyle?: string; /** * 组件样式增强 CSS 规则 */ cssRules?: Array; /** * 权限资源描述 */ authDescription?: string; /** * 插槽目标 */ slotTarget?: string; /** * 插槽 scope 表达式 */ slotScope?: string; /** * 元素绑定属性列表 */ bindAttrs: Array; /** * 元素绑定事件列表 */ bindEvents: Array; /** * 元素指令列表 */ bindDirectives: Array; /** * 绑定的角色 */ bindRoles: Array; /** * 元素绑定样式列表 */ bindStyles: Array; /** * 子元素列表 */ children: Array; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); /** * 设置页面元素名称 */ setName(name: string): void; /** * 设置静态 style */ setStaticStyle(staticStyle: string): void; /** * 设置权限资源描述 */ setAuthDescription(authDescription: string): void; getCSSRuleExistingNames(excludedList?: Array): string[]; getCSSRuleUniqueName(name?: string): string; /** * 插入CSS 样式规则 * @internal * @param name CSS 样式规则名称,如果不填会自动生成一个唯一名称 */ _insertCSSRuleAt(name: string, index: number): CSSRule; /** * 插入CSS 样式规则 * @internal * @param cSSRuleOptions CSS 样式规则参数 */ _insertCSSRuleAt(cSSRuleOptions: Partial, index: number): CSSRule; /** * 插入CSS 样式规则 * @internal * @param cSSRule 已有的CSS 样式规则实例 */ _insertCSSRuleAt(cSSRule: CSSRule, index: number): CSSRule; /** * 插入CSS 样式规则 * @param name CSS 样式规则名称,如果不填会自动生成一个唯一名称 */ insertCSSRuleAt(name: string, index: number): CSSRule; /** * 插入CSS 样式规则 * @param cSSRuleOptions CSS 样式规则参数 */ insertCSSRuleAt(cSSRuleOptions: Partial, index: number): CSSRule; /** * 插入CSS 样式规则 * @param cSSRule 已有的CSS 样式规则实例 */ insertCSSRuleAt(cSSRule: CSSRule, index: number): CSSRule; /** * 添加CSS 样式规则 * @internal * @param name CSS 样式规则名称,如果不填会自动生成一个唯一名称 */ _addCSSRule(name?: string): CSSRule; /** * 添加CSS 样式规则 * @internal * @param cSSRuleOptions CSS 样式规则参数 */ _addCSSRule(cSSRuleOptions: Partial): CSSRule; /** * 添加CSS 样式规则 * @internal * @param cSSRule 已有的CSS 样式规则实例 */ _addCSSRule(cSSRule: CSSRule): CSSRule; /** * 添加CSS 样式规则 * @internal * @param name CSS 样式规则名称,如果不填会自动生成一个唯一名称 */ addCSSRule(name?: string): CSSRule; /** * 添加CSS 样式规则 * @param cSSRuleOptions CSS 样式规则参数 */ addCSSRule(cSSRuleOptions: Partial): CSSRule; /** * 添加CSS 样式规则 * @param cSSRule 已有的CSS 样式规则实例 */ addCSSRule(cSSRule: CSSRule): CSSRule; getBindAttributeExistingNames(excludedList?: Array): string[]; getBindAttributeUniqueName(name?: string): string; /** * 插入元素绑定属性 * @internal * @param name 元素绑定属性名称,如果不填会自动生成一个唯一名称 */ _insertBindAttributeAt(name: string, index: number): BindAttribute; /** * 插入元素绑定属性 * @internal * @param bindAttributeOptions 元素绑定属性参数 */ _insertBindAttributeAt(bindAttributeOptions: Partial, index: number): BindAttribute; /** * 插入元素绑定属性 * @internal * @param bindAttribute 已有的元素绑定属性实例 */ _insertBindAttributeAt(bindAttribute: BindAttribute, index: number): BindAttribute; /** * 插入元素绑定属性 * @param name 元素绑定属性名称,如果不填会自动生成一个唯一名称 */ insertBindAttributeAt(name: string, index: number): BindAttribute; /** * 插入元素绑定属性 * @param bindAttributeOptions 元素绑定属性参数 */ insertBindAttributeAt(bindAttributeOptions: Partial, index: number): BindAttribute; /** * 插入元素绑定属性 * @param bindAttribute 已有的元素绑定属性实例 */ insertBindAttributeAt(bindAttribute: BindAttribute, index: number): BindAttribute; /** * 添加元素绑定属性 * @internal * @param name 元素绑定属性名称,如果不填会自动生成一个唯一名称 */ _addBindAttribute(name?: string): BindAttribute; /** * 添加元素绑定属性 * @internal * @param bindAttributeOptions 元素绑定属性参数 */ _addBindAttribute(bindAttributeOptions: Partial): BindAttribute; /** * 添加元素绑定属性 * @internal * @param bindAttribute 已有的元素绑定属性实例 */ _addBindAttribute(bindAttribute: BindAttribute): BindAttribute; /** * 添加元素绑定属性 * @internal * @param name 元素绑定属性名称,如果不填会自动生成一个唯一名称 */ addBindAttribute(name?: string): BindAttribute; /** * 添加元素绑定属性 * @param bindAttributeOptions 元素绑定属性参数 */ addBindAttribute(bindAttributeOptions: Partial): BindAttribute; /** * 添加元素绑定属性 * @param bindAttribute 已有的元素绑定属性实例 */ addBindAttribute(bindAttribute: BindAttribute): BindAttribute; 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; getBindDirectiveExistingNames(excludedList?: Array): string[]; getBindDirectiveUniqueName(name?: string): string; /** * 插入元素指令 * @internal * @param name 元素指令名称,如果不填会自动生成一个唯一名称 */ _insertBindDirectiveAt(name: string, index: number): BindDirective; /** * 插入元素指令 * @internal * @param bindDirectiveOptions 元素指令参数 */ _insertBindDirectiveAt(bindDirectiveOptions: Partial, index: number): BindDirective; /** * 插入元素指令 * @internal * @param bindDirective 已有的元素指令实例 */ _insertBindDirectiveAt(bindDirective: BindDirective, index: number): BindDirective; /** * 插入元素指令 * @param name 元素指令名称,如果不填会自动生成一个唯一名称 */ insertBindDirectiveAt(name: string, index: number): BindDirective; /** * 插入元素指令 * @param bindDirectiveOptions 元素指令参数 */ insertBindDirectiveAt(bindDirectiveOptions: Partial, index: number): BindDirective; /** * 插入元素指令 * @param bindDirective 已有的元素指令实例 */ insertBindDirectiveAt(bindDirective: BindDirective, index: number): BindDirective; /** * 添加元素指令 * @internal * @param name 元素指令名称,如果不填会自动生成一个唯一名称 */ _addBindDirective(name?: string): BindDirective; /** * 添加元素指令 * @internal * @param bindDirectiveOptions 元素指令参数 */ _addBindDirective(bindDirectiveOptions: Partial): BindDirective; /** * 添加元素指令 * @internal * @param bindDirective 已有的元素指令实例 */ _addBindDirective(bindDirective: BindDirective): BindDirective; /** * 添加元素指令 * @internal * @param name 元素指令名称,如果不填会自动生成一个唯一名称 */ addBindDirective(name?: string): BindDirective; /** * 添加元素指令 * @param bindDirectiveOptions 元素指令参数 */ addBindDirective(bindDirectiveOptions: Partial): BindDirective; /** * 添加元素指令 * @param bindDirective 已有的元素指令实例 */ addBindDirective(bindDirective: BindDirective): BindDirective; getBindStyleExistingNames(excludedList?: Array): string[]; getBindStyleUniqueName(name?: string): string; /** * 插入元素绑定样式 * @internal * @param name 元素绑定样式名称,如果不填会自动生成一个唯一名称 */ _insertBindStyleAt(name: string, index: number): BindStyle; /** * 插入元素绑定样式 * @internal * @param bindStyleOptions 元素绑定样式参数 */ _insertBindStyleAt(bindStyleOptions: Partial, index: number): BindStyle; /** * 插入元素绑定样式 * @internal * @param bindStyle 已有的元素绑定样式实例 */ _insertBindStyleAt(bindStyle: BindStyle, index: number): BindStyle; /** * 插入元素绑定样式 * @param name 元素绑定样式名称,如果不填会自动生成一个唯一名称 */ insertBindStyleAt(name: string, index: number): BindStyle; /** * 插入元素绑定样式 * @param bindStyleOptions 元素绑定样式参数 */ insertBindStyleAt(bindStyleOptions: Partial, index: number): BindStyle; /** * 插入元素绑定样式 * @param bindStyle 已有的元素绑定样式实例 */ insertBindStyleAt(bindStyle: BindStyle, index: number): BindStyle; /** * 添加元素绑定样式 * @internal * @param name 元素绑定样式名称,如果不填会自动生成一个唯一名称 */ _addBindStyle(name?: string): BindStyle; /** * 添加元素绑定样式 * @internal * @param bindStyleOptions 元素绑定样式参数 */ _addBindStyle(bindStyleOptions: Partial): BindStyle; /** * 添加元素绑定样式 * @internal * @param bindStyle 已有的元素绑定样式实例 */ _addBindStyle(bindStyle: BindStyle): BindStyle; /** * 添加元素绑定样式 * @internal * @param name 元素绑定样式名称,如果不填会自动生成一个唯一名称 */ addBindStyle(name?: string): BindStyle; /** * 添加元素绑定样式 * @param bindStyleOptions 元素绑定样式参数 */ addBindStyle(bindStyleOptions: Partial): BindStyle; /** * 添加元素绑定样式 * @param bindStyle 已有的元素绑定样式实例 */ addBindStyle(bindStyle: BindStyle): BindStyle; /** * 插入页面元素 * @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; /** * 删除CSS 样式规则 * @param name CSS 样式规则名称 */ removeCSSRule(name: string): void; /** * 删除CSS 样式规则 * @param cSSRule 已有的CSS 样式规则实例 */ removeCSSRule(cSSRule: CSSRule): void; /** * 删除元素绑定属性 * @param name 元素绑定属性名称 */ removeBindAttribute(name: string): void; /** * 删除元素绑定属性 * @param bindAttribute 已有的元素绑定属性实例 */ removeBindAttribute(bindAttribute: BindAttribute): void; /** * 删除元素绑定事件 * @param name 元素绑定事件名称 */ removeBindEvent(name: string): void; /** * 删除元素绑定事件 * @param bindEvent 已有的元素绑定事件实例 */ removeBindEvent(bindEvent: BindEvent): void; /** * 删除元素指令 * @param name 元素指令名称 */ removeBindDirective(name: string): void; /** * 删除元素指令 * @param bindDirective 已有的元素指令实例 */ removeBindDirective(bindDirective: BindDirective): void; /** * 删除元素绑定样式 * @param name 元素绑定样式名称 */ removeBindStyle(name: string): void; /** * 删除元素绑定样式 * @param bindStyle 已有的元素绑定样式实例 */ removeBindStyle(bindStyle: BindStyle): void; /** * 删除页面元素 * @param name 页面元素名称 */ removeViewElement(name: string): void; /** * 删除页面元素 * @param viewElement 已有的页面元素实例 */ removeViewElement(viewElement: ViewElement): void; /** * 祖先 View */ get view(): View; /** * 祖先 Module */ get module(): Module; /** * 祖先 Frontend */ get frontend(): Frontend; get likeComponent(): View | BusinessComponent; get parentAuth(): boolean; get uiPath(): string; /** * 权限领域的资源路径 */ get authPath(): string; get auth(): BindDirective; getViewElementUniqueName(name?: string): string; getViewElementUniqueNameOld(name?: string): string; /** * 初始化静态方法 */ static init(node: ViewElement): void; static readonly TAG_NAME_PREFIX_REG?: RegExp; static from(source: any, parentNode?: any, parentKey?: string): ViewElement; /** * 设置组件权限 */ setBindRoles(bindRoles: string[]): void; getBindAttribute(name: string): BindAttribute; getBindDirective(name: string): BindDirective; getBindStyle(name: string): BindStyle; getBindEvent(name: string): BindEvent; toHump(name: string): string; toFirstUpper(name: string): string; haveScope(): boolean; getGenericTypes(tag: string): { T: undefined; V: undefined; P: undefined; M: undefined; T1: undefined; C: undefined; genericTypes: string[]; }; toEmbeddedTSDefinition(state?: import("@lcap/nasl-types/out/translator").TranslatorState): TranslatorGenerator; toEmbeddedTSRefPath(elementsPathMap: Record): void; toEmbeddedTSRefTree(state: import("@lcap/nasl-types/out/translator").TranslatorState, options: { elementsPathMap: Record; }, parentLevel?: number): TranslatorGenerator; get frontendType(): FrontendType; get isCorrespondingBusinessComponent(): boolean; get correspondingBusinessComponentNamespace(): string; get correspondingBusinessComponent(): BusinessComponent; collectExistingBusinessComponent(): Set; toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, parentLevel?: number): TranslatorGenerator; shouldHandleChildren(element: ViewElement): boolean; toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, parentLevel?: number): string; toNaturalTSX(state?: import("@lcap/nasl-types/out/translator").TranslatorState, parentLevel?: number): string; toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState, parentLevel?: number): string; toNaturalTSDefinition(state?: TranslatorState): string; _duplicate(): ViewElement; setTag(tag: string): void; traverseChildren(cb: (ele: ViewElement) => void): void; deepRenameElements(node: ViewElement): Map; /** * 解析属性中的表达式 * @param value * @param $def 目前 $def 只用来查找 $def.variables 和 $def.structures * @param dataSchema */ private static _parseExpression; private static _parseValidationRule; /** * 从 Vue 的 ASTNode 转换成 ASL 元素 * @param astNode Vue 的 ASTNode */ private static _fromASTNode; /** * 解析 Vue 模板 * 该方法不会绑定 view 和 parent,如果是添加元素优先使用 fromHTML * @param html Vue 的模板 * @TODO 处理多个元素的问题 */ static parse(code: string, context?: ParseContext): ViewElement; /** * 从模板生成规范的 ViewElement 对象 */ static fromHTML(html: string, context?: ParseContext): ViewElement; /** * 转换成设计器中使用的 Vue 文件 * @param options */ toDesignerVue(options?: { isRoot: boolean; asCompontent?: boolean; }): string; isLikeComponent(node: types.SyntaxNode): boolean; getCurrentList(): string[]; get refName(): string; get keyName(): string; get businessComponent(): BusinessComponent; get cssRulesClassName(): string; getBindStyleAttr(): any; isCustomStyleBind(): boolean; generateVueBindStyle(staticStyle: string, bindStyles: BindStyle[]): string; getThemeIconsAttrParts(): string[]; /** * 转换成 Vue 的模板格式 */ toVue(options?: ElementToVueOptions): string; /** * 从父级删除该节点 * @internal */ delete(): void; findElementByName(name: string): ViewElement; findElementByTag(tag: string): ViewElement; findElementByAttr(name: string, value: string): ViewElement; findElementItem(conceptName: string): ViewElement; computedStyle: object; getCurrentName(): string; /** * 计算约束样式 * @param positionData 位置数据 * @param ops 配置项 * @param ops.beforeSetStyleCb 设置样式前的回调 * @param ops.isUpdateConstraintRule 是否修改约束规则 */ computeConstraintStyle(positionData: { nodeRect: DOMRect; parentRect: DOMRect; parentBorder: { top: number; right: number; bottom: number; left: number; }; }, ops?: { beforeSetStyleCb?: (newStyleObj: Record) => void; isUpdateConstraintRule?: boolean; }): void; updateStyleObj(styleObj: Record): void; parseStyleToObject(styleStr?: string): Record; stringifyStyleAttr(styleObj: Record): string; batchUpdateBindAttrs(attrOptions: Record[]): void; /** * 是否是流程表单 */ isProcessForm(): BindAttribute; /** * 获取表单设计器控件节点 */ getFormControlNode(): ViewElement; getBindViewDestination(): undefined; getAncestorByTag(concept: types.SyntaxNode['concept'], tag: string): Node; getMaxZIndex(): number; autoGenBindAttrExpExample(): void; getTsNamespace(): string; getStaticStyle(): string; getStaticClass(): string; } export default ViewElement; //# sourceMappingURL=ViewElement__.d.ts.map