@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
49 lines (48 loc) • 1.65 kB
TypeScript
import { BehaviorSubject, Subject } from 'rxjs';
import { SearchBuilderComponentDefinition } from './interfaces/component-definition.interface';
import { SearchBuilderQuery } from './interfaces/query.interface';
import * as i0 from "@angular/core";
export declare class SearchBuilderService {
query: SearchBuilderQuery;
queryChange: Subject<SearchBuilderQuery>;
validationChange: BehaviorSubject<boolean>;
private _componentId;
private readonly _components;
private _validation;
/**
* Add a component to the internal list of components
*/
registerComponent(component: SearchBuilderComponentDefinition): void;
/**
* Bulk registration of components
* (Just a helper method)
*/
registerComponents(components: SearchBuilderComponentDefinition[]): void;
/**
* Get a registered component class
*/
getComponent(name: string): SearchBuilderComponentDefinition;
/**
* Update the internal search query state
* note that the query will be immutable
*/
setQuery(query: SearchBuilderQuery): void;
/**
* Return the current query state
*/
getQuery(): SearchBuilderQuery;
/**
* Trigger the observable to indicate the query has been updated
*/
queryHasChanged(): void;
/**
* Store the validation state of the query
*/
setValid(id: number, valid: boolean): void;
/**
* Generate a unique id for each component
*/
generateComponentId(): number;
static ɵfac: i0.ɵɵFactoryDeclaration<SearchBuilderService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SearchBuilderService>;
}