PageSourceSearch

https://spothero.com/consumer-seo/_next/static/chunks/3889-ebd616cb8c5e0df1.js

js spothero.com collected 2026-09-24 08:28:50 UTC 14,546 bytes, 1 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1ba4cfd2-b8c3-4768-8ed6-77b9221f23ec",e._sentryDebugIdIdentifier="sentry-dbid-1ba4cfd2-b8c3-4768-8ed6-77b9221f23ec")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3889],{18870:function(e,t,r){"use strict";r.d(t,{An:function(){return n},Er:function(){return buildAirportLogo},Ej:function(){return buildAirportSpotDetailsURL},Ci:function(){return buildCheckoutURL},hN:function(){return buildExpressCheckoutURL},G0:function(){return buildImageTemplate},DA:function(){return buildUniqueRateAmenities},vC:function(){return formatAirportTransportation},dF:function(){return formatAmenitySlug},o0:function(){return formatDateTime},Bb:function(){return formatDistance},en:function(){return formatHoursOfOperation}});let n=Object.freeze({ATTENDANT:"attendant",COVERED_PARKING:"covered-parking",EV:"ev",HEATED:"heated",IMMEDIATE_PARKING:"immediate-parking",IN_OUT:"in-out",NO_CONTRACT:"no-contract",ONE_TAP:"one-tap",PAVED:"paved",SELF_PARK:"self-park",SHUTTLE:"shuttle",TOUCHLESS:"touchless",VALET:"valet",WHEELCHAIR:"wheelchair"}),buildImageTemplate=e=>({...e,urlTemplate:e.url.replace(/w_\d+,h_\d+,q_\d+/,"w_{{WIDTH}},h_{{HEIGHT}},q_{{QUALITY}}"),parsedURLforNextImg:e.url.replace(/https:\/\/res\.cloudinary\.com\/spothero\/image\/upload\/w_\d+,h_\d+,q_\d+,x_\d+,y_\d+,c_fill,g_.+_.+,f_auto|https:\/\/res\.cloudinary\.com\/spothero\/w_\d+,h_\d+,q_\d+,x_\d+,y_\d+,c_fill,g_.+_.+,f_auto/,"")}),buildAirportLogo=(e,t)=>e?buildImageTemplate(e):t[0]?buildImageTemplate(t[0]):null;var a=r(5842),i=r(82378),o=r(48389);let offsetPresent=e=>{let t=/(Z|[+-](\d{2}:?\d{2}$)|([+-]\d{2}$))/.test(e);return t},formatDateTime=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o.Ak;return(0,i.Z)(e).tz(t,!offsetPresent(e)).format(r)},buildAirportSpotDetailsURL=e=>{let{spotId:t,facilitySlug:r,starts:n,ends:i,timezone:o,rebookId:u}=e,l="/airport-parking/".concat(t,"/").concat(r,"/"),s={rebook_reservation_id:u,starts:formatDateTime(n,o),ends:formatDateTime(i,o),airport:!0};return"".concat(l,"?").concat(a.default.createQueryString(s))},buildCheckoutURL=e=>{let{spotId:t,facilitySlug:r,rateId:n,starts:i,ends:u,timezone:l,rateType:s,eventId:c,rebookId:d}=e,f="/checkout/".concat(t,"/").concat(r,"/"),p={rebook_reservation_id:d};switch(s){case"airport":p={...p,rid:n,starts:formatDateTime(i,l),ends:formatDateTime(u,l),airport:!0};break;case"monthly":p={...p,rid:n,starts:formatDateTime(i,l,o.A7),monthly:!0};break;default:p={...p,rid:c?null:n,starts:formatDateTime(i,l),ends:formatDateTime(u,l),eid:c}}return"".concat(f,"?").concat(a.default.createQueryString(p))},buildExpressCheckoutURL=e=>{let{spotId:t,rateId:r,starts:n,ends:i,timezone:u}=e,l={facility:t,starts:formatDateTime(n,u,o.Uc),ends:formatDateTime(i,u,o.Uc)};return r&&(l.rid=r),"".concat("/purchase/hourly","?").concat(a.default.createQueryString(l))};var u=r(3010),l=r.n(u);let buildUniqueRateAmenities=e=>{let t=e.reduce((e,t)=>e.concat(t.amenities),[]),r=l()(t,"type");return r},formatHoursOfOperation=e=>{let{alwaysOpen:t,periods:r}=e,n=r.map(e=>{let{hoursType:t,firstDay:r,lastDay:n,startTime:a,endTime:i}=e;return{hoursType:t,startDayOfWeek:r,endDayOfWeek:n,startTime:a,endTime:i}});return{alwaysOpen:t,periods:n}},formatAirportTransportation=e=>({...e,type:e.type.replace(/_/g,"-"),hoursOfOperation:formatHoursOfOperation(e.hoursOfOperation)}),formatAmenitySlug=e=>({...e,type:(()=>{switch(e.type){case"wheelchair_accessible":return n.WHEELCHAIR;case"covered":return n.COVERED_PARKING;default:return e.type.replace(/_/g,"-")}})()}),formatDistance=e=>e||{linearMeters:0}},21423:function(e,t,r){"use strict";r.d(t,{BU:function(){return a},Mo:function(){return getPartnerAffiliate},f5:function(){return i},xR:function(){return o}});var n=r(4462);let a={SEARCH_GOOGLE_PLACES_TYPE:{STORAGE_KEY:"search_google_places_type",STORAGE_TYPE:"session"},PARTNER_AFFILIATE:"sh-partner-affiliate",SEARCH_TRACKING:{COOKIES:{SESSION_UUID_COOKIE:"sh_session_uuid",SEARCH_UUID_COOKIE:"sh_search_uuid",ACTION_UUID_COOKIE:"sh_action_uuid",ACTION_COOKIE:"sh_action"}}},i={LOCAL:"local",SESSION:"session",COOKIE:"cookie"},o={YEAR:365,YEAR_IN_MILLISECONDS:31536e6,MONTH:30,HALF_HOUR_IN_DAYS:.021},getPartnerAffiliate=()=>n.default.get(a.PARTNER_AFFILIATE,i.SESSION)||null},94254:function(e,t,r){"use strict";r.d(t,{e:function(){return useGoogleMapsPlaces},u:function(){return GoogleMapsPlacesProvider}});var n=r(97458),a=r(52983),i=r(42958),o=r(67975),u=r(92783);let loadLibraries=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;return Promise.allSettled([e.importLibrary("core"),e.importLibrary("maps"),e.importLibrary("geocoding"),e.importLibrary("places")]).then(r=>{let n=r.filter(e=>"fulfilled"===e.status).map(e=>e.value),a=r.filter(e=>"rejected"===e.status);if(a.length>0){if(0!==t)return loadLibraries(e,t-1);throw Error("Failed to load ".concat(a.length," libraries after ").concat(3," attempts."))}return n})},l=(0,a.createContext)({googleMapsLoaded:!1,googleMapsLibraries:null,useNewGooglePlacesApi:!1}),GoogleMapsPlacesProvider=e=>{let{children:t}=e,r=(0,i.Z)(),s=(null==r?void 0:r.googlemapApiKey)||"",[c,d]=(0,a.useState)(!1),[f,p]=(0,a.useState)(null);return((0,a.useEffect)(()=>
1{if(!s)return;let e=!1,t=new o.aN({apiKey:s,version:"weekly"});return loadLibraries(t).then(t=>{e||(p({core:t[0],maps:t[1],geocoding:t[2],places:t[3]}),d(!0))}).catch(e=>{u.Tb(e)}),()=>{e=!0}},[s]),r.googlemapApiKey)?(0,n.jsx)(l.Provider,{value:{googleMapsLoaded:c,googleMapsLibraries:f,useNewGooglePlacesApi:!0},children:t}):t},useGoogleMapsPlaces=()=>(0,a.useContext)(l)},46822:function(e,t,r){"use strict";var n=r(28977),a=r.n(n),i=r(88986),o=r.n(i),u=r(13516),l=r.n(u),s=r(61732),c=r.n(s);a().extend(o()),a().extend(l()),a().extend(c()),t.Z=a()},53617:function(e,t,r){"use strict";r.d(t,{L:function(){return okOrThrow}});let FetchError=class FetchError extends Error{constructor(e,t,r,n){super(n||"fetch failed. Status: ".concat(e,". Status Text: ").concat(t,". URL: ").concat(r)),this.name="FetchError",this.status=e,this.statusText=t,this.url=r}};function okOrThrow(e){if(!e.ok)throw new FetchError(e.status,e.statusText,e.url,"fetch failed. Something went wrong. Status: ".concat(e.status,". URL: ").concat(e.url));return e}},97237:function(e,t,r){"use strict";r.d(t,{Tt:function(){return getSearchUrl},fm:function(){return createDefaultAirportSearchWindow},ir:function(){return getSearchWindow}});var n=r(82378),a=r(88986),i=r.n(a),o=r(90814),u=r(86709),l=r(48389),s=r(53617);n.Z.extend(i());let roundStartTime=(e,t)=>{let r=e?(0,n.Z)(e):(0,n.Z)().tz(t);return 30>r.minute()?r.minute(0):r.minute(30)},getSearchWindow=e=>{if("string"!=typeof e)return{starts:"",ends:""};let t=roundStartTime(null,e),r=(0,n.Z)(t).add(n.Z.duration(3,"hours"));return{starts:t.format(l.Ak),ends:r.format(l.Ak)}},getAirportCodeByDestinationId=async e=>{let{id:t,spotheroV1ApiUrl:r}=e;try{var n;let e=new URL("".concat(r,"/destinations/").concat(t,"/"));e.searchParams.append("include","airport");let a=await window.fetch(e.href),i=await (0,s.L)(a).json();return(null===(n=i.data.airport)||void 0===n?void 0:n.iata_code)||""}catch(e){return console.error("getAirportCodeByDestinationId: Error getting airport code by destination id",e),""}},shouldHideEventModal=e=>{let{locationKind:t,isMidfunnel:r,isPowerBooking:n,hideEventModal:a}=e;return"destination"===t&&(r||n||a)},searchUrlForCurrentLocation=e=>{let{starts:t,ends:r,locationKind:n,locationId:a,isMonthly:i,isMidfunnel:o,siteUrl:l,isPowerBooking:s=!1,powerBookingStarts:c=[],powerBookingEnds:d=[],powerBookingSource:f=null,operatorId:p=null,hideEventModal:m=!1}=e,h=s?c:t,g=s?d:r;return(0,u.I)("".concat(l,"/search"),{kind:n,id:a,..."airport"===n&&{airport:!0,hide_modal:!0},...(null==h?void 0:h.length)&&{starts:h},...i&&{monthly:!0},...!i&&(null==g?void 0:g.length)&&{ends:g},...o&&{midfunnel:!0},...shouldHideEventModal({locationKind:n,isMidfunnel:o,isPowerBooking:s,hideEventModal:m})&&{hide_event_modal:!0},...s&&{power_booking:!0},...s&&f&&{pb_source:f},...p&&{operator_id:p}}).href},getMatchingSpotheroLocation=async e=>{let{location:t,starts:r,ends:n,isMonthly:a,spotheroV1ApiUrl:i}=e,l=(0,u.I)("".concat(i,"/search-params/"),{...t,...r&&{starts:r},...a&&{monthly:!0},...!a&&n&&{ends:n}}),s=await fetch(l.href),{data:c}=await s.json(),{page_info:{page_type:d,setup:{city:{id:f}={id:null},destination:{id:p,is_airport:m}={id:null,is_airport:!1}}},search_string:h}=c,g=d===o.T3.CITY?f:d===o.T3.DESTINATION?p:null;return{id:g,kind:"venue"===d?"destination":"search"===d?"address":d,is_airport:m,search_string:h}},searchUrlForUserEnteredLocation=async e=>{let{location:t,starts:r,ends:n,isMonthly:a,isMidfunnel:i,siteUrl:o,spotheroV1ApiUrl:l,isPowerBooking:s=!1,powerBookingStarts:c=[],powerBookingEnds:d=[],powerBookingSource:f=null,operatorId:p=null,hideEventModal:m=!1}=e,{id:h,kind:g,search_string:_,is_airport:b}=await getMatchingSpotheroLocation({location:t,...r&&{starts:r},...n&&{ends:n},isMonthly:a,spotheroV1ApiUrl:l}),A=null;b&&(A=await getAirportCodeByDestinationId({id:h.toString(),spotheroV1ApiUrl:l}));let y=s?c:r,E=s?d:n,{latitude:T,longitude:I}=t,O=(0,u.I)("".concat(o,"/search"),{kind:g,...h&&{id:h},..."destination"===g&&{destination_id:h},...!h&&{latitude:T,longitude:I,search_string:_},...a&&{monthly:!0},...!a&&(null==E?void 0:E.length)&&{ends:E},...(null==y?void 0:y.length)&&{starts:y},...i&&{midfunnel:!0},...shouldHideEventModal({locationKind:g,isMidfunnel:i,isPowerBooking:s,hideEventModal:m})&&{hide_event_modal:!0},...s&&{power_booking:!0},...s&&f&&{pb_source:f},...b&&A&&{kind:"airport",id:A,airport:!0,hide_modal:!0,latitude:null,longitude:null,search_string:null},...p&&{operator_id:p}},!0);return O.href},getSearchUrl=async e=>{let{location:t={latitude:null,longitude:null,search_string:null},locationKind:r,locationId:n,starts:a,ends:i,isMonthly:o,isMidfunnel:u,siteUrl:s,spotheroV1ApiUrl:c,isPowerBooking:d=!1,powerBookingStarts:f,powerBookingEnds:p,powerBookingSource:m=null,operatorId:h=null,hideEventModal:g=!1}=e,_=null==a?void 0:a.format(l.Ak),b=null==i?void 0:i.format(l.Ak);return(null==t?void 0:t.search_string)?searchUrlForUserEnteredLocation({starts:_,ends:b,isMonthly:o,isMidfunnel:u,location:t,siteUrl:s,spotheroV1ApiUrl:c,isPowerBooking:d,powerBookingStarts:f,powerBookingEnds:p,powerBookingSource:m,operatorId:h,hideEventModal:g}):searchUrlForCurrentLocation({starts:_,ends:b,isMonthly:o,isMidfunnel:u,locationId:n,locationKind:r,siteUrl:s,isPowerBooking:d,powerBookingStarts:f,powerBookingEnds:p,powerBookingSource:m,operatorId:h,hideEventModal:g})},createDefaultAirportSearchWindow=e=>({starts:(0,n.Z)().tz(e).add(n.Z.duration(1,"days")).set("hour",12).set("minute",0).set("second",0).set("millisecond",0),ends:(0,n.Z)().tz(e).add(n.Z.duration(5,"days")).set("hour",12).set("minute",0).set("second",0).set("millisecond",0)})},89618:function(e,t,r){"use strict";r.d(t,{He:function(){return clampTimeToHalfHourIntervals},O:function(){return calculateTimeDifference},PU:function(){return getDefaultTimezone},XM:function(){return getTimeExtension},Xh:function(){return prettyDuration}});var n=r(46822);let clampTimeToHalfHourIntervals=e=>{let{time:t,mode:r}=e,n=t.minute();return n>0&&n<30?"end"===r?t.minute(0):t.minute(30):n>30&&n<=59?"end"===r?t.minute(30):t.add(1,"hour").minute(0):t},prettyDuration=e=>{let t="number"==typeof e?n.Z.duration(e):e,r=t.minutes();return r>=59&&(t=t.add(60-r,"minutes")),t.format("D [days], H [hours], m [minutes]").replace(/\b0\b days, /,"").replace(/, \b0\b hours/,"").replace(/\b0\b hours, /,"").replace(/, \b0\b minutes/,"").replace(/\b0\b minutes\b/,"").replace("undefined days","").replace(", undefined hours","").replace(", undefined minutes","").replace(/\b1 days\b/,"1 day").replace(/\b1 hours\b/,"1 hour").replace(/\b1 minutes\b/,"1 minute")},getTimeExtension=e=>{let{requestedStartDateTimeObj:t,requestedEndDateTimeObj:r,actualStartDateTimeObj:a,actualEndDateTimeObj:i,isMonthly:o}=e;if(o)return{isExtended:!1,formattedDuration:null};{let e=t.isAfter(a)||i.isAfter(r),o=n.Z.duration(t.diff(a)),u=n.Z.duration(i.diff(r)),l=prettyDuration(o.add(u));return{isExtended:e,formattedDuration:l}}};function calculateTimeDifference(e){let{starts:t,ends:r,unit:a="hour",isFloatingPointNumber:i=!0}
1=e,o=(0,n.Z)(t),u=(0,n.Z)(r);return u.diff(o,a,i)||0}function getDefaultTimezone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}},86709:function(e,t,r){"use strict";r.d(t,{I:function(){return urlWithParams}});let urlWithParams=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=new URL(e);return Object.entries(t).forEach(e=>{let[t,a]=e;r&&null==a||n.searchParams.append(t,String(a))}),n}},40348:function(e,t,r){"use strict";var n=r(48412);t.default=void 0;var a=n(r(51274)),i=n(r(77734)),o=n(r(42876)),u=n(r(69107));t.default={querify:e=>(0,u.default)(e,(e,t)=>`${encodeURIComponent(t)}=${encodeURIComponent(e)}`).join("&"),getPartialMatchedProps(e,t){let r={};return(0,i.default)(e,(e,n)=>{(0,o.default)(n,t)&&(r[n]=e)}),r},camelizeKeys:e=>(0,a.default)(e)}},10968:function(e,t,r){"use strict";var n=r(48412);t.default=void 0;var a=n(r(55371)),i=n(r(14698));t.default={parseParams(e){if(!e)return{};let t=new URLSearchParams(this.getQueryString(e)),r={};for(let[e,n]of t.entries())this.convertAndAddParamPair(r,e,n);return r},createQueryString:e=>new URLSearchParams((0,a.default)(e,(e,t)=>(0,i.default)(t)||(0,i.default)(e)||0===t.length||0===e.length)).toString(),getQueryString(e){let t=e;if(t.indexOf("?")>-1&&(t=t.split("?")[1]),t.indexOf("#")>-1&&(t=t.split("#")[1]),-1===t.indexOf("=")&&-1===t.indexOf("&"))return"";for(;0===t.indexOf("#")||0===t.indexOf("?");)t=t.substr(1);return t},convertAndAddParamPair(e,t,r){let n=-1,a={true:!0,false:!1,null:null,undefined:void 0},i=r;if(("string"==typeof t||"[object String]"===Object.prototype.toString.call(t))&&(n=t.search(/[\.\[]/)),-1===n)return i&&!isNaN(Number(i))?i=Number(i):Object.prototype.hasOwnProperty.call(a,i)&&(i=a[i]),e[t]=i,e[t];let o=t.substr(0,n),u=t.substr(n+1);switch(t.charAt(n)){case"[":return e[o]=e[o]||[],-1===(u=u.replace("]","")).search(/[\.\[]/)&&u.search(/^[0-9]+$/)>-1&&(u=parseInt(u,10)),this.convertAndAddParamPair(e[o],u,i);case".":return e[o]=e[o]||{},this.convertAndAddParamPair(e[o],u,i)}return e}}},30379:function(e,t,r){e.exports=r(40348)},5842:function(e,t,r){e.exports=r(10968)}}]);

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.