PageSourceSearch

https://www.coachhirecomparison.co.uk/build/assets/autocomplete-input-3f5ce9c0.js

js coachhirecomparison.co.uk collected 2026-10-08 18:41:25 UTC 6,654 bytes, 2 lines download raw bytes

1import{r as A,j as O}from"./app-f846c0e8.js";import{l as ie}from"./index-2ad647a3.js";import{FieldInput as ae}from"./FieldInput-35899ce5.js";var W={},b={};Object.defineProperty(b,"__esModule",{value:!0});b.loadGoogleMapScript=b.isBrowser=void 0;var J=typeof window<"u"&&window.document;b.isBrowser=J;var ue=function(r,t){if(!J||typeof google<"u"&&google.maps&&google.maps.api)return Promise.resolve();var n=document.querySelectorAll('script[src*="'.concat(r,'"]'));if(n&&n.length)return new Promise(function(l){if(typeof google<"u")return l();n[0].addEventListener("load",function(){return l()})});var a=new URL(t);a.searchParams.set("callback","__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__");var d=document.createElement("script");return d.src=a.toString(),new Promise(function(l){window.__REACT_GOOGLE_AUTOCOMPLETE_CALLBACK__=l,document.body.appendChild(d)})};b.loadGoogleMapScript=ue;var I={};Object.defineProperty(I,"__esModule",{value:!0});I.GOOGLE_MAP_SCRIPT_BASE_URL=void 0;var se="https://maps.googleapis.com/maps/api/js";I.GOOGLE_MAP_SCRIPT_BASE_URL=se;Object.defineProperty(W,"__esModule",{value:!0});var le=W.default=me,f=A,V=de(ie),z=b,ce=I;function de(e){return e&&e.__esModule?e:{default:e}}function F(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function S(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?F(Object(t),!0).forEach(function(n){fe(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function fe(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function P(e,r){return _e(e)||ve(e,r)||ge(e,r)||pe()}function pe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ge(e,r){if(e){if(typeof e=="string")return H(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return H(e,r)}}function H(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function ve(e,r){var t=e&&(typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"]);if(t!=null){var n=[],a=!0,d=!1,l,p;try{for(t=t.call(e);!(a=(l=t.next()).done)&&(n.push(l.value),!(r&&n.length===r));a=!0);}catch(v){d=!0,p=v}finally{try{!a&&t.return!=null&&t.return()}finally{if(d)throw p}}return n}}function _e(e){if(Array.isArray(e))return e}function me(e){var r=e.apiKey,t=e.libraries,n=t===void 0?"places":t,a=e.googleMapsScriptBaseUrl,d=a===void 0?ce.GOOGLE_MAP_SCRIPT_BASE_URL:a,l=e.debounce,p=l===void 0?300:l,v=e.options,L=v===void 0?{}:v,u=e.sessionToken,h=e.language,M=h?"&language=".concat(h):"",E="".concat(d,"?key=").concat(r,"&libraries=").concat(n).concat(M),x=(0,f.useState)([]),m=P(x,2),T=m[0],w=m[1],C=(0,f.useState)(!1),o=P(C,2),i=o[0],s=o[1],j=(0,f.useState)(null),G=P(j,2),X=G[0],B=G[1],Y=(0,f.useState)(!1),R=P(Y,2),Z=R[0],k=R[1],ee=(0,f.useState)(!1),U=P(ee,2),te=U[0],D=U[1],re=(0,f.useState)([]),Q=P(re,2),ne=Q[0],K=Q[1],y=(0,f.useRef)(null),$=(0,f.useRef)(null),_=(0,f.useRef)(null),oe=(0,f.useCallback)(function(){return(0,z.loadGoogleMapScript)(d,E)},[d,E]),N=(0,f.useCallback)((0,V.default)(function(g){y.current&&g.input&&y.current.getPlacePredictions(S(S(S({},u&&_.current?{sessionToken:_.current}:{}),L),g),function(c){s(!1),w(c||[])})},p),[p]),q=(0,f.useCallback)((0,V.default)(function(g){y.current&&g.input&&y.current.getQueryPredictions(S(S(S({},u&&_.current?{sessionToken:_.current}:{}),L),g),function(c){k(!1),K(c||[])})},p),[p]);return(0,f.useEffect)(function(){if(z.isBrowser){var g=function(){if(!google)return console.error("Google has not been found. Make sure your provide apiKey prop.");
2y.current=new google.maps.places.AutocompleteService,$.current=new google.maps.places.PlacesService(document.createElement("div")),u&&(_.current=new google.maps.places.AutocompleteSessionToken)};r?oe().then(function(){return g()}):g()}},[]),{placesService:$.current,autocompleteSessionToken:_.current,placesAutocompleteService:y.current,placePredictions:X?T:[],isPlacePredictionsLoading:i,getPlacePredictions:function(c){if(c.input){B(c.input),s(!0),N(c);return}w([]),B(null),N(c),s(!1)},queryPredictions:te?ne:[],isQueryPredictionsLoading:Z,getQueryPredictions:function(c){if(c.input){D(c.input),k(!0),q(c);return}K([]),D(null),q(c),k(!1)},refreshSessionToken:function(){_.current=new google.maps.places.AutocompleteSessionToken}}}const ye=({onPlaceChange:e,value:r,componentRestrictions:t,...n})=>{var w,C;const[a,d]=A.useState(r||""),[l,p]=A.useState(null),v=A.useRef(null);A.useEffect(()=>{r!==void 0&&d(r)},[r]);const{placesService:L,placePredictions:u,getPlacePredictions:h}=le({options:{input:((w=v.current)==null?void 0:w.value)||"",componentRestrictions:t}});function M(o){var s;const i=o.target.value;d(i),p(null),h({input:i}),(s=n.onChange)==null||s.call(n,o)}function E(){!l&&u.length>0&&T(u[0].place_id)}function x(o){if(o.key==="ArrowUp"&&u.length>0){const i=u.findIndex(j=>j.place_id===l),s=i-1<-1?u.length-1:i-1;s===-1?(v.current.value=a,p(null)):m(u[s].place_id)}if(o.key==="ArrowDown"&&u.length>0){const i=u.findIndex(s=>s.place_id===l);i+1>=u.length?(v.current.value=a,p(null),h({input:a})):m(u[i+1].place_id)}}function m(o){p(o),T(o)}function T(o){L.getDetails({placeId:o},i=>{let s="";i.formatted_address.toLowerCase().includes(i.name.toLowerCase())?s=i.formatted_address:s=i.name+", "+i.formatted_address,d(s),e(i)})}return O.jsxs("div",{className:"relative",children:[O.jsx(ae,{...n,value:a,ref:v,onKeyDown:x,onClick:()=>e(null),onChange:M,onBlur:E,className:`peer ${n.className||""}`}),((C=v.current)==null?void 0:C.value.length)>0&&u.length>0&&O.jsx("ul",{className:"invisible absolute left-0 top-full z-50 w-full min-w-[280px] divide-y divide-[#e5e5e5] overflow-hidden rounded-sm border border-[#e5e5e5] bg-white opacity-0 delay-100 peer-focus:visible peer-focus:opacity-100",children:u.map(o=>O.jsx("li",{children:O.jsx("button",{type:"button",tabIndex:-1,onPointerDown:()=>m(o.place_id),className:"block w-full p-5 text-left text-sm text-purple hover:bg-[#e5e5e5]",children:o.description})},o.place_id))})]})};ye.displayName="AutocompleteInput";export{ye as AutocompleteInput};

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.