Lines
0 %
Functions
Branches
100 %
mod account;
mod commodity;
mod component;
mod factory;
mod suggestion;
mod tag;
pub use account::AccountAutocomplete;
pub use commodity::CommodityAutocomplete;
pub use component::{Autocomplete, AutocompleteConfig, FetchMethod, build_cache_key};
pub use factory::create_autocomplete;
pub use suggestion::Suggestion;
pub use tag::{TagNameAutocomplete, TagValueAutocomplete};
use crate::data_attrs::AutocompleteAttr;
use wasm_bindgen::JsCast;
/// Initializes all autocomplete components that haven't been initialized yet.
pub fn init_all() {
let Some(document) = web_sys::window().and_then(|w| w.document()) else {
return;
};
let selector = format!(
"[{}]:not([{}])",
AutocompleteAttr::Type.as_str(),
AutocompleteAttr::Initialized.as_str()
);
let Ok(wrappers) = document.query_selector_all(&selector) else {
for i in 0..wrappers.length() {
let Some(wrapper) = wrappers.get(i) else {
continue;
let Ok(element) = wrapper.dyn_into::<web_sys::Element>() else {
let _ = create_autocomplete(&element);
let _ = element.set_attribute(AutocompleteAttr::Initialized.as_str(), "true");
}