Turn your div
label into chrome omnibox.
A list of projects based on this library:
- https://query.rs
- Rust Search Extension
- Go Search Extension
- C/C++ Search Extension
- Kubernetes Search Extension
- Js Search Extension
- AWS Search Extension
- R Search Extension
constructor({ render, defaultSuggestion, maxSuggestionSize = 8, hint = false })
let omnibox = new Omnibox({
render: new Render(),
// The default suggestion title.
defaultSuggestion: "A handy search extension.",
// Max suggestion size for per page.
maxSuggestionSize: 8,
});
bootstrap(config)
Bootstrap the omnibox.
- config: The configuration object to bootstrap the Omnibox.
{
// The default global search function
onSearch: function(query){},
onFormat: function(index, item){},
onAppend: function(query){},
onEmptyNavigate: function(content, disposition) {},
beforeNavigate: function(content) {},
afterNavigated: function(query, result) {},
}
- config.onSearch: A hook function to perform the default search.
- config.onFormat: A hook function to format the search result.
- config.onAppend: A hook function append the custom item to the result list.
- config.beforeNavigate: A hook function to before URL navigate. You have the last chance to modify the url before it navigated.
- config.afterNavigate: A hook function to after URL navigated. You have the chance to record the history here.
- config.onEmptyNavigate: If the content is a Non-URL which would navigate failed, then fallback to this hook function.
The onSearch
, beforeNavigate
, afterNavigated
, and onEmptyNavigate
in Omnibox::boostrap(config)
can be async
function.
addPrefixQueryEvent(prefix, event)
Add prefix query event.
addRegexQueryEvent(regex, event)
Add regex query event.
{
name,
onSearch,
onFormat = undefined,
onAppend = undefined,
prefix = undefined,
regex = undefined,
// Whether enable the query as a default search.
// Default search means user can perform search without any sigils.
defaultSearch = false,
// The hook method to enable default search dynamically.
// This hook method is preferred over defaultSearch property.
isDefaultSearch = undefined,
// The default search priority. The smaller, the higher.
searchPriority = 0
}
The onSearch
can be async
function.
constructor({ el, icon, placeholder })
$ npx serve
┌───────────────────────────────────────────┐
│ │
│ Serving! │
│ │
│ - Local: http://localhost:3000 │
│ - Network: http://192.168.1.122:3000 │
│ │
│ Copied local address to clipboard! │
│ │
└───────────────────────────────────────────┘
$ open http://localhost:3000/examples/
Licensed under Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)