import { ColumnDataSchemaModel } from '@revolist/revogrid'; import { ColumnTemplateProp } from '@revolist/revogrid'; import { ComponentInternalInstance } from 'vue'; import { ComponentPublicInstance } from 'vue'; import { createVNode } from 'vue'; import { DefineSetupFnComponent } from 'vue'; import { EditCell } from '@revolist/revogrid'; import { EditorCtr } from '@revolist/revogrid'; import { HyperFunc } from '@revolist/revogrid'; import { JSX } from '@revolist/revogrid'; import { PublicProps } from 'vue'; import { VNode } from '@revolist/revogrid'; declare type CreateVNodeParameters = (Parameters)[0]; /** * Data passed to editor */ export declare interface EditorType extends Partial { column: ColumnDataSchemaModel; save: (value: any, preventFocus?: boolean) => void; close: (focusNext?: boolean) => void; } declare interface InputProps { modelValue?: T; } declare const VGrid: DefineSetupFnComponent, {}, {}, JSX.RevoGrid & InputProps & {}, PublicProps>; export { VGrid } export default VGrid; /** * Create editor constructor. * This function creates editor constructor by wrapping it with VueEditorAdapter * which is responsible for connecting editor with Vue lifecycle events */ export declare const VGridVueEditor: (vueConstructor: any) => EditorCtr; /** * Render Vue component in Grid column template. */ export declare const VGridVueTemplate: (vueConstructor: CreateVNodeParameters, customProps?: any) => (h: HyperFunc, p: ColumnDataSchemaModel | ColumnTemplateProp, addition?: any) => VNode; /** * Convert Vue component to VNode and render it into HTMLElement. * * @param vueConstructor Vue component constructor * @param el HTMLElement where VNode will be rendered * @param p Props to pass to component * @param vueInstance Vue 3 app instance * @param lastEl Previous rendered VNode or null * @returns Vue instance, destroy method and HTMLElement */ export declare const VGridVueTemplateConstructor: (vueConstructor: CreateVNodeParameters, el: VueElement | null, p: Record, vueInstance: ComponentInternalInstance | null, lastEl?: { destroy: () => void; } | null) => { vueInstance: ComponentPublicInstance; destroy: () => void; el: VueElement | null; }; declare interface VueElement extends Element { _vnode?: ComponentPublicInstance; } export * from "@revolist/revogrid"; export * from "@revolist/revogrid/loader"; export { }