finpro
Version:
102 lines • 3.15 kB
TypeScript
import { CSSResultGroup, PropertyValues } from 'lit';
import '../fp-icon/fp-icon';
import '../fp-select/fp-select-option/fp-select-option';
import type FpSelectOption from './fp-select-option/fp-select-option';
import FinproElement from '../../internals/finpro-element';
export interface ISelectOption {
value: string;
text: string;
selected: boolean;
}
export declare type SelectSize = 'medium' | 'large' | 'small';
export declare type CleanUpFunction = () => void;
export default class FpSelect extends FinproElement {
static get styles(): CSSResultGroup;
/**
* Sets the label value
*/
label?: string;
/**
* Sets the placeholder value. If left blank, the label value (if specified) is set as placeholder.
*/
placeholder?: string;
/**
* Sets the size value. Select component's height value will be changed accordingly
*/
size: SelectSize;
/**
* When option is not selected, shows component in error state
*/
required: boolean;
/**
* Shows the component in disabled state.
*/
disabled: boolean;
/**
* Allows multiple options to be selected
*/
multiple: boolean;
/**
* Makes label as fixed positioned
*/
labelFixed: boolean;
/**
* Adds help text
*/
helpText?: string;
/**
* Set custom error message
*/
customInvalidText?: string;
private _isPopoverOpen;
private _selectedOptions;
private _additionalSelectedOptionCount;
private _isInvalid;
private _selectedOptionsContainer;
private _selectedOptionsItems;
private _popover;
private _selectInput;
private _onFpSelect;
private _connectedOptions;
private _cleanUpPopover;
get options(): FpSelectOption[];
get opened(): boolean;
get selectedOptions(): ISelectOption[];
get additionalSelectedOptionCount(): number;
get isInvalid(): boolean;
open(): void;
close(): void;
private _clickOutsideHandler;
private _setupPopover;
connectedCallback(): void;
disconnectedCallback(): void;
private inputTemplate;
private menuTemplate;
render(): import("lit-html").TemplateResult<1>;
private get _showPlaceHolder();
private _onClickSelectInput;
private _handleSelectEvent;
private _handleSingleSelect;
private _handleMultipleSelect;
private _handleSelectOptionEvent;
private _onClickRemove;
private _checkAdditionalItemCount;
private _checkRequired;
protected updated(_changedProperties: PropertyValues): void;
/**
* This method is used by `fp-select-option` component to register itself to fp-select.
* @param option FpSelectOption reference to be registered
*/
registerOption(option: FpSelectOption): void;
/**
* This method is used by `fp-select-option` component to unregister itself from fp-select.
* @param option FpSelectOption reference to be unregistered
*/
unregisterOption(option: FpSelectOption): void;
}
declare global {
interface HTMLElementTagNameMap {
'fp-select': FpSelect;
}
}
//# sourceMappingURL=fp-select.d.ts.map