import { FocusMonitor } from '@angular/cdk/a11y'; import { BooleanInput, NumberInput } from '@angular/cdk/coercion'; import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, OnDestroy, TemplateRef } from '@angular/core'; import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms'; import { CanDisable, CanUpdateErrorState, ErrorStateMatcher } from '@angular/material/core'; import { MatFormFieldControl } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; import { IDejaChipsComponentCloseEvent } from '@deja-js/component/chips'; import { DejaChildValidatorDirective, DejaConnectionPositionPair, MediaService } from '@deja-js/component/core'; import { DejaItemComponent, DejaItemEvent, DejaItemsEvent, GroupingService, IItemBase, IItemTree, ItemListBase, ItemListService, IViewListResult, IViewPort, SortingService, ViewPortService } from '@deja-js/component/core/item-list'; import { Observable, Subject } from 'rxjs'; import * as i0 from "@angular/core"; export declare type SelectType = 'autocomplete' | 'multiselect' | 'select'; /** Combo box avec une liste basée sur la treelist */ export declare class DejaSelectComponent extends ItemListBase implements CanUpdateErrorState, CanDisable, DoCheck, MatFormFieldControl, ControlValueAccessor, OnDestroy, AfterViewInit, AfterContentInit { viewPort: ViewPortService; private fm; private elementRef; ngControl: NgControl; private parentForm; private parentFormGroup; private defaultErrorStateMatcher; static nextId: number; id: string; describedBy: string; _waiter: boolean; inputElement: ElementRef; _disabled: boolean; _readonly: boolean; /** Texte à afficher par default dans la zone de recherche */ /** Texte affiché si aucune donnée n'est présente dans le tableau */ nodataholder: string; /** Offset de position horizontal de la zone de dropdown */ overlayOffsetX: number; /** Offset de position vertical de la zone de dropdown */ overlayOffsetY: number; /** Nom de classe du backdrop */ overlayBackdropClass: string; /** Nom de classe du container de la liste */ overlayContainerClass: string; /** Permet de définir un template de ligne par binding */ itemTemplateExternal: TemplateRef; /** Permet de définir un template de ligne parente par binding. */ parentItemTemplateExternal: TemplateRef; /** Permet de définir un template pour le loader par binding. */ loaderTemplateExternal: TemplateRef; /** Exécuté lorsque le calcul du viewPort est terminé. */ readonly viewPortChanged: EventEmitter; /** Exécuté lorsque l'utilisateur sélectionne ou désélectionne une ligne. */ readonly selectedChange: EventEmitter | DejaItemEvent>; /** For test only. */ readonly dropDownVisibleChange: EventEmitter; itemTemplateInternal: TemplateRef; parentItemTemplateInternal: TemplateRef; selectedTemplate: TemplateRef; protected input: MatInput; /** Overlay pane containing the options. */ private overlay; private loaderTemplateInternal; get shouldLabelFloat(): boolean; controlType: string; errorState: boolean; errorStateMatcher: ErrorStateMatcher; stateChanges: Subject; /** Internal use */ overlayOwnerElement: HTMLElement; dropDownMaxHeight: number; protected _keyboardNavigation: boolean; protected isMobile: boolean; private mouseUp$sub; private _type; private selectingItemIndex; private dropDownQuery; private filterExpression; private _dropdownVisible; private lastScrollPosition; private _selectionClearable; private _dropDownWidth; private _query; private _required; private _placeholder; private _focused; private clearFilterExpression$; private filterListComplete$; private storeScrollPosition$; private hideDropDown$; private showDropDown$; private filter$; private query$; private writeValue$; private contentInitialized$; private keyboardNavigation$; private delaySearchTrigger$; private _modelIsValue; /** Définit une valeur indiquant si en reactive form le model renvoyé doit être un object ou une valeur */ set modelIsValue(value: BooleanInput); get modelIsValue(): BooleanInput; private _positions; set positions(value: DejaConnectionPositionPair[] | string); get positions(): DejaConnectionPositionPair[] | string; set dropDownWidth(value: NumberInput); get dropDownWidth(): NumberInput; get keyboardNavigation(): boolean; get required(): boolean; set required(req: boolean); /** * Placeholder of the input */ get placeholder(): string; set placeholder(plh: string); get empty(): boolean; get focused(): boolean; set options(options: DejaItemComponent[]); constructor(changeDetectorRef: ChangeDetectorRef, viewPort: ViewPortService, fm: FocusMonitor, elementRef: ElementRef, ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, mediaService: MediaService, defaultErrorStateMatcher: ErrorStateMatcher); /** Correspond au model du champ de filtrage ou recherche */ set query(value: string); get query(): string; /** Temps d'attente en ms avant que la recherche dans la liste soit lancée lorsque l'utilisateur tape dans le select */ set delaySearchTrigger(value: number); /** Définit la longueur minimale de caractères dans le champ de recherche avant que la recherche ou le filtrage soient effectués */ set minSearchlength(value: NumberInput); get minSearchlength(): NumberInput; /** Permet de désactiver le select */ set disabled(value: boolean); get disabled(): boolean; /** Indique ou détermine si le bouton pour effacer la selection doit être affiché */ set selectionClearable(value: BooleanInput); get selectionClearable(): BooleanInput; set hideSelected(value: BooleanInput); /** Renvoie une valeur indiquant si les éléments selectionés doivent être masqué de la liste déroulante. */ get hideSelected(): BooleanInput; /** Définit la ligne courant ou ligne active */ set currentItem(item: IItemBase); /** Définit le nombre de lignes à sauter en cas de pression sur les touches PageUp ou PageDown */ set pageSize(value: NumberInput); /** Retourne le nombre de lignes à sauter en cas de pression sur les touches PageUp ou PageDown */ get pageSize(): NumberInput; /** Définit un texte de conseil en cas d'erreur de validation ou autre */ set hintLabel(value: string); /** Retourne un texte de conseil en cas d'erreur de validation ou autre */ get hintLabel(): string; /** Définit la hauteur d'une ligne pour le calcul du viewport en pixels (la valeur par défaut sera utilisée si aucune valeur n'est définie). */ set viewPortRowHeight(value: NumberInput); /** * Les trois valeurs acceptés en paramètre se trouvent dans l'enum ViewportMode (disabled, fixed, variable, auto) * Attention, une désactivation du viewport dégrade considérablement les performances de la liste et ne doit pas être activée si la liste * est suceptible de contenir beaucoup d'éléments. */ set viewportMode(mode: string); /** Retourne le champ utilisé pour la liste des enfants d'un parent */ set childrenField(value: string); /** Définit le champ utilisé pour la liste des enfants d'un parent */ get childrenField(): string; /** Définit le champ à utiliser comme valeur d'affichage. */ set textField(value: string); /** Retourne le champ à utiliser comme valeur d'affichage. */ get textField(): string; /** Définit le champ à utiliser comme valeur de comparaison. */ set valueField(value: string); /** Retourne le champ à utiliser comme valeur de comparaison. */ get valueField(): string; /** Définit le champ à utiliser comme champ de recherche. * Ce champ peut indiquer, un champ contenant une valeur, un texte indexé, ou une fonction. */ set searchField(value: string); /** Retourne le champ à utiliser comme champ de recherche. * Ce champ peut indiquer, un champ contenant une valeur, un texte indexé, ou une fonction. */ get searchField(): string; set type(type: SelectType); get type(): SelectType; /** * Set an observable called before the list will be displayed */ set loadingItems(fn: (query: string | RegExp, selectedItems: IItemBase[]) => Observable[]>); /** * Set a promise or an observable called before an item selection */ set selectingItem(fn: (item: IItemBase) => Promise> | Observable>); /** * Set a promise or an observable called before an item deselection */ set unselectingItem(fn: (item: IItemBase) => Promise> | Observable>); /** * Set a promise or an observable called before an item expand */ set expandingItem(fn: (item: IItemTree) => Promise> | Observable>); /** * Set a promise or an observable called before an item collapse */ set collapsingItem(fn: (item: IItemTree) => Promise> | Observable>); /** Retourne si le select est en mode select, donc en lecture seule. */ get isModeSelect(): boolean; /** Retourne si le select est en mode autocomplete */ get isModeAutocomplete(): boolean; /** Définit la liste des éléments selectionés en mode multiselect */ set selectedItems(value: IItemBase[]); /** Retourne la liste des éléments selectionés en mode multiselect */ get selectedItems(): IItemBase[]; /** Définit l'éléments selectioné en mode single select */ set selectedItem(value: IItemBase); /** Retourne l'élément selectioné en mode single select */ get selectedItem(): IItemBase; /** Définit le model selectioné en mode single select */ set selectedModel(value: unknown[] | unknown); /** Retourne le model selectioné en mode single select */ get selectedModel(): unknown; /** Définit la liste des models selectionés en mode multiselect */ set selectedModels(value: unknown[]); /** Retourne la liste des models selectionés en mode multiselect */ get selectedModels(): unknown[]; /** Definit le service de liste utilisé par ce composant. Ce service permet de controller dynamiquement la liste, ou de faire du lazyloading. */ set itemListService(itemListService: ItemListService); /** Retourne le service de liste utilisé par ce composant. Ce service permet de controller dynamiquement la liste, ou de faire du lazyloading. */ get itemListService(): ItemListService; /** Definit le service utilisé pour le tri de la liste */ set sortingService(value: SortingService); /** Definit le service utilisé pour le regroupement de la liste */ set groupingService(value: GroupingService); /** Definit si le waiter doit être affiché dans le select. */ set waiter(value: boolean); /** Retourne si le waiter doit être affiché dans le select. */ get waiter(): boolean; /** Définit la liste des éléments au format IItemBase */ set items(items: IItemBase[] | Promise[]> | Observable[]>); /** Définit la liste des éléments (tout type d'objet métier) */ set models(items: unknown[] | Observable); /** Retourne le nombre de niveau pour une liste hierarchique */ get depthMax(): number; /** Définit la hauteur maximum avant que le composant affiche une scrollbar * spécifier une grande valeur pour ne jamais afficher de scrollbar * Spécifier 0 pour que le composant determine sa hauteur à partir du container */ set maxHeight(value: number); /** Retourne la hauteur maximum avant que le composant affiche une scrollbar * spécifier une grande valeur pour ne jamais afficher de scrollbar * Spécifier 0 pour que le composant determine sa hauteur à partir du container */ get maxHeight(): number; set readonly(value: boolean); /** Retourne une valeur indiquant si le composant est en lecture seule */ get readonly(): boolean; protected set inputValidatorDirective(value: DejaChildValidatorDirective); private set currentItemIndex(value); private get currentItemIndex(); get itemTemplate(): TemplateRef; get parentItemTemplate(): TemplateRef; private get htmlInputElement(); get loaderTemplate(): TemplateRef; get dropdownVisible(): boolean; get value(): IItemBase | IItemBase[]; set value(val: IItemBase | IItemBase[]); writeValue(value: IItemBase | IItemBase[]): void; registerOnChange(fn: (_a: unknown) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; ngDoCheck(): void; ngOnDestroy(): void; ngAfterContentInit(): void; ngAfterViewInit(): void; setDescribedByIds(ids: string[]): void; onContainerClick(event: MouseEvent): void; /** Change l'état d'expansion de toute les lignes parentes */ toggleAll$(collapsed?: boolean): Observable[]>; /** Change l'état d'expansion de toute les lignes parentes */ toggleAll(collapsed?: boolean): void; /** Change l'état d'expansion de la ligne spécifiée * @param index Index sur la liste des éléments visibles de l'élément à changer. * @param collapsed Etat de l'élément. True pour réduire l'élément. * @return Observable résolu par la fonction. */ toggleCollapse$(index: number, collapsed: boolean): Observable>; /** Change l'état d'expansion de la ligne spécifiée * @param index Index sur la liste des éléments visibles de l'élément à changer. * @param collapsed Etat de l'élément. True pour réduire l'élément. */ toggleCollapse(index: number, collapsed: boolean): void; queryChanged(value: string): void; hideDropDown(): void; scroll(event: Event): void; mousedown(e: MouseEvent): void; getItemClass(item: IItemTree): string; updateErrorState(): void; clearSelection(): void; onClearQuery(clickEvent: Event): boolean; onRemoveSelection(closeEvent?: IDejaChipsComponentCloseEvent): void; onOpenClicked(event: Event): void; toggleDropDown(): void; showDropDown(): void; onTouchedCallback: () => void; onChangeCallback: (_a?: unknown) => void; onValidatorChangeCallback: (_a?: unknown) => void; protected removeSelection(item?: IItemBase): void; protected calcViewList$(): Observable>; protected ensureItemVisible(item: IItemBase | number): void; private onModelChange; private select; private reshowDropDown; private ensureSelection; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }