UNPKG

ag-grid-community

Version:

Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue

45 lines (44 loc) 1.98 kB
import type { BeanCollection } from '../context/context'; import type { GridOptions } from '../entities/gridOptions'; import type { ValidationModuleName } from '../interfaces/iModule'; import type { RowModelType } from '../interfaces/iRowModel'; /** Build the set of all property names that should be accepted without warning. */ export declare function buildAllValidNames<T extends object>(allProperties: string[], deprecations: Deprecations<T>, propertyExceptions?: string[]): Set<string>; export interface OptionsValidator<T extends object> { objectName: string; allProperties: string[]; /** Pre-computed set of all accepted property names (valid + deprecated + exceptions + Vue). */ allValidNames: Set<string>; docsUrl?: `${string}/`; deprecations: Deprecations<T>; validations: Validations<T>; } export type Deprecations<T extends object> = Partial<{ [key in keyof T]: { version: string; message?: string; }; }>; type GetRequiredModule<T extends object> = (options: T, gridOptions: GridOptions, beans: BeanCollection) => ValidationModuleName | ValidationModuleName[] | null; export type RequiredModule<T extends object> = GetRequiredModule<T> | ValidationModuleName | ValidationModuleName[]; export type ModuleValidation<T extends object> = { [key in keyof T]?: RequiredModule<T>; }; export type Validations<T extends object> = { [key in keyof T]?: OptionsValidation<T>; }; interface OptionsValidation<T extends object> { supportedRowModels?: RowModelType[]; dependencies?: RequiredOptions<T>; validate?: (options: T, gridOptions: GridOptions, beans: BeanCollection) => string | null; /** Currently only supports boolean or number */ expectedType?: 'boolean' | 'number'; } export type DependentValues<T extends object, K extends keyof T> = { required: T[K][]; reason?: string; }; export type RequiredOptions<T extends object> = { [K in keyof T]: DependentValues<T, K>; }; export {};