Find a professional by city
Explore the professional profiles currently available in these cities.
No city has an eligible professional profile in this directory yet.
{
if (finished) return;
finished = true;
observer?.disconnect();
cancelAnimationFrame(frame);
clearTimeout(timer);
document.removeEventListener('pointerdown', cancel, true);
document.removeEventListener('keydown', cancel, true);
document.removeEventListener('focusin', onFocus, true);
document.removeEventListener('visibilitychange', onVisibility);
window.removeEventListener('blur', cancel);
if (host.__ezybikeConsentFocusCancel === cancel) delete host.__ezybikeConsentFocusCancel;
};
const onFocus = (event) => { if (event.target !== from) cancel(); };
const onVisibility = () => { if (document.visibilityState !== 'visible') cancel(); };
const check = () => {
frame = 0;
if (finished) return;
const active = document.activeElement;
if (performance.now() >= deadline || !host.isConnected || !from.isConnected
|| !target.isConnected || !previous.isConnected || !document.hasFocus()
|| document.visibilityState !== 'visible' || !available || visible !== opening
|| (active !== from && active !== document.body && active !== document.documentElement)) {
cancel(); return;
}
if (previous.getClientRects().length === 0 && target.getClientRects().length > 0
&& getComputedStyle(target).visibility === 'visible' && !target.closest('[inert]')) {
cancel();
target.focus();
}
};
const schedule = () => { if (!finished && !frame) frame = requestAnimationFrame(check); };
host.__ezybikeConsentFocusCancel = cancel;
document.addEventListener('pointerdown', cancel, true);
document.addEventListener('keydown', cancel, true);
document.addEventListener('focusin', onFocus, true);
document.addEventListener('visibilitychange', onVisibility);
window.addEventListener('blur', cancel);
observer = new MutationObserver(schedule);
observer.observe(host, {attributes: true, subtree: true, attributeFilter: ['style', 'hidden', 'class', 'inert']});
timer = setTimeout(cancel, 800);
$nextTick(schedule);
}">
Optional audience measurement
With your permission, e-zybike uses Google Analytics to measure general actions. No GPS position, free-text search or personal data is transmitted.
Read the cookie policy