@revolist/vue3-datagrid
Version:
Vue 3 DataGrid Spreadsheet component with native Vue 3 cell render support
72 lines (60 loc) • 2.62 kB
TypeScript
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 { }