This is very modular select component where every part can be replaced. Main component is using plugins (KeyboardHandler
, LiveSearch
, NormalState
, Popup
, Positioner
, ReadonlyState
, ValueHandler
) for rendering select itself or just for handling certain events. Main component NgSelectComponent
also implements OptionsGatherer
and TemplateGatherer
.
OptionsGatherer
- Used for obtaining optionsTemplateGatherer
- Used for obtaining templates that can be used within plugins
KeyboardHandler
- This plugin is responsible for handling keyboard events withinPopup
andNormalState
LiveSearch
- This plugin is responsible for rendering live search inputNormalState
- This plugin is responsible for rendering of normal state for select, currently selected option(s), this is what you see when select is closedPopup
- This plugin is responsible for rendering of popup window, available options are visible when select is openPositioner
- This plugin is responsible for positioning ofPopup
ReadonlyState
- This plugin can be used for displaying custom readonly state if select is set as readonly or as disabledValueHandler
- This plugin is responsible for handling selected value