The Searchbox component can conveniently create two components that are frequently used together to allow the end user to input and submit queries.
This component attaches itself to a
div element and takes care of instantiating either a Querybox component
or an Omnibox component, depending on its configuration. Optionally, the Searchbox component can also
instantiate a SearchButton component and append it inside the same
Specifies whether to instantiate a SearchButton component.
Default value is
Specifies whether to instantiate an Omnibox component.
When this option is
false, the Searchbox component instantiates a Querybox component instead of an
You can use configuration options specific to the component that the Searchbox instantiates.
In this first case, the Searchbox will instantiate a Querybox component. It is therefore possible to configure that Querybox instance using any of the Querybox component options such as Querybox.options.triggerQueryOnClear.
<div class='CoveoSearchbox' data-trigger-query-on-clear='true'></div>
In this second case, the Searchbox will instantiate an Omnibox component. It is therefore possible to configure
that Omnibox instance using any of the Omnibox component options such as Omnibox.options.placeholder.
Moreover, since the Omnibox component inherits all of the Querybox component options, the
data-trigger-query-on-clear option will also work on that Omnibox instance.
<div class='CoveoSearchbox' data-enableOmnibox='true' data-place-holder='Please enter a query'></div>
Default value is
Return the debug info about this component.
Disable the component. Normally this means that the component will not execute handlers for the framework events (query events, for example). Component are enabled by default on creation.
Enable the component. Normally this means that the component will execute handlers for the framework events (query events, for example). Components are enabled by default on creation.
Return the bindings, or environment, for the current component.
Get the bound component to the given HTMLElement. Throws an assert if the HTMLElement has no component bound, unless using the noThrow argument.
If there is multiple component bound to the current HTMLElement, you must specify the component class.
HTMLElement for which to get the bound component.
Optional component class. If the HTMLElement has multiple components bound, you must specify which one you are targeting.
Boolean option to tell the method to not throw on error.
Allows the component to bind events and execute them only when it is enabled.
Contains the state of options for differents component. Mainly used by ResultLink.
Contains the state of different component (enabled vs disabled). Allows to get/set values. Trigger component state event when modified. Each component can listen to those events.
A disabled component will not participate in the query, or listen to ComponentEvents.
Allows component to log in the dev console.
Contains the singleton that allows to trigger queries.
Contains the state of the query. Allows to get/set values. Trigger query state event when modified. Each component can listen to those events.
A reference to the root HTMLElement (the SearchInterface).
The SearchButton instance.
A reference to the root of every component, the SearchInterface.
A reference to the Analytics.client.
The static ID that each component need to be identified.
For example, SearchButton -> static ID : SearchButton -> className : CoveoSearchButton
Creates a new Searchbox. Creates a new Coveo.Magicbox instance and wraps magic box methods (on blur, on submit
etc.). Binds event on
buildingQuery and on redirection (for standalone box).
The HTMLElement on which to instantiate the component. This cannot be an
The options for the Searchbox component. These will merge with the options from the component set
directly on the
The bindings that the component requires to function normally. If not set, these will be automatically resolved (with a slower execution time).