@codenameryuu/adonis-datatable
Version:
Server side datatables package for Adonis JS
64 lines (63 loc) • 4.55 kB
TypeScript
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;
}