UNPKG

@codenameryuu/adonis-datatable

Version:
64 lines (63 loc) 4.55 kB
import { DataTableAbstract } from "../datatable_abstract.js"; import type { DatabaseQueryBuilderContract, Dictionary } from "@adonisjs/lucid/types/querybuilder"; import type { LucidModel, ModelQueryBuilderContract } from "@adonisjs/lucid/types/model"; export default class DatabaseDataTable extends DataTableAbstract { protected query: DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>; protected nullsLast: boolean; protected prepared: boolean; protected keepSelectBindings: boolean; protected disableUserOrdering: boolean; constructor(query: DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>); static canCreate(source: any): boolean; protected getConnection(): import("knex").Knex.Client; protected defaultOrdering(): any; protected hasOrderColumn(column: string): boolean; protected applyOrderColumn(column: string, orderable: Record<string, any>): void; protected getNullsLastSql(column: string, direction: string): string; protected attachAppends(data: Record<string, any>): Record<string, any>; protected getColumnSearchKeyword(i: number, raw?: boolean): string; protected applyFilterColumn(query: DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>, columnName: string, keyword: string): void; protected resolveRelationColumn(column: string): string; protected compileColumnSearch(i: number, column: string, keyword: string): void; protected regexColumnSearch(column: string, keyword: string): void; protected compileQuerySearch(query: ModelQueryBuilderContract<LucidModel, any> | DatabaseQueryBuilderContract<Dictionary<any, string>>, columnName: string, keyword: string, boolean?: string): void; protected prepareKeyword(keyword: string): string; protected prepareQuery(): Promise<this>; protected filterRecords(): Promise<void>; protected hasFilterColumn(columnName: string): boolean; protected wrapColumn(column: string): string; protected getBaseQueryBuilder(instance?: DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any> | undefined): DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>; protected castColumn(column: string): string; protected addTablePrefix(query: DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>, column: string): string; protected getFilteredQuery(): DatabaseQueryBuilderContract<Dictionary<any, string>> | ModelQueryBuilderContract<LucidModel, any>; protected resolveCallback(): any; results(): Promise<void | Record<string, any>>; dataResults(): Promise<Record<string, any>[]>; count(): Promise<number>; columnSearch(): void; /** * Apply the search conditions sent by the DataTables ColumnControl extension. * * @see https://datatables.net/extensions/columncontrol/server-side */ protected applyColumnControlSearch(index: number, column: string): void; protected applyColumnControlList(column: string, list: any[]): void; protected compileExactMatch(query: ModelQueryBuilderContract<LucidModel, any> | DatabaseQueryBuilderContract<Dictionary<any, string>>, columnName: string, value: string, boolean?: string): void; protected compileColumnControlSearch(column: string, search: { value: string; logic: string; type: string; mask?: string; }): void; protected compileTextSearch(column: string, logic: string, value: string): void; protected compileNumberSearch(column: string, logic: string, value: string): void; protected compileDateSearch(column: string, logic: string, value: string, mask?: string): void; filterColumn(column: string, callback: <T extends abstract new (...args: any) => any>(query: InstanceType<T>, keyword: string) => void): this; orderColumns(columns: Record<string, any>, sql: string, bindings?: any[]): this; orderColumn(column: string, sql: (<T extends abstract new (...args: any) => any>(query: InstanceType<T>, direction: string) => void) | string | boolean, bindings?: any[]): this; orderByNullsLast(): this; paging(): void; addColumn(name: string, content: (<T extends abstract new (...args: any) => any>(row: InstanceType<T>) => string | number) | string | number, order?: boolean): this; globalSearch(keyword: string): void; ordering(): void; }