function me(e){const t=(e??"").trim();if(!t)return"";const n=/^\+33(\d{9})$/.exec(t);if(n?.[1]){const i=n[1];return`+33 ${i[0]} ${i.slice(1).replace(/(\d{2})(?=\d)/g,"$1 ")}`}return t}function O(e){if(!e)return[];const t=e.replace(/<\s*(?:\/p|br\s*\/?|\/li|\/div|\/h[1-6]|\/ul|\/ol)\s*>/gi,`
`).replace(/<[^>]*>/g,"");return G(t).split(/\n+/).map(i=>i.replace(/\s+/g," ").trim()).filter(i=>i.length>0)}const U=new Set(["p","br","strong","b","em","i","u","s","ul","ol","li","blockquote","figure","figcaption","h2","h3","h4"]),q=/^https:\/\/[a-z0-9.-]+\.holitime\.org\//i,K=/^https?:\/\//i;function ge(e){return e?e.replace(/<[^>]*>?/g,t=>{const n=/^<\s*(\/?)([a-z0-9]+)([^>]*)>$/i.exec(t);if(!n)return"";const i=n[1]==="/";let r=n[2].toLowerCase();const a=n[3]??"";if(r==="h1"&&(r="h2"),U.has(r))return i?`</${r}>`:`<${r}>`;if(r==="a"){if(i)return"</a>";const l=/href\s*=\s*["']([^"']+)["']/i.exec(a)?.[1];return!l||!K.test(l)?"":`<a href="${l.replace(/"/g,""")}" target="_blank" rel="nofollow noopener">`}if(r==="img"&&!i){const l=/src\s*=\s*["']([^"']+)["']/i.exec(a)?.[1];if(!l||!q.test(l))return"";const c=(/alt\s*=\s*["']([^"']*)["']/i.exec(a)?.[1]??"").replace(/[<>"]/g,"");return`<img src="${l.replace(/"/g,""")}" alt="${c}" loading="lazy">`}return""}):""}function V(e,t=0){const n=O(e).join(" ");return t>0&&n.length>t?`${n.slice(0,t-1).trimEnd()}…`:n}function G(e){return e.replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/�?39;/g,"'").replace(/'/gi,"'").replace(/é/gi,"é").replace(/è/gi,"è").replace(/à/gi,"à ").replace(/ç/gi,"ç")}function he(e){if(!Number.isFinite(e)||e<=0)return"";const t=Math.floor(e/60),n=e%60;return t===0?`${n} min`:n===0?`${t} h`:`${t} h ${n<10?"0":""}${n}`}function D(e){const t=Math.floor(e/100),n=Math.abs(e%100);return n===0?`${t}`:`${t},${n<10?"0":""}${n}`}function S(e){return`${D(e)} €`}function be(e,t){const n=(e||0)+(t||0);return n<=0?null:{ratingValue:Math.round((e||0)/n*5*10)/10,reviewCount:n}}function ye(e,t){const n=P(e),i=P(t);if(n===null&&i===null)return"";if(n!==null&&i!==null&&i>n)return`${S(n)} – ${S(i)}`;const r=n??i;return r===null?"":S(r)}function P(e){if(e==null||e==="")return null;const t=typeof e=="number"?e:Number.parseFloat(e);return Number.isFinite(t)&&t>0?t:null}function Ae(e){return[e.addressLine,[e.postalCode,e.city].filter(Boolean).join(" "),e.country].filter(Boolean).join(", ")}function Q(e){if(!e||e.length===0)return"";let t=null;try{t=new Intl.DisplayNames(["fr"],{type:"language"})}catch{t=null}return e.map(n=>{const i=t?t.of(n):n,r=i&&i!==n?i:n;return r.charAt(0).toUpperCase()+r.slice(1)}).join(", ")}const X=["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"];function $e(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":new Intl.DateTimeFormat("fr-FR",{weekday:"short",day:"numeric",month:"short",timeZone:"Europe/Paris"}).format(t)}function Me(e){if(!e)return"";const t=/^(\d{4})-(\d{2})-(\d{2})/.exec(e);if(!t)return"";const[,n,i,r]=t,a=X[Number(i)-1];return a?`${Number(r)} ${a} ${n}`:""}function Se(e){if(!e)return null;const t=Number.parseFloat(e);return Number.isFinite(t)?t:null}function Ne(e){return(e??[]).filter(t=>!!t?.comment).map(t=>({id:t.id,comment:t.comment,createdAt:t.createdAt,positive:t.starRating!=null?t.starRating>=3:t.thumbUp!==!1,source:t.source,starRating:t.starRating??null,authorName:t.author?.publicName||t.author?.fullName||"Patient Holitime",response:t.response||null}))}function _e(e){return(e??[]).filter(t=>!!t?.label).map(t=>({id:t.id,label:t.label,description:t.description?V(t.description,180):null,priceCents:t.priceCents??0,durationMinutes:t.durationMinutes??0,freeText:t.freeConsultationText||null,capacity:t.capacity??1,groupPricingEnabled:t.groupPricingEnabled??!1,groupPricingMode:t.groupPricingMode??null,groupPricingTiers:t.groupPricingTiers??[]}))}const Y=15,W=100,Fe=1e3,Ee=30,Z=5,J=/^[a-z0-9-]+$/,ee=120,te=80,ne=/^[\p{L}\p{N}'’ .,-]+$/u;function T(e){return(Array.isArray(e)?e[0]??"":e??"").trim().toLowerCase().normalize("NFD").replace(/[Ì€-ͯ]/g,"").replace(/\s+/g,"-")}function R(e){return(e??"").trim().toLowerCase().normalize("NFD").replace(/[Ì€-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function A(e){return J.test(e)}function Ce(e){const t=e.replace(/-/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}function Pe(e){return e.split("-").filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}const ie=new Set(["France","Belgique","Suisse","Luxembourg","Canada"]);function Te(e){const t=e.split(",").map(a=>a.trim()).filter(Boolean);if(t.length===0)return e.trim();let n=t.length-1;const i=t[n];t.length>1&&i!==void 0&&ie.has(i)&&(n-=1);const r=t[n];return r===void 0?e.trim():r.replace(/^\d{4,6}\s+/,"")}function re(e){const n=((Array.isArray(e)?e[0]:e)??"").toString().replace(/\s+/g," ").trim().slice(0,te);return ne.test(n)?n:""}function v(e,t,n){const i=Number.parseFloat(((Array.isArray(e)?e[0]:e)??"").toString());return Number.isFinite(i)&&i>=t&&i<=n?i:null}function ve(e){const t=v(e.lat,-90,90),n=v(e.lon,-180,180);return t!=null&&n!=null?{lat:t,lng:n}:null}function xe(e){const t={},n=e.q.replace(/\s+/g," ").trim().slice(0,ee);n&&(t.q=n);const i=re(e.address);return i&&(t.address=i),e.coords&&(t.lat=e.coords.lat.toFixed(5),t.lon=e.coords.lng.toFixed(5)),t}function x(e){if(!Number.isFinite(e)||e<=0)return"";const t=Math.floor(e/60),n=e%60;return t===0?`${n} min`:n===0?`${t} h`:`${t} h ${n.toString().padStart(2,"0")}`}function se(e,t){const n=new Date(t);return n.setHours(0,0,0,0),n.setDate(n.getDate()+e),Math.floor(n.getTime()/1e3)}function oe(e,t){if(!e)return null;const n=e==="today"?1:e==="next-three-days"?4:8,i=Math.floor(t/1e3),r=se(n,t);return`addresses.firstAppointment:>=${i} && addresses.firstAppointment:<${r}`}const ae=["id","practitionerId","slug","practitionerName","isVerified","hasPaidSubscription","onlineBookingEnabled","tagline","avatar","priceMin","durationMin","durationMax","remoteAllowed","nextAvailabilityAt","freeConsultationText","opinionsPositive","mainDiscipline","disciplines","services","addresses","targetAudiences","paymentMethods","spokenLanguages"].join(",");function Ie(e){const t=e.consultationType??"all",n=e.sortBy??"pertinence",i=e.coords&&Number.isFinite(e.coords.lat)&&Number.isFinite(e.coords.lng)?e.coords:null,r=[];if(e.disciplineSlug&&A(e.disciplineSlug))r.push(`disciplines.slug:=${e.disciplineSlug}`);else if(e.disciplineLabel){const g=e.disciplineLabel.replace(/\\/g,"\\\\").replace(/"/g,'\\"');r.push(`disciplines.label:="${g}"`)}if(e.paymentMethod){const g=e.paymentMethod.replace(/\\/g,"\\\\").replace(/"/g,'\\"');r.push(`paymentMethods:="${g}"`)}if(t==="remote")r.push("locationTypes:=[remote]");else if(t==="home-visit")r.push("locationTypes:=[home_visit]");else{if(i){const g=e.radiusKm??W;r.push(`addresses.location:(${i.lat},${i.lng},${g} km)`)}t==="in-person"&&r.push("locationTypes:=[fixed]")}const a=oe(e.availability??"",e.nowMs??Date.now());a&&r.push(a);const l=Math.floor((e.nowMs??Date.now())/1e3),c=`hasPaidSubscription:=true && nextAvailabilityAt:>${l}`,u=[`(${c}):3`,"(hasPaidSubscription:=true):2",`(nextAvailabilityAt:>${l}):1`],p=(e.promotedDisciplines??[]).map(g=>`\`${pe(g)}\``).join(","),s=p?`disciplines.label:=[${p}]`:null,f=`_eval([${(s?[`(${s} && ${c}):7`,`(${s} && hasPaidSubscription:=true):6`,`(${s} && nextAvailabilityAt:>${l}):5`,`(${s}):4`,...u]:u).join(",")}]):desc`,h=`_text_match(buckets:${Z}):desc`,b=i?`addresses.location(${i.lat},${i.lng}):asc`:null,d="nextAvailabilityAt:asc";let m;switch(n){case"proximity":m=b?[b,f,d]:[h,f,d];break;case"price.asc":m=[f,"priceMin:asc",d];break;case"price.desc":m=[f,"priceMin:desc",d];break;case"opinions.desc":m=[f,"ratioOpinionsPositive:desc",d];break;default:m=b?[h,f,b]:[h,f,d];break}return{q:e.q||"*",preset:"main_search",query_by:"practitionerName,services,disciplines.label,embedding",prefix:"false",prioritize_exact_match:"true",page:String(Math.max(1,Math.trunc(e.page??1)||1)),per_page:String(Y),include_fields:ae,sort_by:m.join(","),...e.withFacets?{facet_by:"disciplines.label,paymentMethods"}:{},...r.length?{filter_by:r.join(" && ")}:{}}}function I(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim().split(" ").filter(Boolean)}function le(e,t){const n=Math.min(e.length,t.length);let i=0;for(;i<n&&e[i]===t[i];)i+=1;return i}const ce=5,ue=4;function Le(e,t){const n=I(e??"");if(!n.length)return[];const i=r=>n.some(a=>{if(a===r)return a.length>=ue;const l=le(a,r),c=Math.min(a.length,r.length);return l>=ce&&l>=.6*c});return t.filter(r=>I(r).some(i))}function pe(e){return e.replace(/`/g,"")}function k(e,t){const i=c=>c*Math.PI/180,r=i(t.lat-e.lat),a=i(t.lng-e.lng),l=Math.sin(r/2)**2+Math.cos(i(e.lat))*Math.cos(i(t.lat))*Math.sin(a/2)**2;return 2*6371*Math.asin(Math.sqrt(l))}function De(e){const t=[],n=new Set;for(const i of e.hits??[]){const r=i.document;if(!r?.practitionerName)continue;const a=r.practitionerId??r.id;for(const l of r.addresses??[]){if(l.remote||l.locationType==="home_visit")continue;const[c,u]=l.location??[];if(!Number.isFinite(c)||!Number.isFinite(u))continue;const p=`${a}:${l.id??`${c},${u}`}`;n.has(p)||(n.add(p),t.push({practitionerId:a,name:r.practitionerName,lat:c,lng:u,formattedAddress:N(l),disciplines:(r.disciplines??[]).map(s=>s.label??"").filter(s=>!!s).slice(0,3)}))}}return t}function fe(e,t,n){const i=e.filter(r=>!r.remote&&r.locationType!=="home_visit");if(t){const r=i.find(a=>R(a.city)===t);if(r)return r}if(n&&i.length>1){let r=null,a=Number.POSITIVE_INFINITY;for(const l of i){const[c,u]=l.location??[];if(typeof c!="number"||typeof u!="number")continue;const p=k(n,{lat:c,lng:u});p<a&&(a=p,r=l)}if(r)return r}return i[0]??e.find(r=>!r.remote)??null}function N(e){const t=[e.postalCode,e.city].filter(n=>!!n).join(" ");return[e.addressLine||e.street,t].filter(n=>!!n).join(", ")}function L(e,t){return!e||e*1e3<t?"":new Intl.DateTimeFormat("fr-FR",{weekday:"short",day:"numeric",month:"long"}).format(new Date(e*1e3))}function Re(e,t,n=Date.now(),i,r,a){const l=[],c=new Set(a??[]),u=new Set;for(const p of e.hits??[]){const s=p.document;if(!s?.id||!s.practitionerName)continue;const y=s.practitionerId??s.id;if(u.has(y))continue;u.add(y);const f=s.addresses??[],h=fe(f,t,i),b=T(s.mainDiscipline?.slug??""),d=T(s.slug??""),m=R(h?.city)||"visio",g=A(b)&&A(m)&&A(d)?`/${b}/${m}/${d}`:"",_=s.mainDiscipline?.label??"",$=f.filter(o=>!o.remote).map((o,z)=>{const[E,C]=o.location??[];return{id:o.id??`addr-${z}`,label:N(o),remote:!1,homeVisit:o.locationType==="home_visit",distanceKm:i&&Number.isFinite(E)&&Number.isFinite(C)?k(i,{lat:E,lng:C}):null,nextAvailabilityLabel:L(o.firstAppointment,n)}}).filter(o=>!!o.label);s.remoteAllowed===!0&&$.push({id:"remote",label:"",remote:!0,homeVisit:!1,distanceKm:null,nextAvailabilityLabel:L(s.nextAvailabilityAt,n)});const w=h?N(h):"",H=o=>r==="remote"?o.remote:r==="home-visit"?o.homeVisit:r==="in-person"?!o.remote&&!o.homeVisit:!0,M=$.filter(H),F=M.length?M:$,B=M.length&&r&&r!=="all"?0:Math.max(0,F.findIndex(o=>o.label===w&&!o.remote)),j=c.size?(s.disciplines??[]).some(o=>o?.label&&c.has(o.label)):void 0;l.push({id:s.id,matchesQuery:j,practitionerId:y,name:s.practitionerName,isVerified:s.isVerified===!0,tagline:s.tagline??"",avatarUrl:s.avatar??"",disciplineLabel:_,otherDisciplines:(s.disciplines??[]).map(o=>o.label??"").filter(o=>!!o&&o!==_),services:(s.services??[]).filter(o=>!!o),priceFrom:typeof s.priceMin=="number"&&s.priceMin>0?D(s.priceMin):null,freeConsultationText:s.priceMin===0?s.freeConsultationText??"":"",durationLabel:de(s.durationMin,s.durationMax),addressOptions:F,defaultAddressIndex:B,audienceKeys:(s.targetAudiences??[]).filter(o=>!!o),paymentKeys:(s.paymentMethods??[]).filter(o=>!!o),languagesLabel:Q(s.spokenLanguages),remoteAllowed:s.remoteAllowed===!0,opinionsPositive:s.opinionsPositive??0,profilePath:g,onlineBookingEnabled:s.onlineBookingEnabled!==!1,hasPaidSubscription:s.hasPaidSubscription!==!1})}return l}function de(e,t){const n=x(e??0),i=x(t??0);return!n&&!i?"":!n||!i||n===i?i||n:`${n} — ${i}`}export{Le as A,W as B,Ee as C,Fe as D,Y as E,De as F,R as G,te as H,ee as S,V as a,xe as b,Te as c,Me as d,S as e,me as f,Ae as g,k as h,he as i,Ie as j,be as k,Ne as l,Re as m,T as n,_e as o,ve as p,ye as q,Q as r,re as s,Se as t,$e as u,ge as v,Pe as w,D as x,A as y,Ce as z};