UNPKG

@handsontable/vue

Version:

Best Data Grid for Vue with Spreadsheet Look and Feel.

61 lines (60 loc) 2.36 kB
import Handsontable from 'handsontable/base'; import Vue, { VNode } from 'vue'; import { ThisTypedComponentOptionsWithRecordProps } from 'vue/types/options'; export interface HotTableData { __internalEdit: boolean; __hotInstance: Handsontable | null; miscCache?: { currentSourceColumns?: number; }; hotInstance?: Handsontable | null; columnSettings: HotTableProps[]; rendererCache: any; editorCache: Map<string, EditorComponent>; } export interface HotTableMethods { hotInit: () => void; getColumnSettings: () => HotTableProps[] | void; getGlobalRendererVNode: () => VNode | void; getGlobalEditorVNode: () => VNode | void; getRendererWrapper: (vNode: VNode, containerComponent: Vue) => (...args: any[]) => HTMLElement; getEditorClass: (vNode: VNode, containerComponent: Vue) => typeof Handsontable.editors.BaseEditor; matchHotMappersSize: () => void; } export interface HotTableProps extends Handsontable.GridSettings { id?: string; settings?: Handsontable.GridSettings; wrapperRendererCacheSize?: number; } export interface HotTableComponent<V extends Vue, D, M, C, P> extends ThisTypedComponentOptionsWithRecordProps<V, D, M, C, P> { version: string; } export interface HotColumnMethods { createColumnSettings: () => void; } export interface EditorComponent extends Vue { focus(): void; open(event?: Event): void; close(): void; getValue(): any; setValue(newValue?: any): void; [additional: string]: any; } export declare type VueProps<T> = { [P in keyof T]: any; }; declare type ClassMethodKey<T> = ({ [P in keyof T]: T[P] extends Function ? P : never; })[keyof T]; declare type NonConstructorClassMethodKey<T> = Exclude<ClassMethodKey<T>, 'constructor'>; declare type NotOriginalValueProp<T> = Exclude<NonConstructorClassMethodKey<T>, 'originalValue'>; declare type ClassFieldKey<T> = ({ [P in keyof T]: T[P] extends Function ? never : P; })[keyof T]; declare type ClassMethods<T> = Pick<T, NotOriginalValueProp<T>>; declare type ClassFields<T> = Pick<T, ClassFieldKey<T>>; export interface BaseVueEditorMethods extends ClassMethods<Handsontable.editors.BaseEditor> { } export interface BaseVueEditorFields extends ClassFields<Handsontable.editors.BaseEditor> { } export {};