PageSourceSearch

https://yoursouschef.com/_nuxt/C37oRHYI.js

js yoursouschef.com collected 2026-10-09 21:28:54 UTC 6,444 bytes, 1 lines download raw bytes

1import{R as U,h as T,_ as j,y as z,f as D,z as F,j as B,o as w,c as h,t as k,x as C,a as x,k as L,F as K,r as O,m as q,u as Y,d as W}from"./C_qLraa4.js";const G=["locality","sublocality_level_1","sublocality","postal_town","administrative_area_level_2"];function Q(e){const a=Array.isArray(e)?e:[],i=g=>a.find(u=>(u?.types||[]).includes(g)),t=i("street_number")?.longText,n=i("route")?.longText,p=n?[t,n].filter(Boolean).join(" "):null;let r=null;for(const g of G){const u=i(g);if(u?.longText){r=u.longText;break}}return{street:p,city:r,state:i("administrative_area_level_1")?.shortText||null,zip:i("postal_code")?.longText||null,country:i("country")?.shortText||"US"}}function X(e){if(!e)return{};const a=Q(e.addressComponents),i={place_id:e.id,place_name:e.displayName,place_address:e.formattedAddress,place_street:a.street,place_city:a.city,place_state:a.state,place_zip:a.zip,place_country:a.country,place_phone:e.nationalPhoneNumber};return Object.fromEntries(Object.entries(i).filter(([,t])=>t!=null&&t!==""))}const H=250,J=3,Z=5;let A=null;function ee(e){return A||(typeof window>"u"?Promise.reject(new Error("no window")):window.google?.maps?.importLibrary?Promise.resolve():(A=new Promise((a,i)=>{const t="__sousChefMapsReady";window[t]=()=>a();const n=document.createElement("script");n.src=`https://maps.googleapis.com/maps/api/js?key=${encodeURIComponent(e)}&v=weekly&libraries=places&loading=async&callback=${t}`,n.async=!0,n.onerror=()=>i(new Error("Google Maps failed to load")),document.head.appendChild(n)}).catch(a=>{throw A=null,a}),A))}function te(){const e=T([]),a=T(!1),i=T(!1);let t=null,n=null,p=null,r=0;const u=U().public.googleMapsApiKey;async function M(){return p||(await ee(u),p=await window.google.maps.importLibrary("places"),p)}function S(c){return n=new c.AutocompleteSessionToken,n}async function l(c){const s=++r;try{const y=await M();n||S(y);const{suggestions:N}=await y.AutocompleteSuggestion.fetchAutocompleteSuggestions({input:c,sessionToken:n,includedRegionCodes:["us","ca"],language:"en",region:"us"});if(s!==r)return;e.value=(N||[]).filter(f=>f.placePrediction).slice(0,Z).map(f=>({id:f.placePrediction.placeId,mainText:f.placePrediction.mainText?.text??f.placePrediction.text?.text??"",secondaryText:f.placePrediction.secondaryText?.text??"",prediction:f.placePrediction}))}catch{s===r&&(i.value=!0,e.value=[])}finally{s===r&&(a.value=!1)}}function d(c){clearTimeout(t);const s=(c||"").trim();if(!u||i.value||s.length<J){e.value=[],a.value=!1;return}a.value=!0,t=setTimeout(()=>l(s),H)}async function E(c){clearTimeout(t);const s=++r;if(e.value=[],a.value=!1,!c?.prediction)return null;try{const y=c.prediction.toPlace();return await y.fetchFields({fields:["id","displayName","formattedAddress","addressComponents","nationalPhoneNumber"]}),s!==r?null:y}catch{return s!==r?null:{id:c.id,displayName:c.mainText,formattedAddress:c.secondaryText||void 0}}finally{s===r&&(n=null)}}function b(){clearTimeout(t),e.value=[],a.value=!1}function P(){b(),i.value=!1,n=null,r+=1}return{suggestions:e,loading:a,failed:i,search:d,select:E,close:b,reset:P,toLeadFields:X}}const ae={class:"rac"},ne=["for"],oe=["aria-expanded","aria-owns"],le=["id","value","placeholder","autocomplete","aria-controls","aria-activedescendant"],ie=["id"],se=["id","aria-selected","onMousedown","onMouseenter"],re={class:"rac__option-main"},ce={class:"rac__option-secondary"},ue={key:1,class:"rac__confirmed"},de={key:2,class:"rac__error"},fe={__name:"RestaurantAutocomplete",props:{modelValue:{type:String,default:""},id:{type:String,required:!0},label:{type:String,default:""},placeholder:{type:String,default:""},error:{type:String,default:""},autocomplete:{type:String,default:"organization"},plain:{type:Boolean,default:!1}},emits:["update:modelValue","place","unavailable"],setup(e,{emit:a}){const i=e,t=a,{suggestions:n,search:p,select:r,close:g,reset:u,failed:M}=te();z(M,o=>t("unavailable",o));const S=T(null),l=T(-1),d=T("");let E=0,b=!1;function P(){b=!0}function c(){b=!1}D(()=>{window.addEventListener("blur",P),window.addEventListener("focus",c)}),F(()=>{window.removeEventListener("blur",P),window.removeEventListener("focus",c)});const s=B(()=>n.value.length>0&&!d.value),y=B(()=>s.value&&l.value>=0?`${i.id}-opt-${l.value}
1`:void 0);function N(o){const _=o.target.value;t("update:modelValue",_),d.value&&(d.value="",t("place",null)),l.value=-1,p(_)}function f(o){s.value&&(o.key==="ArrowDown"?(o.preventDefault(),l.value=(l.value+1)%n.value.length):o.key==="ArrowUp"?(o.preventDefault(),l.value=l.value<=0?n.value.length-1:l.value-1):o.key==="Enter"?l.value>=0&&(o.preventDefault(),$(n.value[l.value])):o.key==="Escape"&&(u(),l.value=-1))}function R(){window.setTimeout(()=>{b||document.hidden||(g(),l.value=-1)},120)}async function $(o){const _=++E;t("update:modelValue",o.mainText),l.value=-1;const m={id:o.id,displayName:o.mainText,formattedAddress:o.secondaryText||void 0};d.value=m.formattedAddress||o.mainText,t("place",m);const v=await r(o);_===E&&v&&(d.value=v.formattedAddress??m.formattedAddress??"",t("place",v))}function I(){d.value="",t("place",null),t("update:modelValue",""),u(),S.value?.focus()}return(o,_)=>(w(),h("div",ae,[e.label?(w(),h("label",{key:0,class:"rac__label",for:e.id},k(e.label),9,ne)):C("",!0),x("div",{class:"rac__control",role:"combobox","aria-expanded":s.value,"aria-haspopup":"listbox","aria-owns":`${e.id}-list`},[x("input",{id:e.id,ref_key:"inputRef",ref:S,class:L(["rac__input",{"rac__input--plain":e.plain}]),type:"text",value:e.modelValue,placeholder:e.placeholder,autocomplete:e.autocomplete,"aria-autocomplete":"list","aria-controls":`${e.id}-list`,"aria-activedescendant":y.value,onInput:N,onKeydown:f,onBlur:R},null,42,le),s.value?(w(),h("ul",{key:0,id:`${e.id}-list`,class:"rac__list",role:"listbox"},[(w(!0),h(K,null,O(Y(n),(m,v)=>(w(),h("li",{id:`${e.id}-opt-${v}`,key:m.id,class:L(["rac__option",{"rac__option--active":v===l.value}]),role:"option","aria-selected":v===l.value,onMousedown:q(V=>$(m),["prevent"]),onMouseenter:V=>l.value=v},[x("span",re,k(m.mainText),1),x("span",ce,k(m.secondaryText),1)],42,se))),128))],8,ie)):C("",!0)],8,oe),d.value&&!e.plain?(w(),h("p",ue,[_[0]||(_[0]=x("span",{class:"rac__pin","aria-hidden":"true"},"📍",-1)),W(" "+k(d.value)+" ",1),x("button",{type:"button",class:"rac__change",onClick:I},"change")])):C("",!0),e.error?(w(),h("p",de,k(e.error),1)):C("",!0)]))}},me=j(fe,[["__scopeId","data-v-075e8009"]]);export{me as _,X as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.