ngx-ntk-query-builder
Version:
Angular query builder
133 lines (126 loc) • 5.42 kB
TypeScript
import * as i0 from '@angular/core';
import { OnInit, ModuleWithProviders } from '@angular/core';
import * as i3 from '@angular/forms';
import { ControlValueAccessor } from '@angular/forms';
import * as i4 from '@ngx-translate/core';
import { TranslateService } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import * as i2 from '@angular/common';
interface QueryBuilderFieldMap {
[key: string]: QueryField;
}
interface QueryBuilderSettings {
allowRuleSets?: boolean;
}
interface QueryRule {
field: string;
type: string;
operator: string;
value?: any;
}
interface QueryRuleSet {
condition: string;
rules: Array<QueryRuleSet | QueryRule>;
}
interface QueryField {
name: string;
type: string;
value?: string;
options?: SelectOption[];
settings?: QueryFieldSettings;
}
interface QueryFieldSettings {
nullableOperators?: boolean;
emptyOperators?: boolean;
}
interface SelectOption {
name: string;
value: any;
}
declare class OperatorsService {
private translate;
readonly INPUT_TYPE_STRING = "string";
readonly INPUT_TYPE_INTEGER = "integer";
readonly INPUT_TYPE_DOUBLE = "double";
readonly INPUT_TYPE_TIME = "time";
readonly INPUT_TYPE_DATE = "date";
readonly INPUT_TYPE_SELECT = "select";
readonly INPUT_TYPE_BOOLEAN = "boolean";
readonly INPUT_TYPE_MULTI_SELECT = "multi_select";
readonly NULLABLE_OPERATORS: string[];
readonly EMPTY_OPERATORS: string[];
readonly MULTI_SELECT_OPERATORS: string[];
private readonly defaultOperator;
private readonly operatorsMap;
private readonly operatorsDisplayNames;
private readonly operatorsDisplayNames___old;
constructor(translate: TranslateService);
getOperators(rule: QueryRule, fieldMap: QueryBuilderFieldMap): string[];
getDefaultOperator(): string;
getOperatorsWithoutInput(): string[];
getOperatorDisplayName(operator: string): string;
private getAvailableTypes;
static ɵfac: i0.ɵɵFactoryDeclaration<OperatorsService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<OperatorsService>;
}
declare class TranslateUiService {
private translateService;
private http;
private availableLanguages;
private translationPath;
constructor(translateService: TranslateService, http: HttpClient);
init(language?: string): void;
private loadTranslation;
setLanguage(language: string): void;
getCurrentLanguage(): string;
getAvailableLanguages(): string[];
static ɵfac: i0.ɵɵFactoryDeclaration<TranslateUiService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TranslateUiService>;
}
declare class NgxQueryBuilderComponent implements OnInit, ControlValueAccessor {
translate: TranslateService;
private translateUiService;
operatorsService: OperatorsService;
private _language;
set language(value: string);
get language(): string;
fieldMap: QueryBuilderFieldMap;
settings: QueryBuilderSettings;
disabled: boolean;
data: QueryRuleSet;
parent: QueryRuleSet;
index: number;
constructor(translate: TranslateService, translateUiService: TranslateUiService, operatorsService: OperatorsService);
ngOnInit(): void;
/**** ControlValueAccessor START ****/
onChange: (data: QueryRuleSet) => void;
onTouched: () => void;
writeValue(data: any): void;
registerOnChange(fn: (data: QueryRuleSet) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
/**** ControlValueAccessor END ****/
addRule(): void;
removeRule(index: number): void;
addRuleSet(): void;
removeRuleSet(index: number): void;
changeCondition(value: string): void;
changeField(rule: QueryRule, index: number): void;
hasParentRuleSet(): boolean;
getEmptyRuleSetData(): QueryRuleSet;
getFields(): QueryField[];
getInputType(rule: QueryRule): string;
getRuleOptions(rule: QueryRule): any;
convertToRuleSet(model: QueryRuleSet | QueryRule): QueryRuleSet;
convertToRule(model: QueryRuleSet | QueryRule): QueryRule;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxQueryBuilderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxQueryBuilderComponent, "ngx-ntk-query-builder", never, { "language": { "alias": "language"; "required": false; }; "fieldMap": { "alias": "fieldMap"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "data": { "alias": "data"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, {}, never, never, false, never>;
}
declare class NgxNtkQueryBuilderModule {
static forRoot(): ModuleWithProviders<NgxNtkQueryBuilderModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxNtkQueryBuilderModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxNtkQueryBuilderModule, [typeof NgxQueryBuilderComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.TranslateModule], [typeof NgxQueryBuilderComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<NgxNtkQueryBuilderModule>;
}
export { NgxNtkQueryBuilderModule, NgxQueryBuilderComponent };
export type { QueryBuilderFieldMap, QueryBuilderSettings, QueryField, QueryFieldSettings, QueryRule, QueryRuleSet, SelectOption };