{"version":3,"file":"static/chunks/400.1afafd05d0240097.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_without_holes.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_spread.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","webpack://_N_E/../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_consumable_array.js","webpack://_N_E/../../node_modules/.pnpm/@turf+invariant@7.2.0/node_modules/@turf/invariant/dist/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+helpers@7.2.0/node_modules/@turf/helpers/dist/esm/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+distance@7.2.0/node_modules/@turf/distance/dist/esm/index.js","webpack://_N_E/./utils/calculate-center-to-hotel-distance.ts","webpack://_N_E/./utils/hotel-sort-utils.ts","webpack://_N_E/./utils/hotel-sort-worker.ts"],"sourcesContent":["function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\n}\nexport { _array_without_holes as _ };\n","function _iterable_to_array(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) {\n return Array.from(iter);\n }\n}\nexport { _iterable_to_array as _ };\n","function _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _non_iterable_spread as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _ as _array_without_holes } from \"./_array_without_holes.js\";\nimport { _ as _iterable_to_array } from \"./_iterable_to_array.js\";\nimport { _ as _non_iterable_spread } from \"./_non_iterable_spread.js\";\nimport { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\n}\nexport { _to_consumable_array as _ };\n","// index.ts\nimport { isNumber } from \"@turf/helpers\";\nfunction getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" && coord.geometry !== null && coord.geometry.type === \"Point\") {\n return [...coord.geometry.coordinates];\n }\n if (coord.type === \"Point\") {\n return [...coord.coordinates];\n }\n }\n if (Array.isArray(coord) && coord.length >= 2 && !Array.isArray(coord[0]) && !Array.isArray(coord[1])) {\n return [...coord];\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nfunction getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n } else {\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\n \"coords must be GeoJSON Feature, Geometry Object or an Array\"\n );\n}\nfunction containsNumber(coordinates) {\n if (coordinates.length > 1 && isNumber(coordinates[0]) && isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\nfunction geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + value.type\n );\n }\n}\nfunction featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\n \"Invalid input to \" + name + \", Feature with geometry required\"\n );\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n );\n }\n}\nfunction collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\n \"Invalid input to \" + name + \", FeatureCollection required\"\n );\n }\n for (const feature of featureCollection.features) {\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\n \"Invalid input to \" + name + \", Feature with geometry required\"\n );\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\n \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n );\n }\n }\n}\nfunction getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\nfunction getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\nexport {\n collectionOf,\n containsNumber,\n featureOf,\n geojsonType,\n getCoord,\n getCoords,\n getGeom,\n getType\n};\n//# sourceMappingURL=index.js.map","// index.ts\nvar earthRadius = 63710088e-1;\nvar factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: 360 / (2 * Math.PI),\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1e3,\n kilometres: earthRadius / 1e3,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1e3,\n millimetres: earthRadius * 1e3,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936\n};\nvar areaFactors = {\n acres: 247105e-9,\n centimeters: 1e4,\n centimetres: 1e4,\n feet: 10.763910417,\n hectares: 1e-4,\n inches: 1550.003100006,\n kilometers: 1e-6,\n kilometres: 1e-6,\n meters: 1,\n metres: 1,\n miles: 386e-9,\n nauticalmiles: 29155334959812285e-23,\n millimeters: 1e6,\n millimetres: 1e6,\n yards: 1.195990046\n};\nfunction feature(geom, properties, options = {}) {\n const feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nfunction geometry(type, coordinates, _options = {}) {\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\nfunction point(coordinates, properties, options = {}) {\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n const geom = {\n type: \"Point\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction points(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return point(coords, properties);\n }),\n options\n );\n}\nfunction polygon(coordinates, properties, options = {}) {\n for (const ring of coordinates) {\n if (ring.length < 4) {\n throw new Error(\n \"Each LinearRing of a Polygon must have 4 or more Positions.\"\n );\n }\n if (ring[ring.length - 1].length !== ring[0].length) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n for (let j = 0; j < ring[ring.length - 1].length; j++) {\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n const geom = {\n type: \"Polygon\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction polygons(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return polygon(coords, properties);\n }),\n options\n );\n}\nfunction lineString(coordinates, properties, options = {}) {\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n const geom = {\n type: \"LineString\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction lineStrings(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return lineString(coords, properties);\n }),\n options\n );\n}\nfunction featureCollection(features, options = {}) {\n const fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nfunction multiLineString(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiLineString\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction multiPoint(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPoint\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction multiPolygon(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPolygon\",\n coordinates\n };\n return feature(geom, properties, options);\n}\nfunction geometryCollection(geometries, properties, options = {}) {\n const geom = {\n type: \"GeometryCollection\",\n geometries\n };\n return feature(geom, properties, options);\n}\nfunction round(num, precision = 0) {\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n const multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nfunction radiansToLength(radians, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nfunction lengthToRadians(distance, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nfunction bearingToAzimuth(bearing) {\n let angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nfunction azimuthToBearing(angle) {\n angle = angle % 360;\n if (angle > 180) {\n return angle - 360;\n } else if (angle < -180) {\n return angle + 360;\n }\n return angle;\n}\nfunction radiansToDegrees(radians) {\n const normalisedRadians = radians % (2 * Math.PI);\n return normalisedRadians * 180 / Math.PI;\n}\nfunction degreesToRadians(degrees) {\n const normalisedDegrees = degrees % 360;\n return normalisedDegrees * Math.PI / 180;\n}\nfunction convertLength(length, originalUnit = \"kilometers\", finalUnit = \"kilometers\") {\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nfunction convertArea(area, originalUnit = \"meters\", finalUnit = \"kilometers\") {\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n const startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n const finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return area / startFactor * finalFactor;\n}\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nfunction isObject(input) {\n return input !== null && typeof input === \"object\" && !Array.isArray(input);\n}\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach((num) => {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexport {\n areaFactors,\n azimuthToBearing,\n bearingToAzimuth,\n convertArea,\n convertLength,\n degreesToRadians,\n earthRadius,\n factors,\n feature,\n featureCollection,\n geometry,\n geometryCollection,\n isNumber,\n isObject,\n lengthToDegrees,\n lengthToRadians,\n lineString,\n lineStrings,\n multiLineString,\n multiPoint,\n multiPolygon,\n point,\n points,\n polygon,\n polygons,\n radiansToDegrees,\n radiansToLength,\n round,\n validateBBox,\n validateId\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { getCoord } from \"@turf/invariant\";\nimport { radiansToLength, degreesToRadians } from \"@turf/helpers\";\nfunction distance(from, to, options = {}) {\n var coordinates1 = getCoord(from);\n var coordinates2 = getCoord(to);\n var dLat = degreesToRadians(coordinates2[1] - coordinates1[1]);\n var dLon = degreesToRadians(coordinates2[0] - coordinates1[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) + Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return radiansToLength(\n 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)),\n options.units\n );\n}\nvar turf_distance_default = distance;\nexport {\n turf_distance_default as default,\n distance\n};\n//# sourceMappingURL=index.js.map","import distance from '@turf/distance';\nimport { point } from '@turf/helpers';\n\nconst DISTANCE_UNIT: Readonly<Record<string, 'miles' | 'kilometers'>> = {\n km: 'kilometers',\n mi: 'miles',\n};\n\ninterface Coordinate {\n latitude: number;\n longitude: number;\n}\n\n/**\n * Calculates distance between two coordinate points.\n *\n * @param fromCoordinate\n * @param toCoordinate\n * @param distanceUnit\n * @param decimal\n */\nexport const calculateCenterToHotelDistance = (\n fromCoordinate: Coordinate,\n toCoordinate: Coordinate,\n distanceUnit: keyof typeof DISTANCE_UNIT,\n decimal: number\n) => {\n const dist = distance(\n point([fromCoordinate.longitude, fromCoordinate.latitude]),\n point([toCoordinate.longitude, toCoordinate.latitude]),\n {\n units: DISTANCE_UNIT[distanceUnit],\n }\n );\n\n return Number.isInteger(decimal) && decimal >= 0 ? Number(dist.toFixed(decimal)) : dist;\n};\n","import type { HotelType } from '../providers/app-provider/app-provider.types';\nimport type {\n ShopMultiPropAvailPointsQuery,\n ShopMultiPropAvailQuery,\n HotelCoordinate,\n} from '@dx-ui/queries-dx-shop-search-ui';\nimport type { TFunction } from 'i18next';\nimport { calculateCenterToHotelDistance } from './calculate-center-to-hotel-distance';\nimport type { GoogleCoordinate } from './get-bounds-nodes/get-bounds-nodes';\n\nconst SortDirection = {\n Asc: 1,\n Desc: -1,\n};\n\ntype HotelCenterCoordinate = Pick<HotelCoordinate, 'latitude' | 'longitude'> | undefined;\n\nconst getDistanceFromCenter = (\n centerCoordinate: GoogleCoordinate | null,\n hotelCoordinate: HotelCenterCoordinate | null,\n language?: string\n) => {\n const distanceUnit = language !== 'en' ? 'km' : 'mi';\n const center = { latitude: centerCoordinate?.lat || 0, longitude: centerCoordinate?.lng || 0 };\n const latitude = hotelCoordinate?.latitude || 0;\n const longitude = hotelCoordinate?.longitude || 0;\n const distance =\n (latitude &&\n longitude &&\n calculateCenterToHotelDistance({ latitude, longitude }, center, distanceUnit, 2)) ||\n 0;\n\n return {\n distance,\n };\n};\n\nexport const getDistanceFromCenterFmt = (\n t: TFunction<['hotel-card']>,\n centerCoordinate: GoogleCoordinate | null,\n hotelCoordinate: HotelCenterCoordinate | null,\n language?: string\n) => {\n const distanceUnit = language !== 'en' ? 'km' : 'mi';\n const { distance } = getDistanceFromCenter(centerCoordinate, hotelCoordinate, language);\n const distanceFmt = `${new Intl.NumberFormat(language, {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n }).format(distance)} ${distanceUnit === 'mi' ? t('miles') : t('kilometers')}`;\n\n return {\n distanceFmt,\n distance,\n };\n};\n\nconst getDistance = (\n centerCoordinate: GoogleCoordinate | null,\n hotelCoordinate?: HotelCenterCoordinate | null\n) => {\n const { distance } = getDistanceFromCenter(centerCoordinate, hotelCoordinate);\n return distance;\n};\nconst distanceSortFn = (a: HotelType, b: HotelType, centerCoordinate: GoogleCoordinate | null) => {\n const aDistance = getDistance(centerCoordinate, a.localization?.coordinate);\n const bDistance = getDistance(centerCoordinate, b.localization?.coordinate);\n const distanceSortResult = aDistance - bDistance;\n\n // If distances are different, then we're done sorting\n if (distanceSortResult !== 0) return distanceSortResult;\n\n // If distances are the same, then sort by name\n const aName = a.name || '';\n const bName = b.name || '';\n return aName.localeCompare(bName);\n};\n\nconst ratingSortFn = (\n a: HotelType,\n b: HotelType,\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null\n) => {\n const aRating =\n a.tripAdvisorLocationSummary?.rating ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n const bRating =\n b.tripAdvisorLocationSummary?.rating ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n\n const ratingSortResult = (aRating - bRating) * direction;\n\n // If prices are different, then we're done sorting\n if (ratingSortResult !== 0) return ratingSortResult;\n\n // When prices are the same, then sort by distance\n return distanceSortFn(a, b, centerCoordinate);\n};\n\nconst priceSortFn = (\n a: HotelType,\n b: HotelType,\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null,\n mpaPricing?: Record<string, ShopMultiPropAvailQuery['shopMultiPropAvail'][0]>,\n showAmountAfterTax?: boolean\n) => {\n let aPrice;\n let bPrice;\n // if we are using shopMultiPropAvail data then use different field for price sort\n if (mpaPricing) {\n const aRateAmount = showAmountAfterTax\n ? mpaPricing[a.ctyhocn]?.summary?.lowest?.amountAfterTax\n : mpaPricing[a.ctyhocn]?.summary?.lowest?.rateAmount;\n const bRateAmount = showAmountAfterTax\n ? mpaPricing[b.ctyhocn]?.summary?.lowest?.amountAfterTax\n : mpaPricing[b.ctyhocn]?.summary?.lowest?.rateAmount;\n aPrice = aRateAmount ?? (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n bPrice = bRateAmount ?? (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n }\n // else use lead rates from hotel object\n else {\n aPrice =\n a.leadRate?.lowest?.rateAmount ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n bPrice =\n b.leadRate?.lowest?.rateAmount ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n }\n\n const priceSortResult = (aPrice - bPrice) * direction;\n\n // If prices are different, then we're done sorting\n if (priceSortResult !== 0) return priceSortResult;\n\n // When prices are the same, then sort by distance\n return distanceSortFn(a, b, centerCoordinate);\n};\n\nconst pointsSortFn = (\n a: HotelType,\n b: HotelType,\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null,\n mpaPricing?: Record<string, ShopMultiPropAvailPointsQuery['shopMultiPropAvail'][0]>\n) => {\n let aPoints;\n let bPoints;\n if (mpaPricing) {\n aPoints =\n mpaPricing?.[a.ctyhocn]?.summary?.hhonors?.dailyRmPointsRate ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n bPoints =\n mpaPricing?.[b.ctyhocn]?.summary?.hhonors?.dailyRmPointsRate ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n }\n // else use lead rates from hotel object\n else {\n aPoints =\n a.leadRate?.hhonors?.lead?.dailyRmPointsRate ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n bPoints =\n b.leadRate?.hhonors?.lead?.dailyRmPointsRate ??\n (direction === SortDirection.Desc ? -1 : Number.MAX_SAFE_INTEGER);\n }\n\n const pointsSortResult = (aPoints - bPoints) * direction;\n\n // If points are different, then we're done sorting\n if (pointsSortResult !== 0) return pointsSortResult;\n\n // otherwise fallback to distance sort\n return distanceSortFn(a, b, centerCoordinate);\n};\n\nconst sortByBrand = (\n brandCode: string | undefined,\n hotels: HotelType[],\n centerCoordinate: GoogleCoordinate | null\n) => {\n const hotelsSortedByDistance = sortByDistance(hotels, centerCoordinate);\n const brandedCtyhocns = hotelsSortedByDistance.filter((hotel) => hotel.brandCode === brandCode);\n const otherCtyhocns = hotelsSortedByDistance.filter((hotel) => hotel.brandCode !== brandCode);\n\n // merge results\n return [...brandedCtyhocns, ...otherCtyhocns];\n};\n\nconst sortByDistance = (hotels: HotelType[], centerCoordinate: GoogleCoordinate | null) =>\n hotels.sort((a, b) => distanceSortFn(a, b, centerCoordinate));\n\nconst sortByPoints = (\n hotels: HotelType[],\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null,\n mpaPricing?: Record<string, ShopMultiPropAvailQuery['shopMultiPropAvail'][0]>\n) => hotels.sort((a, b) => pointsSortFn(a, b, direction, centerCoordinate, mpaPricing));\n\nconst sortByPrice = (\n hotels: HotelType[],\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null,\n mpaPricing?: Record<string, ShopMultiPropAvailQuery['shopMultiPropAvail'][0]>,\n showAmountAfterTax?: boolean\n) =>\n hotels.sort((a, b) =>\n priceSortFn(a, b, direction, centerCoordinate, mpaPricing, showAmountAfterTax)\n );\n\nconst sortByRating = (\n hotels: HotelType[],\n direction: ValuesOf<typeof SortDirection>,\n centerCoordinate: GoogleCoordinate | null\n) => hotels.sort((a, b) => ratingSortFn(a, b, direction, centerCoordinate));\n\nexport const sortHotels = (\n sortType: string | null,\n brandCode: string | undefined,\n hotels: HotelType[],\n centerCoordinate: GoogleCoordinate | null,\n mpaPricing?: Record<string, ShopMultiPropAvailQuery['shopMultiPropAvail'][0]>,\n showAmountAfterTax?: boolean\n) => {\n if (!hotels?.length) return [];\n switch (sortType) {\n case 'BRAND':\n return sortByBrand(brandCode, hotels, centerCoordinate);\n case 'DISTANCE':\n return sortByDistance(hotels, centerCoordinate);\n case 'POINTS_ASCENDING':\n return sortByPoints(hotels, SortDirection.Asc, centerCoordinate, mpaPricing);\n case 'POINTS_DESCENDING':\n return sortByPoints(hotels, SortDirection.Desc, centerCoordinate, mpaPricing);\n case 'PRICE_ASCENDING':\n return sortByPrice(\n hotels,\n SortDirection.Asc,\n centerCoordinate,\n mpaPricing,\n showAmountAfterTax\n );\n case 'PRICE_DESCENDING':\n return sortByPrice(\n hotels,\n SortDirection.Desc,\n centerCoordinate,\n mpaPricing,\n showAmountAfterTax\n );\n case 'RATINGS_ASCENDING':\n return sortByRating(hotels, SortDirection.Asc, centerCoordinate);\n case 'RATINGS_DESCENDING':\n return sortByRating(hotels, SortDirection.Desc, centerCoordinate);\n default:\n return hotels;\n }\n};\n","/* eslint-disable no-restricted-globals */\n\nimport { sortHotels } from './hotel-sort-utils';\n\nself.addEventListener('message', (event) => {\n const { sortType, brandCode, hotels, centerCoordinate, mpaPricing, showAmountAfterTax } =\n event.data;\n\n const result = sortHotels(\n sortType,\n brandCode,\n hotels,\n centerCoordinate,\n mpaPricing,\n showAmountAfterTax\n );\n\n self.postMessage(result);\n});\n"],"names":["DISTANCE_UNIT","km","mi","calculateCenterToHotelDistance","fromCoordinate","toCoordinate","distanceUnit","decimal","dist","distance","point","latitude","units","Number","isInteger","toFixed","Asc","Desc","getDistanceFromCenter","centerCoordinate","hotelCoordinate","language","center","lat","longitude","lng","getDistance","distanceSortFn","a","b","distanceSortResult","aDistance","bDistance","localization","coordinate","aName","name","bName","localeCompare","ratingSortFn","direction","ratingSortResult","bRating","tripAdvisorLocationSummary","rating","SortDirection","MAX_SAFE_INTEGER","priceSortFn","mpaPricing","showAmountAfterTax","aPrice","bPrice","aRateAmount","ctyhocn","summary","lowest","amountAfterTax","rateAmount","bRateAmount","leadRate","priceSortResult","pointsSortFn","aPoints","hhonors","dailyRmPointsRate","bPoints","lead","pointsSortResult","sortByBrand","brandCode","hotels","hotelsSortedByDistance","sortByDistance","brandedCtyhocns","filter","hotel","otherCtyhocns","sort","sortByPoints","sortByPrice","sortByRating","sortHotels","sortType","length","addEventListener","event","data","result","self","postMessage"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5,6,7,8]}