igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
165 lines (164 loc) • 5.72 kB
TypeScript
import { IgxInputDirective } from './../directives/input/input.directive';
import { QueryList, AfterContentInit, TemplateRef, ElementRef, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { IgxDropDownItemBase } from '../drop-down/index';
import { IgxInputGroupComponent } from '../input-group/input-group.component';
import { IgxDropDownComponent } from './../drop-down/drop-down.component';
import { IgxSelectItemComponent } from './select-item.component';
import { OverlaySettings } from '../services/index';
import { Navigate } from '../drop-down/drop-down.common';
import { CancelableEventArgs } from '../core/utils';
import { IgxLabelDirective } from '../directives/label/label.directive';
import { IgxSelectBase } from './select.common';
import { EditorProvider } from '../core/edit-provider';
import { IgxSelectionAPIService } from '../core/selection';
/** @hidden @internal */
export declare class IgxSelectToggleIconDirective {
}
/**
* **Ignite UI for Angular Select** -
* [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/select.html)
*
* The `igxSelect` provides an input with dropdown list allowing selection of a single item.
*
* Example:
* ```html
* <igx-select #select1 [placeholder]="'Pick One'">
* <label igxLabel>Select Label</label>
* <igx-select-item *ngFor="let item of items" [value]="item.field">
* {{ item.field }}
* </igx-select-item>
* </igx-select>
* ```
*/
export declare class IgxSelectComponent extends IgxDropDownComponent implements IgxSelectBase, ControlValueAccessor, AfterContentInit, EditorProvider {
protected elementRef: ElementRef;
protected cdr: ChangeDetectorRef;
protected selection: IgxSelectionAPIService;
/** @hidden @internal do not use the drop-down container class */
cssClass: boolean;
/** @hidden @internal */
inputGroup: IgxInputGroupComponent;
/** @hidden @internal */
input: IgxInputDirective;
/** @hidden @internal */
children: QueryList<IgxSelectItemComponent>;
/** @hidden @internal */
label: IgxLabelDirective;
/** @hidden @internal */
allowItemsFocus: boolean;
/** @hidden @internal */
height: string;
private _overlayDefaults;
private _value;
/**
* An @Input property that gets/sets the component value.
*
* ```typescript
* // get
* let selectValue = this.select.value;
* ```
*
* ```typescript
* // set
* this.select.value = 'London';
* ```
* ```html
* <igx-select [value]="value"></igx-select>
* ```
*/
value: any;
/**
* An @Input property that sets input placeholder.
*
*/
placeholder: string;
/**
* An @Input property that disables the `IgxSelectComponent`.
* ```html
* <igx-select [disabled]="'true'"></igx-select>
* ```
*/
disabled: boolean;
/**
* An @Input property that sets custom OverlaySettings `IgxSelectComponent`.
* ```html
* <igx-select [overlaySettings] = "customOverlaySettings"></igx-select>
* ```
*/
overlaySettings: OverlaySettings;
/** @hidden @internal */
maxHeight: string;
/** @hidden @internal */
width: string;
/**
* An @Input property that sets how the select will be styled.
* The allowed values are `line`, `box` and `border`. The default is `line`.
* ```html
*<igx-select [type]="'box'"></igx-select>
* ```
*/
type: string;
/**
* An @Input property that sets what display density to be used for the input group.
* The allowed values are `compact`, `cosy` and `comfortable`. The default is `comfortable`.
* ```html
*<igx-select [displayDensity]="'compact'"></igx-select>
* ```
*/
displayDensity: string;
/**
* The custom template, if any, that should be used when rendering the select TOGGLE(open/close) button
*
* ```typescript
* // Set in typescript
* const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
* myComponent.select.toggleIconTemplate = myCustomTemplate;
* ```
* ```html
* <!-- Set in markup -->
* <igx-select #select>
* ...
* <ng-template igxSelectToggleIcon let-collapsed>
* <igx-icon>{{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}</igx-icon>
* </ng-template>
* </igx-select>
* ```
*/
toggleIconTemplate: TemplateRef<any>;
/** @hidden @internal */
readonly selectionValue: any;
/** @hidden @internal */
readonly selectedItem: IgxSelectItemComponent;
constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, selection: IgxSelectionAPIService);
/** @hidden @internal */
private _onChangeCallback;
/** @hidden @internal */
writeValue: (value: any) => void;
/** @hidden @internal */
registerOnChange(fn: any): void;
/** @hidden @internal */
registerOnTouched(fn: any): void;
/** @hidden @internal */
getEditElement(): HTMLElement;
/** @hidden @internal */
selectItem(newSelection: IgxDropDownItemBase, event?: any): void;
/** @hidden @internal */
getFirstItemElement(): HTMLElement;
/**
* Opens the select
*
* ```typescript
* this.select.open();
* ```
*/
open(overlaySettings?: OverlaySettings): void;
/** @hidden @internal */
ngAfterContentInit(): void;
/** @hidden @internal */
onToggleOpening(event: CancelableEventArgs): void;
protected navigate(direction: Navigate, currentIndex?: number): void;
private setSelection;
/** @hidden @internal */
onBlur(): void;
}