import { type WidgetConstructor, type WidgetProps } from '@oinone/kunlun-engine'; import { type Component, type ComponentOptions, type DefineComponent, type Ref, type Slot, type Slots, type VNode } from 'vue'; import { Widget } from './Widget'; declare enum BehaviorName { 'beforeCreated' = "beforeCreated", 'created' = "created", 'beforeMount' = "beforeMount", 'mounted' = "mounted", 'beforeUpdate' = "beforeUpdate", 'updated' = "updated", 'activated' = "activated", 'deactivated' = "deactivated", 'beforeUnmount' = "beforeUnmount", 'unmounted' = "unmounted" } export type WidgetComponent = string | ComponentOptions | DefineComponent | Component | Record; export type SetupHook = ((ctx?: void, props?: unknown, result?: unknown) => void) | ((ctx?: void, props?: unknown, result?: unknown) => unknown) | ((ctx?: void, props?: unknown, result?: unknown) => Promise) | ((ctx?: void, props?: unknown, result?: unknown) => Promise); export declare class VueWidget extends Widget { protected behaviorGroup: {}; private __render__?; private static beforeHooks; private static afterHooks; private static hookHosts; /** * 通过该属性可以直接拿到Widget下Component内的属性 * @private */ private opt?; /** * vue实例内属性(props、computed、data)的集合 */ private res?; revolveNodeCode(): string; private __scope; /** * vue组件setup * @param setupHook */ setup(setupHook?: SetupHook): (ctx: void, props?: unknown) => {}; /** * 标记一个方法为可被钩子注入,注解使用 * @constructor * @protected */ protected static HookHost(): (target: T, name: string) => void; /** * 获得组件中注册的所有钩子 * @param widget * @private */ private static getHookHosts; /** * 获得指定组件内方法的前/后置钩子 * @param widgetName * @param hook * @param beforeOrAfter * @private */ private static getHooks; /** * 标记一个方法为后置钩子 * @param host * @constructor * @protected */ protected static BeforeHook(host: string): (target: T, _name: string, description: TypedPropertyDescriptor<() => boolean> | TypedPropertyDescriptor<() => void>) => void; /** * 标记一个方法为前置钩子 * @param host * @constructor * @protected */ protected static AfterHook(host: string): (target: T, _name: string, description: TypedPropertyDescriptor<(next: never, ...args: unknown[]) => boolean> | TypedPropertyDescriptor<(next: unknown, ...args: unknown[]) => void>) => void; private component; private node_code; getNodeCode(): string; getNodeCodeRef(): Ref; /** * 获取当前组件的响应式对象 */ getOperator(): T; /** * 在当前组件节点下创建子节点 * @param constructor widget * @param slotName slotName * @param initConfig widget中initialize函数接受的参数 * @param specifiedIndex 指定该widget的在父节点中的位置,默认是最后一位 * @param resolveNewCode 是否更新node_code */ createWidget(constructor: WidgetConstructor, slotName?: string, initConfig?: T['config'], specifiedIndex?: number, resolveNewCode?: boolean): T; /** * 在当前组件节点下删除子节点树 * @param name */ deleteWidget(name: string): boolean; /** * 给指定的下标插入widget * * 如果要在最后一位插入,可以用createWidget * * @param {Widget} widget * @param {number} index */ insertWidget(widget: Widget, index: number): void; /** * 移动widget, 将widget从 A 下标移动到 B 下标 * * @param {number} index1 * @param {number} index2 */ moveChildWidget(index1: number, index2: number): void; /** * 根据下标删除对应的child widget, 如果当前 children中有重复的handler,那么会删除匹配的第一个 * * @param {number} index * @param {string} handle? */ deleteWidgetByIndex(index: number, handle?: string): boolean; /** * 初始化当前组件 * @param props */ initialize(props?: Props): VueWidget; private buildOperator; /** * Class Component Vue组件 * @private */ private widgetComponent; /** * 获取Class Component Vue组件 */ getWidgetComponent(isBuild?: boolean): Component | undefined; /** * 设置Class Component Vue组件 * @param component Vue组件 */ setWidgetComponent(component: Component | undefined): void; /** * 扩展组件 */ renderExpandComponent(): Component | VNode | undefined; /** * 混入组件 * @private */ private mixinComponent; /** * 获取混入组件 */ getMixinComponent(): Component | undefined; /** * 设置混入组件 * @param component Vue组件 * @protected */ setMixinComponent(component: Component | undefined): void; /** * 渲染当前组件 * @param context 渲染上下文 * @param slots 插槽 */ render(context?: Record, slots?: Slots): VNode | VNode[]; protected getWidgetComponentName(): string; /** * 构造Vue组件 * @protected */ protected buildWidgetComponent(): Component | undefined; /** * 只获取vue 组件需要的props * */ protected resolveProps(component: any, props: any): any; /** * 渲染混入组件 * @param vNode 当前Vue组件渲染节点 * @param props 当前Vue组件渲染属性 * @protected */ protected renderMixinComponent(vNode: VNode, props: Record): VNode | VNode[]; /** * 渲染当前组件 * @param widgetComponent 当前组件 * @param context 组件上下文 * @param slots 组件插槽 * @protected */ protected renderWidgetComponent(widgetComponent: Component, context?: Record, slots?: Slots): VNode; /** * 构建当前组件渲染vue组件传递时的props * @param result * @protected */ protected buildProps(result: Record): Record; protected buildPropsStrs(): string[]; /** * 将当前组件的子组件树解析为Vue Slots树 * @protected */ protected resolveChildren(): Record; /** * Vue组件setup方法钩子 * @param _ctx * @param _props * @param _result * @protected */ protected setupHook(_ctx: void, _props: unknown, _result: unknown): unknown; /** * 绑定一个标准的Vue组件或者一个html标签用于当前组件的渲染 * @param component */ setComponent(component: WidgetComponent): void; /** * 销毁当前组件 */ dispose(force?: boolean): void; /** * 获取当前组件渲染时使用的Vue组件 * @public */ getComponent(): WidgetComponent; /** * 获取当前组件引用的其他Vue组件 * @protected */ protected getUsingComponents(): Record; private executeAfterHooks; private executeBeforeHooks; /** * Vue钩子 * @protected */ protected beforeCreated(): void; /** * @internal */ protected $$beforeCreated(): void; /** * Vue钩子 * @protected */ protected created(): void; /** * @internal */ protected $$metaContextProvide(): void; /** * @internal */ protected $$created(): void; /** * Vue钩子 * @protected */ protected beforeMount(): void; /** * @internal */ protected $$beforeMount(): void; /** * Vue钩子 * @protected */ protected mounted(): void; /** * @internal */ protected $$mounted(): void; /** * @internal */ protected $$mountedAfterProperties(): void; /** * Vue钩子 * @protected */ protected beforeUpdate(): void; /** * @internal */ protected $$beforeUpdate(): void; /** * Vue钩子 * @protected */ protected updated(): void; /** * @internal */ protected $$updated(): void; /** * Vue钩子 * @protected */ protected activated(): void; /** * @internal */ protected $$activated(): void; /** * Vue钩子 * @protected */ protected deactivated(): void; /** * @internal */ protected $$deactivated(): void; /** * Vue钩子 * @protected */ protected beforeUnmount(): void; /** * @internal */ protected $$beforeUnmount(): void; /** * Vue钩子 * @protected */ protected unmounted(): void; /** * @internal */ protected $$unmounted(): void; protected $$unmountedAfterProperties(): void; registryBehavior(name: keyof typeof BehaviorName, cb: () => void): void; protected reset(): void; protected translate(key: any, values?: { [key: string]: any; }): string; protected translateByI18n(key: string): string; protected genStaticPath(resourceName: string): string; forceUpdate(): void; } export {};