1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7837],{7837:(e,t,l)=>{function n(e,t){return Number.isFinite(e)&&Number.isFinite(t)&&!(t<=0)?e/t:null}function r(e,t){return!Number.isInteger(e)||e<0||!Number.isFinite(t)||t<=0?null:e/t*365}function u(e){var t,l;if(0===e.length)return null;let n=[...e].sort((e,t)=>e-t),r=Math.floor(n.length/2);return n.length%2==1?n[r]:(t=n[r-1],l=n[r],Number.isFinite(t)&&Number.isFinite(l)?(t+l)/2:null)}function a(e){if(0===e.length)return null;let t=u(e);return null==t?null:{min:Math.min(...e),max:Math.max(...e),median:t,sampleSize:e.length}}function i(e){let t=new Date(e);return t.setUTCMonth(t.getUTCMonth()-24),t.getTime()}function o(e){if(0===e.length)return[];let t=new Map;for(let r of e){var l,n;let e=null!=(l=r.country)?l:"__unknown__",u=null!=(n=t.get(e))?n:[];u.push(r),t.set(e,u)}let r=[];for(let e of t.values()){let t=[...e].sort((e,t)=>e.checkIn.localeCompare(t.checkIn)),l=[],n=null;for(let e of t){let t=Date.parse(e.checkIn),u=Date.parse(e.checkOut);0===l.length||null==n||t-n<=864e5?l.push(e):(r.push(l),l=[e]),n=null==n?u:Math.max(n,u)}l.length>0&&r.push(l)}return r}function s(e){let t=new Map;for(let r of e){var l,n;let e="".concat(null!=(l=r.brand)?l:"","::").concat(r.checkIn,"::").concat(r.checkOut,"::").concat(null!=(n=r.totalAmount)?n:"");t.set(e,r)}return[...t.values()]}function c(e){let t=new Date(e).getUTCMonth();return Number.isNaN(t)?null:11===t||0===t||1===t?"winter":t>=2&&t<=4?"spring":t>=5&&t<=7?"summer":"fall"}function h(e,t){var l,h;let m=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),g=s(e).filter(e=>"other"!==e.travelerScope),f=i(m),p=g.filter(e=>{let t=Date.parse(e.checkIn);return Number.isFinite(t)&&t>=f}),k=p.length>=5?"trailing24mo":"allTime",b="trailing24mo"===k?p:g,I=b.filter(e=>"hotel"!==e.lodgingKind),N=b.length>0?n(I.length,b.length):null,d={};for(let e of b){if(!e.tier)continue;let t=e.tier;d[t]=(null!=(l=d[t])?l:0)+1}let M=b.filter(e=>!e.isAward&&!(null!=e.guests&&e.guests>6)),v=M.filter(e=>"hotel"!==e.lodgingKind&&null!=e.totalAmount).map(e=>n(e.totalAmount,e.nights)).filter(e=>null!=e),w=M.filter(e=>"hotel"===e.lodgingKind&&null!=e.totalAmount).map(e=>n(e.totalAmount,e.nights)).filter(e=>null!=e),A=M.filter(e=>null!=e.guests&&e.guests>0&&null!=e.totalAmount).map(e=>{var t,l,n;return t=e.totalAmount,l=e.nights,n=e.guests,!Number.isFinite(t)||t<0||!Number.isInteger(l)||l<=0||!Number.isInteger(n)||n<=0?null:t/l/n}).filter(e=>null!=e),C=o(b),D=C.map(e=>{var t,l;let r=Math.min(...e.map(e=>Date.parse(e.checkIn))),u=n(Math.max(...e.map(e=>Date.parse(e.checkOut)))-r,864e5);if(null==u)return null;let a=[...e].sort((e,t)=>e.checkIn.localeCompare(t.checkIn))[0];return{nights:u,label:null!=(l=null!=(t=a.city)?t:a.country)?l:null,start:a.checkIn}}).filter(e=>null!=e).sort((e,t)=>e.start.localeCompare(t.start)),y=u(D.map(e=>e.nights)),_=null;if(C.length>0){let e=C.map(e=>Math.min(...e.map(e=>Date.parse(e.checkIn)))),t=n(Math.max(...e)-Math.min(...e),864e5);_=null!=t?r(C.length,t):null}let F={};for(let e of C){let t=c([...e].sort((e,t)=>e.checkIn.localeCompare(t.checkIn))[0].checkIn);t&&(F[t]=(null!=(h=F[t])?h:0)+1)}let T=b.some(e=>null!=e.guests&&e.guests>6),x={...{rentalShare:N,tierHistogram:d,nightlyBandRentals:a(v),nightlyBandHotels:a(w),nightlyBandPerPerson:a(A),tripsPerYear:_,medianTripLength:y,tripShapes:D,seasonality:F,booksForOthers:T,basis:k,sampleSize:b.length}};for(let e of Object.keys(t))e in x&&(x[e]=t[e]);return x}l.d(t,{JZ:()=>u,Ju:()=>c,LA:()=>s,Rb:()=>r,X0:()=>o,Z:()=>n,computeTravelStyle:()=>h,cp:()=>i})}}]);
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.