UNPKG

@revolist/vue3-datagrid

Version:

Vue 3 DataGrid Spreadsheet component with native Vue 3 cell render support

72 lines (60 loc) 2.62 kB
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<typeof createVNode>)[0]; /** * Data passed to editor */ export declare interface EditorType extends Partial<EditCell> { column: ColumnDataSchemaModel; save: (value: any, preventFocus?: boolean) => void; close: (focusNext?: boolean) => void; } declare interface InputProps<T> { modelValue?: T; } declare const VGrid: DefineSetupFnComponent<JSX.RevoGrid & InputProps<string | number | boolean>, {}, {}, JSX.RevoGrid & InputProps<string | number | boolean> & {}, 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<VNode>, 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<string, any>, vueInstance: ComponentInternalInstance | null, lastEl?: { destroy: () => void; } | null) => { vueInstance: ComponentPublicInstance<any>; destroy: () => void; el: VueElement | null; }; declare interface VueElement extends Element { _vnode?: ComponentPublicInstance<any>; } export * from "@revolist/revogrid"; export * from "@revolist/revogrid/loader"; export { }