@visactor/vue-vtable
Version:
The vue version of VTable
49 lines (48 loc) • 1.85 kB
TypeScript
import type { VNode } from 'vue';
export interface DynamicRenderEditorParams {
row: number;
col: number;
value: any;
record: any;
table: any;
onChange: (value: any) => void;
}
export interface DynamicRenderEditorConfig {
editBefore?: (editorContext?: any) => boolean | Promise<boolean>;
disablePrompt?: string;
validateValue?: (params?: ValidateValueParams) => boolean | Promise<boolean>;
invalidPrompt?: string;
}
export interface ValidateValueParams {
row: number;
col: number;
value?: any;
oldValue?: any;
table?: any;
}
export declare class DynamicRenderEditor {
wrapContainer: HTMLElement;
tableContainer: HTMLElement | null;
currentValue: string | null;
nodeMap?: Map<string | number, Map<string | number, (params: DynamicRenderEditorParams) => any>>;
currentContext?: any;
constructor(currentContext?: any);
registerNode(tableId?: string | number, key?: string | number, getNode?: () => (params: DynamicRenderEditorParams) => any): void;
getNode(tableId?: string | number, key?: string | number): (params: DynamicRenderEditorParams) => any;
removeNode(tableId: string | number): void;
release(tableId?: string | number): void;
onStart(editorContext: any): Promise<void>;
createElement(editorContext: any): Promise<boolean>;
checkToPassAppContext(vnode: VNode, table: any): void;
getColumnKeyField(column: any): any;
getValue(): string;
setValue(value: any): void;
adjustPosition(rect: DOMRect): void;
validateValue(value?: any, oldValue?: any, editCell?: {
col: number;
row: number;
}, table?: any): Promise<boolean>;
onEnd(): void;
isEditorElement(target: HTMLElement): boolean;
isClickEditorElement(target: HTMLElement): boolean;
}