/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
/** Nested components */
import { DropdownElement, ComparisonMode } from "cmf.core.controls/src/components/dropdown/dropdown";
import { OnValidate, OnValidateArgs } from "cmf.core.controls/src/directives/validator/validator";
/** Angular2 */
import * as ng from "@angular/core";
/**
* @whatItDoes
*
* The LookupDropdown component represents all the values on a lookup table as a dropdown where the user can pick one or more values.
* It uses the inner dropdown component to adapt to the position where the dropdown is placed.
* This component loads the dropdown values from the cache
*
* @howToUse
*
* This component requires at least the lookupTableId or the lookupTableName to work, so it can resolve the values being shown.
* You should use it in a filter like component. For picking a value in a form please refer to LookupCombobox component
*
* ### Inputs
* `string` : **lookupTableId** - The table name to resolve the values from
* `string` : **lookupTableName** - The table id to resolve the values from
* `string[]` : **itemsToIgnore** - An array of items to ignore.
* The items of the array will be compared with both keys and values of the lookup table
* `string` : **mainTitle** - Title being displayed on top of the lookup dropdown
* `string` : **subTitle** - Defines the component sub title for the top of the dropdown
* `boolean` : **search** - Defines if the inner component has search on the dropdown to type text and look for the values
* `boolean` : **multiSelection** - If enabled, will allow the selection of multiple lookup table values
* `string` : **allName** - String to show when all / none items are selected
* `boolean` : **disabled** - If set to true, will disable the selection of a value and the opening of the dropdown
* `boolean` : **required** - If set to true will trigger the validation of the value (has to be different than null)
* `Cmf.Foundation.BusinessObjects.LookupTableValue | Cmf.Foundation.BusinessObjects.LookupTableValue[]` :
* **value** - Sets the currently selected value on the dropdown
* `ComparisonMode` : **comparisonMode** - Comparison mode used for selection, by default is strict
*
* ### Outputs
* `Cmf.Foundation.BusinessObjects.LookupTableValue | Cmf.Foundation.BusinessObjects.LookupTableValue[]` :
* **valueChange** - The value change event, so the component can inform the upper components that the value has changed
*
* ### Example
*
* ```HTML
*
*
* ```
*
* @description
*
* ## Lookup Dropdown Component
*
* ### Dependencies
*
* #### Components
* * Dropdown : `cmf.core.controls`
*
* #### Services
* _This component does not depend on any service
*
* #### Directives
* * ValidatorModel : `cmf.core.controls`
*
*/
export declare class LookupDropdown extends CoreComponent implements ng.OnChanges, ng.OnInit, OnValidate {
/**
* Currently selected lookup value name
*/
_displayValue: string;
/**
* Lookup table set to select items in the dropdown
*/
private _lookupTable;
/**
* Items being displayed in the dropdown
*/
_lookupTableItems: Cmf.Foundation.BusinessObjects.LookupTableValue[];
/**
* title being displayed on top of the lookup dropdown
*/
_mainTitle: string;
/**
* Currently held value of the dropdown
*/
private _value;
/**
* Inner value of the dropdown component
*/
private _innerValue;
/**
* Items to preselect on the multi selection
*/
_multiSelectItems: string[];
/**
* Mobile filter dropdown
*/
mobileFilterDropdown: boolean;
/**
* Defines the component title
*/
mainTitle: any;
/**
* Defines the component sub title for the top of the dropdown
*/
subTitle: string;
/**
* If set to true, a search box will appear for the user to filter the items in the dropdown. Defaults to false
*/
search: boolean;
/**
* If enabled, will allow the selection of multiple lookup table values
*/
multiSelection: boolean;
/**
* An array of items to ignore. The items of the array will be compared with both keys and values of the lookup table
*/
itemsToIgnore: string[];
/**
* The value change event, so the component can inform the upper components that the value has changed
*/
valueChanged: ng.EventEmitter;
/**
* Id of the lookup table
*/
lookupTableId: string;
/**
* Name of the lookup table
*/
lookupTableName: string;
/**
* string to show that all / none items are selected
*/
allName: string;
/**
* If set to true, will disable the selection
*/
disabled: boolean;
/**
* If set to true will trigger the validation of the value (has to be different than null)
*/
required: boolean;
/**
* Comparison mode used for selection, by default is strict
*/
comparisonMode: ComparisonMode;
/**
* Sets the currently selected value on the dropdown
*/
value: Cmf.Foundation.BusinessObjects.LookupTableValue | Cmf.Foundation.BusinessObjects.LookupTableValue[];
constructor();
/**
* On init method
* This is needed in order to be sure that the lookuptable items are filled when loading the component
*/
ngOnInit(): void;
/**
* On changes method - update property viewer value field
*/
ngOnChanges(changes: any): Promise;
onSelectItem(item: DropdownElement | DropdownElement[], emitEvent?: boolean): void;
/**
* Fill the array of items of the loaded lookup table
*/
private buildLookupTableItems;
/**
* Internal validation will trigger false when the value is required but is currently set to null
*/
private internalValidation;
/**
* Method used to get all the Lookuptable values
*/
private getLookupTableValues;
/**
* Validation function
* @param context ValidationContext
*/
onValidate(context: OnValidateArgs): Promise;
}
export declare class LookupDropdownModule {
}