{"version":3,"sources":["webpack:///./node_modules/lodash/_baseSortBy.js","webpack:///./src/app/search-results/filter-store/reducer.ts","webpack:///./src/app/search-results/filter-store/context.tsx","webpack:///./src/useMediaQuery.ts","webpack:///./src/app/search-results/price-filter.tsx","webpack:///./src/app/search-results/rating-filter.tsx","webpack:///./src/app/search-results/toggle-filter.tsx","webpack:///./src/app/search-results/product-type-filter.tsx","webpack:///./src/app/search-results/filter-list.tsx","webpack:///./src/app/search-results/result.tsx","webpack:///./src/app/search-results/sorter.tsx","webpack:///./src/app/search-results/results.tsx","webpack:///./src/app/search-results/faceted-search.tsx","webpack:///./src/app/search-results/utils/filter-util.ts","webpack:///./src/app/search-results/index.tsx","webpack:///./src/templates/search-page-template.tsx","webpack:///./node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./src/components/contact-bubble/contact-navigation.tsx","webpack:///./src/components/contact-bubble/index.tsx","webpack:///./node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/lodash/orderBy.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_compareAscending.js"],"names":["module","exports","array","comparer","length","sort","value","setSortOrder","sortOrder","type","toggleTheme","themeId","selected","setPendingFilter","pendingFilter","initialFilterState","productTypes","ratings","themes","usps","regimeCodes","minPrice","undefined","maxPrice","filterReducer","state","action","runReducer","toggleThemeAction","concat","_toConsumableArray","themeIndex","indexOf","slice","toggleUspAction","uspId","uspIndex","Store","React","createContext","displayName","useFilterStore","useContext","FilterStoreProvider","_ref","children","initialState","reducer","dispatch","useReducer","location","useLocation","useEffect","URLSearchParams","search","get","createElement","Provider","useMediaQuery","mediaQuery","onChange","window","isVerified","setIsVerified","useState","matchMedia","matches","mediaQueryList","documentChangeHandler","addEventListener","removeEventListener","PriceRangeFilter","onMinPriceChange","onMaxPriceChange","t","useI18next","className","placeholder","e","_parseInt","parseInt","target","_parseInt2","RatingFilter","props","_props$value","setValue","_props$value2","Fragment","map","i","buildClassName","includes","onClick","rating","newValue","filter","n","toggleRating","key","Icon","name","ToggleFilter","text","amount","checked","onToggle","id","ProductTypeFilter","some","x","FilterList","useTranslation","active","setActive","selectedRegimes","setSelectedRegimes","selectedMinPrice","setSelectedMinPrice","selectedMaxPrice","setSelectedMaxPrice","mediaLG","document","body","classList","remove","_isEqual","preventDefault","newState","toggle","title","setProductTypes","setRatings","regimeData","regimes","regime","code","translationKey","ns","handleOnToggleRegime","otherCodes","theme","_theme$content$genera","_theme$content","_theme$content$genera2","content","general","usp","_usp$content$general$","_usp$content","_usp$content$general","Result","_searchResult$title","_searchResult$image$u","_searchResult$image","searchResult","ProductCard","cardType","imageSrc","image","url","description","subtitle","price","defaultPrice","linkText","productType","linkUrl","hasFlight","hasTransfer","isNotAvailable","onRequest","isSearchResult","minStay","locationNames","countryName","Sorter","order","currentTarget","Results","searchResults","hasDestination","itemsOnRequest","itemsAvailable","itemsNotAvailable","_isEmpty","numberOfResults","FacetedSearch","_qsmState$dateRange4","_qsmState$dateRange4$","_qsmState$dateRange5","_qsmState$dateRange5$","_qsmState$rooms","hotels","roundtrips","searchPagePath","qsmState","qsmDispatch","useQSMStore","filterState","filterDispatch","isLoading","setIsLoading","setSearchResults","shouldReload","setShouldReload","language","async","loaded","_qsmState$dateRange$f","_qsmState$dateRange","_qsmState$flexibleRan","_qsmState$flexibleRan2","_qsmState$dateRange$f2","_qsmState$dateRange2","_qsmState$dateRange$t","_qsmState$dateRange3","_qsmState$flexibleRan3","token","localStorage","getItem","maxEarliestFromOffset","differenceInDays","dateRange","fromDate","Date","addDays","earliestFromOffset","flexibleRange","_searchResults","searchProducts","country","countryId","region","regionId","searchGlobal","from","formatISO","representation","to","toDate","latestToOffset","rooms","fetchData","valueOf","JSON","stringify","sortProps","filteredSearchResults","result","every","uspIds","themeIds","columns","getOrder","_orderBy","QSM","reload","onDestinationChange","locationType","setCountryId","setRegionId","Loader","SearchResults","QSMStoreProvider","initialQSMState","qsmReducer","SearchPageTemplate","_data$page","_data$page$content","_data$notifications","_data$page$content$se","_data$page$content2","_data$page$content2$s","_data$page$content$se2","_data$page$content3","_data$page$content3$s","_data$page$content$se3","_data$page$content4","_data$page$content4$s","_notificationBar$cont","_notificationBar$cont2","_notificationBar$cont3","_notificationBar$cont4","_notificationBar$cont5","_notificationBar$cont6","_notificationBar$cont7","_notificationBar$cont8","_notificationBar$cont9","_notificationBar$cont10","_notificationBar$cont11","_data$website$content","_data$website","_data$website$content2","_data$website$content3","_generalPageContent$t","_generalPageContent$t2","_generalPageContent$h","_generalPageContent$h2","_data$page$content$ge","_data$page$content5","_data$page$content5$g","_data$website$content4","_data$website2","_data$website2$conten","_data$website2$conten2","_data$website$content5","_data$website3","_data$website3$conten","_data$website3$conten2","_data$website$content6","_data$website4","_data$website4$conten","_data$website4$conten2","data","pageContext","generalPageContent","page","_compact","titlePrefix","join","notificationBar","_first","notifications","nodes","Layout","Seo","seoTitle","seo","seoDescription","seoKeywords","notification","NotificationBar","icon","iconFontAwesome","backgroundColor","Navbar","alternateRoutes","mainNavigationSection","fullscreenPrimaryNavigationSection","fullscreenSecondaryNavigationSection","socialNavigationSection","legalNavigationSection","phone","website","contact","destinations","navigationDestinations","StickyBar","navigationLinks","getChildNavigationLinks","stickyNavigationSection","Hero","headerImage","slug","_uniqBy","flatMap","node","_node$content","_node$content$general","_node$content2","_node$content2$genera","PageComponents","componentItems","childItems","Footer","footerNavigationSection","address","email","uspGroup","footerUspGroup","newsletterForm","ContactBubble","contactNavigationSection","compareAscending","object","other","orders","index","objCriteria","criteria","othCriteria","ordersLength","baseIsEqual","ContactNavigation","navigationLink","_navigationLink$conte","_generalContent$url","_generalContent$title","_generalContent$icon","generalContent","Link","href","_props$active","event","Trans","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","isArray","collection","iteratees","iteratee","baseOrderBy","guard","baseEach","isArrayLike","Array","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol"],"mappings":"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","file":"component---src-templates-search-page-template-tsx-863a8256e642d1789207.js","sourcesContent":["/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","import { setProduct } from \"../qsm-store/reducer\";\n\nexport type SortOrder = \"departureAsc\" | \"priceAsc\" | \"priceDesc\";\n\nexport interface FilterState {\n sortOrder?: SortOrder;\n productTypes: number[];\n ratings: number[];\n themes: string[];\n usps: string[];\n minPrice?: number;\n maxPrice?: number;\n regimeCodes?: string[];\n pendingFilter?: boolean;\n}\n\nconst actionPrefix = \"APP/FILTERS\";\n\nexport const SET_SORT_ORDER = `${actionPrefix}/SET_SORT_ORDER`;\nexport const setSortOrder = (sortOrder?: SortOrder) => ({\n type: SET_SORT_ORDER,\n sortOrder,\n});\n\nexport const SET_PRODUCT_TYPES = `${actionPrefix}/SET_PRODUCT_TYPES`;\nexport const setProductTypes = (productTypes: number[]) => ({\n type: SET_PRODUCT_TYPES,\n productTypes,\n});\n\nexport const SET_RATINGS = `${actionPrefix}/SET_RATINGS`;\nexport const setRatings = (ratings: number[]) => ({\n type: SET_RATINGS,\n ratings,\n});\n\nexport const TOGGLE_THEME = `${actionPrefix}/TOGGLE_THEME`;\nexport const toggleTheme = (themeId: string, selected: boolean) => ({\n type: TOGGLE_THEME,\n themeId,\n selected,\n});\n\nexport const TOGGLE_USP = `${actionPrefix}/TOGGLE_USP`;\nexport const toggleUsp = (uspId: string, selected: boolean) => ({\n type: TOGGLE_USP,\n uspId,\n selected,\n});\n\nexport const SET_MIN_PRICE = `${actionPrefix}/SET_MIN_PRICE`;\nexport const setMinPrice = (minPrice?: number) => ({\n type: SET_MIN_PRICE,\n minPrice,\n});\n\nexport const SET_MAX_PRICE = `${actionPrefix}/SET_MAX_PRICE`;\nexport const setMaxPrice = (maxPrice?: number) => ({\n type: SET_MAX_PRICE,\n maxPrice,\n});\n\nexport const SET_REGIME_CODES = `${actionPrefix}/SET_REGIME_CODES`;\nexport const setRegimeCodes = (regimeCodes: string[]) => ({\n type: SET_REGIME_CODES,\n regimeCodes,\n});\n\nexport const SET_PENDING_FILTER = `${actionPrefix}/SET_PENDING_FILTER`;\nexport const setPendingFilter = (pendingFilter: boolean) => ({\n type: SET_PENDING_FILTER,\n pendingFilter,\n});\n\nexport const CLEAR_ALL = `${actionPrefix}/CLEAR_ALL`;\nexport const clearAll = () => ({\n type: CLEAR_ALL,\n});\n\nexport type Action =\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType\n | ReturnType;\n\nexport const initialFilterState: FilterState = {\n sortOrder: \"priceAsc\",\n productTypes: [1, 3],\n ratings: [],\n themes: [],\n usps: [],\n regimeCodes: [],\n minPrice: undefined,\n maxPrice: undefined,\n pendingFilter: false,\n};\n\nconst runReducer = (state: FilterState, action: Action): FilterState => {\n switch (action.type) {\n case SET_SORT_ORDER:\n return { ...state, sortOrder: (action as ReturnType).sortOrder };\n case SET_PRODUCT_TYPES:\n return {\n ...state,\n productTypes: (action as ReturnType).productTypes,\n };\n case SET_RATINGS:\n return { ...state, ratings: (action as ReturnType).ratings };\n case TOGGLE_THEME:\n const toggleThemeAction = action as ReturnType;\n if (toggleThemeAction.selected) {\n return {\n ...state,\n themes: [...state.themes, toggleThemeAction.themeId].sort(),\n };\n } else {\n const themeIndex = state.themes.indexOf(toggleThemeAction.themeId);\n return {\n ...state,\n themes: [...state.themes.slice(0, themeIndex), ...state.themes.slice(themeIndex + 1)],\n };\n }\n case TOGGLE_USP:\n const toggleUspAction = action as ReturnType;\n if (toggleUspAction.selected) {\n return {\n ...state,\n usps: [...state.usps, toggleUspAction.uspId].sort(),\n };\n } else {\n const uspIndex = state.usps.indexOf(toggleUspAction.uspId);\n return {\n ...state,\n usps: [...state.usps.slice(0, uspIndex), ...state.usps.slice(uspIndex + 1)],\n };\n }\n case SET_MIN_PRICE:\n return { ...state, minPrice: (action as ReturnType).minPrice };\n case SET_MAX_PRICE:\n return { ...state, maxPrice: (action as ReturnType).maxPrice };\n case SET_REGIME_CODES:\n return { ...state, regimeCodes: (action as ReturnType).regimeCodes };\n case SET_PENDING_FILTER:\n return {\n ...state,\n pendingFilter: (action as ReturnType).pendingFilter,\n };\n case CLEAR_ALL:\n return {\n ...state,\n ratings: [],\n themes: [],\n usps: [],\n regimeCodes: [],\n minPrice: undefined,\n maxPrice: undefined,\n };\n default:\n return state;\n }\n};\n\nexport const filterReducer = (\n state: FilterState = initialFilterState,\n action: Action\n): FilterState => {\n const newState = runReducer(state, action);\n\n /*\n console.groupCollapsed(action.type);\n console.info(\"action:\", action);\n console.info(\"new state:\", newState);\n console.info(\"old state:\", state);\n console.groupEnd();\n */\n\n return newState;\n};\n","import React, { useEffect, useContext, useReducer } from \"react\";\nimport { useLocation } from \"@reach/router\";\nimport { Action, FilterState, toggleTheme } from \"./reducer\";\n\ninterface ProviderProps {\n initialState: FilterState;\n reducer: (state: FilterState, action: Action) => FilterState;\n}\n\nconst Store = React.createContext]>>([]);\nStore.displayName = \"SearchStore\";\n\nexport const useFilterStore = () => useContext(Store)!;\n\nexport const FilterStoreProvider: React.FC = ({\n children,\n initialState,\n reducer,\n}) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const location = useLocation();\n\n useEffect(() => {\n const params = new URLSearchParams(location.search);\n const themeId = params.get(\"theme\");\n\n if (themeId) {\n dispatch(toggleTheme(themeId, true));\n }\n }, [location]);\n\n return {children};\n};\n","import { useEffect, useState } from \"react\";\n\nconst useMediaQuery = (mediaQuery: string, onChange?: (matches: boolean) => void) => {\n if (typeof window !== \"undefined\" && \"matchMedia\" in window) {\n const [isVerified, setIsVerified] = useState(!!window.matchMedia(mediaQuery).matches);\n\n useEffect(() => {\n const mediaQueryList = window.matchMedia(mediaQuery);\n const documentChangeHandler = () => {\n setIsVerified(!!mediaQueryList.matches);\n\n if (onChange) {\n onChange(!!mediaQueryList.matches);\n }\n };\n\n mediaQueryList.addEventListener(\"change\", documentChangeHandler);\n\n documentChangeHandler();\n return () => {\n mediaQueryList.removeEventListener(\"change\", documentChangeHandler);\n };\n }, [mediaQuery, onChange]);\n\n return isVerified;\n }\n};\n\nexport default useMediaQuery;\n","import { useI18next } from \"gatsby-plugin-react-i18next\";\nimport React from \"react\";\n\ninterface PriceRangeFilterProps {\n minPrice?: number;\n maxPrice?: number;\n onMinPriceChange?: (minPrice?: number) => void;\n onMaxPriceChange?: (minPrice?: number) => void;\n}\n\nconst PriceRangeFilter: React.FC = ({\n minPrice,\n maxPrice,\n onMinPriceChange,\n onMaxPriceChange,\n}) => {\n const { t } = useI18next();\n const handleMinPriceChange: React.ChangeEventHandler = (e) => {\n if (onMinPriceChange) {\n onMinPriceChange(parseInt(e.target.value) ?? undefined);\n }\n };\n\n const handleMaxPriceChange: React.ChangeEventHandler = (e) => {\n if (onMaxPriceChange) {\n onMaxPriceChange(parseInt(e.target.value) ?? undefined);\n }\n };\n\n return (\n
\n
\n
\n \n
\n
{t(\"TILL\")}
\n
\n \n
\n
\n );\n};\n\nexport default PriceRangeFilter;\n","import React, { useState, useEffect } from \"react\";\nimport Icon from \"../../components/icon\";\nimport { buildClassName } from \"../../utils\";\n\ninterface RatingFilterProps {\n value?: number[];\n onChange?: (ratings: number[]) => void;\n}\n\nconst RatingFilter: React.FC = (props) => {\n const [value, setValue] = useState(props.value ?? []);\n\n const toggleRating = (rating: number) => {\n const newValue = value.includes(rating)\n ? value.filter((n) => n !== rating)\n : [...value, rating].sort();\n\n setValue(newValue);\n\n if (props.onChange) {\n props.onChange(newValue);\n }\n };\n\n useEffect(() => {\n setValue(props.value ?? []);\n }, [props.value]);\n\n return (\n <>\n
\n {[5, 4, 3, 2, 1].map((i) => (\n toggleRating(i)}\n key={i}\n >\n \n {i}\n \n ))}\n
\n \n );\n};\n\nexport default RatingFilter;\n","import React from \"react\";\n\ninterface ToggleFilterProps {\n text: string;\n amount?: number;\n checked?: boolean;\n onToggle?: (checked: boolean) => void;\n}\n\nconst ToggleFilter: React.FC = ({ text, amount, checked, onToggle }) => {\n const handleToggle: React.ChangeEventHandler = (e) => {\n if (onToggle) {\n onToggle(e.target.checked);\n }\n };\n\n return (\n \n );\n};\n\nexport default ToggleFilter;\n","import { useI18next } from \"gatsby-plugin-react-i18next\";\nimport React from \"react\";\n\ninterface ProductTypeFilterProps {\n value?: number[];\n onChange?: (productTypes: number[]) => void;\n}\n\nconst ProductTypeFilter: React.FC = ({ value, onChange }) => {\n const { t } = useI18next();\n const handleHotelToggle: React.ChangeEventHandler = (e) => {\n if (onChange) {\n if (value?.some((x) => x === 3)) {\n onChange(value.filter((x) => x !== 3));\n } else {\n onChange([...(value || []), 3]);\n }\n }\n };\n\n const handleRoundtripToggle: React.ChangeEventHandler = (e) => {\n if (onChange) {\n if (value?.some((x) => x === 1)) {\n onChange(value.filter((x) => x !== 1));\n } else {\n onChange([...(value || []), 1]);\n }\n }\n };\n\n return (\n <>\n \n \n \n );\n};\n\nexport default ProductTypeFilter;\n","import React, { useEffect, useState } from \"react\";\nimport { TideItemForTheme, TideItemForUsp } from \"../../types\";\nimport useMediaQuery from \"../../useMediaQuery\";\nimport { buildClassName } from \"../../utils\";\nimport PriceRangeFilter from \"./price-filter\";\nimport RatingFilter from \"./rating-filter\";\nimport { useFilterStore } from \"./filter-store/context\";\nimport {\n clearAll,\n setMaxPrice,\n setMinPrice,\n setPendingFilter,\n setProductTypes,\n setRatings,\n setRegimeCodes,\n toggleTheme,\n toggleUsp,\n} from \"./filter-store/reducer\";\nimport ToggleFilter from \"./toggle-filter\";\nimport ProductTypeFilter from \"./product-type-filter\";\nimport regimeData from \"../../../static/regimes.json\";\nimport { isEqual } from \"lodash\";\nimport { useTranslation } from \"gatsby-plugin-react-i18next\";\n\ninterface FilterListProps {\n themes: TideItemForTheme[];\n usps: TideItemForUsp[];\n}\n\ninterface Regime {\n code: string;\n otherCodes: string[];\n translationKey: string;\n}\n\nconst FilterList: React.FC = (props) => {\n const { t } = useTranslation();\n const [state, dispatch] = useFilterStore();\n const [active, setActive] = useState(false);\n const [selectedRegimes, setSelectedRegimes] = useState([]);\n const [selectedMinPrice, setSelectedMinPrice] = useState();\n const [selectedMaxPrice, setSelectedMaxPrice] = useState();\n\n const mediaLG = useMediaQuery(\"(min-width: 1200px)\", (matches) => {\n if (matches) {\n setActive(false);\n\n if (typeof document !== \"undefined\") {\n document.body.classList.remove(\"has-overlay\");\n }\n }\n });\n\n const handleHeaderClick: React.MouseEventHandler = (e) => {\n e.preventDefault();\n\n if (!mediaLG) {\n const newState = !active;\n setActive(newState);\n\n if (typeof document !== \"undefined\") {\n document.body.classList.toggle(\"has-overlay\", newState);\n }\n }\n };\n\n const handleResetClick: React.MouseEventHandler = (e) => {\n e.preventDefault();\n\n if (dispatch) {\n dispatch(clearAll());\n }\n };\n\n const handleOnToggleRegime = (regime: Regime, checked: boolean) => {\n const regimeCodes = regime.otherCodes.concat(regime.code);\n if (checked) {\n setSelectedRegimes(selectedRegimes.concat(regimeCodes));\n } else {\n setSelectedRegimes(selectedRegimes.filter((x) => !regimeCodes.includes(x)));\n }\n };\n\n useEffect(() => {\n if (\n !isEqual(selectedMaxPrice, state?.maxPrice) ||\n !isEqual(selectedMinPrice, state?.minPrice) ||\n !isEqual(selectedRegimes, state?.regimeCodes)\n ) {\n if (dispatch) dispatch(setPendingFilter(true));\n } else {\n if (dispatch) dispatch(setPendingFilter(false));\n }\n }, [selectedMinPrice, selectedMaxPrice, selectedRegimes]);\n\n return (\n \n
\n

{t(\"PREFERENCES\")}

\n \n
\n\n
\n
{t(\"HOLIDAY_TYPE\")}
\n dispatch && dispatch(setProductTypes(productTypes))}\n />\n
\n\n
\n
{t(\"RATING\")}
\n dispatch && dispatch(setRatings(ratings))}\n />\n
\n\n
\n
{t(\"BUDGET\")}
\n setSelectedMinPrice(minPrice)}\n onMaxPriceChange={(maxPrice) => setSelectedMaxPrice(maxPrice)}\n />\n {(!isEqual(state?.minPrice, selectedMinPrice) ||\n !isEqual(state?.maxPrice, selectedMaxPrice)) && (\n {\n dispatch && dispatch(setMinPrice(selectedMinPrice));\n dispatch && dispatch(setMaxPrice(selectedMaxPrice));\n }}\n >\n {t(\"APPLY\")}\n \n )}\n
\n\n {regimeData.regimes && (\n
\n
{t(\"REGIMES\")}
\n {regimeData.regimes.map((regime) => (\n handleOnToggleRegime(regime, checked)}\n />\n ))}\n {!isEqual(state?.regimeCodes, selectedRegimes) && (\n dispatch && dispatch(setRegimeCodes(selectedRegimes))}\n >\n {t(\"APPLY\")}\n \n )}\n
\n )}\n\n
\n
{t(\"THEMES\")}
\n {props.themes.map((theme) => (\n dispatch && dispatch(toggleTheme(theme.id, checked))}\n />\n ))}\n
\n\n
\n
{t(\"UPS\")}
\n {props.usps.map((usp) => (\n dispatch && dispatch(toggleUsp(usp.id, checked))}\n />\n ))}\n
\n\n
\n setActive(false)}\n >\n {t(\"APPLY_PREFERENCES\")}\n \n
\n \n );\n};\n\nexport default FilterList;\n","import ProductCard from \"../../components/product-card\";\nimport React from \"react\";\nimport { SearchResult } from \"./utils/search-util\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface ResultProps {\n searchResult: SearchResult;\n}\n\nconst Result: React.FC = ({ searchResult }) => {\n const { t } = useI18next();\n\n return (\n \n );\n};\n\nexport default Result;\n","import React from \"react\";\nimport { SortOrder } from \"./filter-store/reducer\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface SorterProps {\n order?: SortOrder;\n onChange?: (order: SortOrder) => void;\n}\n\nconst Sorter: React.FC = ({ order, onChange }) => {\n const { t } = useI18next();\n const handleChange: React.FormEventHandler = (e) => {\n if (onChange) {\n onChange(e.currentTarget.value as SortOrder);\n }\n };\n\n return (\n
\n \n
\n );\n};\n\nexport default Sorter;\n","import React from \"react\";\nimport Result from \"./result\";\nimport { SearchResult } from \"./utils/search-util\";\nimport Sorter from \"./sorter\";\nimport { setSortOrder } from \"./filter-store/reducer\";\nimport { useFilterStore } from \"./filter-store/context\";\nimport { isEmpty } from \"lodash\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface ResultsProps {\n searchResults?: SearchResult[];\n hasDestination?: boolean;\n}\n\nconst Results: React.FC = ({ searchResults, hasDestination }) => {\n const [state, dispatch] = useFilterStore();\n const { t } = useI18next();\n\n const itemsOnRequest = searchResults?.filter((x) => !x.isNotAvailable && x.onRequest);\n const itemsAvailable = searchResults?.filter((x) => !x.isNotAvailable && !x.onRequest);\n const itemsNotAvailable = searchResults?.filter((x) => x.isNotAvailable);\n\n return (\n <>\n {!isEmpty(itemsAvailable) && (\n
\n
\n
\n

\n {itemsAvailable && itemsAvailable.length == 1\n ? t(\"RESULT_COUNT\")\n : t(\"RESULTS_COUNT\", {\n numberOfResults: itemsAvailable && itemsAvailable.length,\n })}\n

\n\n dispatch && dispatch(setSortOrder(order))}\n />\n
\n\n
\n {itemsAvailable &&\n itemsAvailable.map((searchResult) => (\n \n ))}\n
\n
\n
\n )}\n {!isEmpty(itemsOnRequest) && (\n
\n
\n
\n

\n {itemsOnRequest && itemsOnRequest.length == 1\n ? t(\"RESULT_ONREQUEST_COUNT\")\n : t(\"RESULTS_ONREQUEST_COUNT\", {\n numberOfResults: itemsOnRequest && itemsOnRequest.length,\n })}\n

\n\n dispatch && dispatch(setSortOrder(order))}\n />\n
\n\n
\n {itemsOnRequest &&\n itemsOnRequest.map((searchResult) => (\n \n ))}\n
\n
\n
\n )}\n {!isEmpty(itemsNotAvailable) && hasDestination && (\n
\n
\n
\n

\n {itemsNotAvailable && itemsNotAvailable.length == 1\n ? t(\"RESULT_NOT_AVAILABLE_COUNT\")\n : t(\"RESULTS_NOT_AVAILABLE_COUNT\", {\n numberOfResults: itemsNotAvailable && itemsNotAvailable.length,\n })}\n

\n\n dispatch && dispatch(setSortOrder(order))}\n />\n
\n\n
\n {itemsNotAvailable &&\n itemsNotAvailable.map((searchResult) => (\n \n ))}\n
\n
\n
\n )}\n {!isEmpty(itemsNotAvailable) && !hasDestination && (\n
\n
\n
\n

\n {itemsNotAvailable && itemsNotAvailable.length == 1\n ? t(\"RESULT_COUNT\")\n : t(\"RESULTS_COUNT\", {\n numberOfResults: itemsNotAvailable && itemsNotAvailable.length,\n })}\n

\n\n dispatch && dispatch(setSortOrder(order))}\n />\n
\n\n
\n {itemsNotAvailable &&\n itemsNotAvailable.map((searchResult) => (\n \n ))}\n
\n
\n
\n )}\n {isEmpty(searchResults) && (\n
\n
\n
\n

{t(\"NO_RESULTS\")}

\n
\n
\n
\n )}\n \n );\n};\n\nexport default Results;\n","import React, { useState, useEffect } from \"react\";\nimport {\n TideItemForHotel,\n TideItemForRoundtrip,\n TideItemForTheme,\n TideItemForUsp,\n} from \"../../types\";\nimport FilterList from \"./filter-list\";\nimport QSM from \"./qsm\";\nimport { sortProps } from \"./qsm/utils\";\nimport Results from \"./results\";\nimport Loader from \"../../components/loader\";\nimport { useQSMStore } from \"./qsm-store/context\";\nimport { useFilterStore } from \"./filter-store/context\";\nimport { setCountryId, setRegionId } from \"./qsm-store/reducer\";\nimport { filter } from \"./utils/filter-util\";\nimport { searchProducts, SearchResult } from \"./utils/search-util\";\nimport { setPendingFilter } from \"./filter-store/reducer\";\nimport { useI18next } from \"gatsby-plugin-react-i18next\";\nimport { addDays, differenceInDays, formatISO } from \"date-fns\";\n\ninterface FacetedSearchProps {\n hotels: TideItemForHotel[];\n roundtrips: TideItemForRoundtrip[];\n themes: TideItemForTheme[];\n usps: TideItemForUsp[];\n searchPagePath?: string;\n}\n\nconst FacetedSearch: React.FC = ({\n hotels,\n roundtrips,\n themes,\n usps,\n searchPagePath,\n}) => {\n const [qsmState, qsmDispatch] = useQSMStore();\n const [filterState, filterDispatch] = useFilterStore();\n const [isLoading, setIsLoading] = useState(false);\n const [searchResults, setSearchResults] = useState(undefined);\n const [shouldReload, setShouldReload] = useState(false);\n const { t, language } = useI18next();\n const fetchData = async () => {\n if (qsmState?.loaded && (!searchResults || filterState?.pendingFilter)) {\n setIsLoading(true);\n let token: string | null = null;\n if (typeof localStorage !== \"undefined\") {\n token = localStorage.getItem(\"token\");\n }\n\n // We never want get results for less than 3 days from now.\n const maxEarliestFromOffset = differenceInDays(\n qsmState?.dateRange?.fromDate ?? new Date(),\n addDays(new Date(), 3)\n );\n const earliestFromOffset =\n maxEarliestFromOffset > 0 && maxEarliestFromOffset < (qsmState?.flexibleRange ?? 0)\n ? maxEarliestFromOffset\n : qsmState?.flexibleRange ?? 0;\n\n const _searchResults = await searchProducts(\n {\n country: qsmState?.countryId,\n region: qsmState?.regionId,\n searchGlobal:\n typeof qsmState?.countryId === \"undefined\" && typeof qsmState?.regionId === \"undefined\",\n from:\n formatISO(qsmState?.dateRange?.fromDate ?? 0, { representation: \"date\" }) +\n \"T00:00:00Z\",\n to:\n formatISO(qsmState?.dateRange?.toDate ?? 0, { representation: \"date\" }) + \"T00:00:00Z\",\n earliestFromOffset: earliestFromOffset,\n latestToOffset: qsmState?.flexibleRange ?? 0,\n rooms: qsmState?.rooms,\n regimeCodes: filterState?.regimeCodes,\n minPrice: filterState?.minPrice,\n maxPrice: filterState?.maxPrice,\n },\n hotels,\n roundtrips,\n t,\n language,\n token\n );\n setSearchResults(_searchResults);\n setIsLoading(false);\n if (filterDispatch) filterDispatch(setPendingFilter(false));\n }\n };\n\n const reload = () => {\n setSearchResults(undefined);\n setShouldReload(!shouldReload); // Only change value to trigger useEffect.\n };\n\n useEffect(() => {\n fetchData();\n }, [\n qsmState?.loaded,\n qsmState?.countryId,\n qsmState?.regionId,\n qsmState?.dateRange?.fromDate?.valueOf(),\n qsmState?.dateRange?.toDate?.valueOf(),\n JSON.stringify(qsmState?.rooms?.map(sortProps)),\n hotels,\n roundtrips,\n filterState?.regimeCodes,\n filterState?.minPrice,\n filterState?.maxPrice,\n shouldReload,\n ]);\n\n const filteredSearchResults = filter(filterState, searchResults);\n return (\n
\n
\n \n
\n {\n if (qsmDispatch) {\n if (locationType === \"country\") {\n qsmDispatch(setCountryId(id));\n } else if (locationType === \"region\") {\n qsmDispatch(setRegionId(id));\n }\n }\n }}\n />\n {!isLoading && (\n \n )}\n {isLoading && }\n
\n
\n );\n};\n\nexport default FacetedSearch;\n","import { SearchResult } from \"./search-util\";\nimport { isNil, orderBy } from \"lodash\";\nimport { SortOrder, FilterState } from \"../filter-store/reducer\";\n\ninterface Order {\n columns: string[];\n type: (boolean | \"asc\" | \"desc\")[];\n}\n\nexport const filter = (\n state?: FilterState,\n searchResults?: SearchResult[]\n): SearchResult[] | undefined => {\n if (!state || !searchResults) {\n return undefined;\n }\n\n // if (!isNil(state.maxPrice) && !isNaN(state.maxPrice)) {\n // searchResults = searchResults.filter(\n // (result) => typeof result.price !== \"undefined\" && result.price <= state.maxPrice!\n // );\n // }\n\n // if (!isNil(state.minPrice) && !isNaN(state.minPrice)) {\n // console.log('filter-util price');\n // searchResults = searchResults.filter(\n // (result) => typeof result.price !== \"undefined\" && result.price > state.minPrice!\n // );\n // }\n\n if (state.ratings.length > 0) {\n searchResults = searchResults.filter((result) =>\n state.ratings.some((x) => result.rating! >= x && result.rating! < x + 1)\n );\n }\n\n if (state.usps) {\n searchResults = searchResults.filter((result) =>\n state.usps.every((uspId) => result.uspIds.includes(uspId))\n );\n }\n\n if (state.themes) {\n searchResults = searchResults.filter((result) =>\n state.themes.every((themeId) => result.themeIds.includes(themeId))\n );\n }\n\n searchResults = searchResults.filter((result) =>\n state.productTypes.some((x) => x === result.productType)\n );\n\n // Sort\n const order = getOrder(state?.sortOrder);\n const sortedSearchResults = orderBy(searchResults, order.columns, order.type);\n\n return sortedSearchResults;\n};\n\nfunction getOrder(order?: SortOrder): Order {\n switch (order) {\n case \"priceAsc\":\n return {\n columns: [\"price\"],\n type: [\"asc\"],\n };\n case \"priceDesc\":\n return {\n columns: [\"price\"],\n type: [\"desc\"],\n };\n case \"departureAsc\":\n default:\n return {\n columns: [\"from\", \"title\"],\n type: [\"asc\", \"asc\"],\n };\n }\n}\n","import {\n TideItemForHotel,\n TideItemForRoundtrip,\n TideItemForTheme,\n TideItemForUsp,\n} from \"../../types\";\n\nimport React from \"react\";\nimport { graphql } from \"gatsby\";\nimport { FilterStoreProvider } from \"./filter-store/context\";\nimport { initialFilterState, filterReducer } from \"./filter-store/reducer\";\nimport { QSMStoreProvider } from \"./qsm-store/context\";\nimport { initialQSMState, qsmReducer } from \"./qsm-store/reducer\";\nimport FacetedSearch from \"./faceted-search\";\n\ninterface SearchResultsProps {\n hotels: TideItemForHotel[];\n roundtrips: TideItemForRoundtrip[];\n themes: TideItemForTheme[];\n usps: TideItemForUsp[];\n searchPagePath?: string;\n}\n\nconst SearchResults: React.FC = ({\n hotels,\n roundtrips,\n themes,\n usps,\n searchPagePath,\n}) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default SearchResults;\n\nexport const query = graphql`\n fragment searchResults on TideItem {\n id\n ... on TideItemForHotel {\n content {\n general {\n product {\n code\n tideId\n allotmentType\n regimes {\n code\n name\n localizedNames {\n languageCode\n value\n }\n }\n minDuration\n minDurationType\n }\n title\n thumbnailPicture {\n url\n }\n stars\n slug\n themes {\n ...productThemeFragment\n }\n usps {\n ...productUspFragment\n }\n estimatedStay\n }\n }\n ...productPathFragment\n }\n ... on TideItemForRoundtrip {\n content {\n general {\n product {\n code\n tideId\n regimes {\n code\n name\n localizedNames {\n languageCode\n value\n }\n }\n minDuration\n minDurationType\n }\n title\n thumbnailPicture {\n url\n }\n slug\n themes {\n ...productThemeFragment\n }\n usps {\n ...productUspFragment\n }\n estimatedStay\n duration\n }\n }\n ...productPathFragment\n }\n }\n\n fragment productThemeFragment on TideItemForTheme {\n ... on TideItemForTheme {\n id\n name\n content {\n general {\n title\n }\n }\n }\n }\n\n fragment productUspFragment on TideItemForUsp {\n ... on TideItemForUsp {\n id\n name\n content {\n general {\n text\n }\n }\n }\n }\n`;\n","import {\n TideItemConnection,\n TideItemForDestinations,\n TideItemForHotelConnection,\n TideItemForNavigationSection,\n TideItemForNewsletterForm,\n TideItemForNotificationComponentConnection,\n TideItemForPage,\n TideItemForRoundtripConnection,\n TideItemForTheme,\n TideItemForUsp,\n TideItemForUspGroup,\n TideItemForWebsite,\n} from \"../types\";\nimport ContactBubble from \"../components/contact-bubble\";\nimport Footer from \"../components/footer\";\nimport Hero from \"../components/hero\";\nimport Layout from \"../components/layout\";\nimport { LookupQueryData } from \"../components/qsm\";\nimport Navbar from \"../components/navbar\";\nimport PageComponents from \"../components/page-components\";\nimport React from \"react\";\nimport SearchResults from \"../app/search-results\";\nimport StickyBar from \"../components/sticky-bar\";\nimport { compact, first, isEmpty, uniqBy } from \"lodash\";\nimport { getChildNavigationLinks } from \"../utils\";\nimport { graphql } from \"gatsby\";\nimport Seo from \"../components/seo\";\nimport NotificationBar from \"../components/notification-bar\";\nimport { AlternateRoute } from \"../../.gatsby/gatsby-node\";\n\ninterface SearchPageTemplateProps {\n data: SearchPageQuery;\n pageContext: {\n language: string;\n alternateRoutes: AlternateRoute[];\n };\n}\n\nconst SearchPageTemplate: React.FC = ({ data, pageContext }) => {\n const generalPageContent = data.page?.content?.general;\n const title = compact([generalPageContent?.titlePrefix, generalPageContent?.title]).join(\" \");\n const notificationBar = first(data.notifications?.nodes);\n\n return (\n \n \n {!isEmpty(notificationBar?.content?.general?.notification) && (\n \n )}\n \n \n \n node.content?.general?.themes\n ),\n (theme) => theme?.id\n ) as TideItemForTheme[]\n }\n usps={\n uniqBy(\n [...data.roundtrips.nodes, ...data.hotels.nodes].flatMap(\n (node) => node.content?.general?.usps\n ),\n (usp) => usp?.id\n ) as TideItemForUsp[]\n }\n />\n \n \n \n \n );\n};\n\ninterface SearchPageQuery extends LookupQueryData {\n page: TideItemForPage;\n breadcrumb: TideItemConnection;\n website: TideItemForWebsite;\n notifications: TideItemForNotificationComponentConnection;\n navigationDestinations: TideItemForDestinations;\n mainNavigationSection: TideItemForNavigationSection;\n fullscreenPrimaryNavigationSection: TideItemForNavigationSection;\n fullscreenSecondaryNavigationSection: TideItemForNavigationSection;\n legalNavigationSection: TideItemForNavigationSection;\n stickyNavigationSection: TideItemForNavigationSection;\n socialNavigationSection: TideItemForNavigationSection;\n contactNavigationSection: TideItemForNavigationSection;\n footerNavigationSection: TideItemForNavigationSection;\n footerUspGroup: TideItemForUspGroup;\n newsletterForm: TideItemForNewsletterForm;\n hotels: TideItemForHotelConnection;\n roundtrips: TideItemForRoundtripConnection;\n}\n\nexport const query = graphql`\n query SearchPageQuery($id: String, $language: String) {\n locales: allLocale(filter: { language: { eq: $language } }) {\n edges {\n node {\n ns\n data\n language\n }\n }\n }\n page: tideItemForSearchPage(id: { eq: $id }) {\n id\n content {\n general {\n title\n titlePrefix\n slug\n headerImage {\n url\n }\n }\n seo {\n seoTitle\n seoDescription\n seoKeywords\n }\n }\n ...pageComponentsFragment\n }\n website: tideItemForWebsite(name: { eq: \"Travelworld\" }, language: { eq: $language }) {\n content {\n contact {\n phone\n email\n address\n }\n }\n }\n ...navigationDestinationsFragment\n notifications: allTideItemForNotificationComponent(filter: { language: { eq: $language } }) {\n nodes {\n content {\n general {\n notification\n iconFontAwesome\n backgroundColor\n }\n }\n }\n }\n mainNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Main Navigation\" }\n language: { eq: $language }\n ) {\n childItems {\n ...navigationLinkFields\n }\n }\n fullscreenPrimaryNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Fullscreen Primary\" }\n language: { eq: $language }\n ) {\n ...fullscreenNavigationSectionFields\n }\n fullscreenSecondaryNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Fullscreen Secondary\" }\n language: { eq: $language }\n ) {\n ...fullscreenNavigationSectionFields\n }\n socialNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Social Navigation\" }\n language: { eq: $language }\n ) {\n childItems {\n ...navigationLinkFields\n }\n }\n contactNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Contact Navigation\" }\n language: { eq: $language }\n ) {\n childItems {\n ...navigationLinkFields\n }\n }\n legalNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Legal Navigation\" }\n language: { eq: $language }\n ) {\n childItems {\n ...navigationLinkFields\n }\n }\n stickyNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Sticky Navigation\" }\n language: { eq: $language }\n ) {\n childItems {\n ...navigationLinkFields\n }\n }\n footerNavigationSection: tideItemForNavigationSection(\n name: { eq: \"Footer Navigation\" }\n language: { eq: $language }\n ) {\n ...fullscreenNavigationSectionFields\n }\n footerUspGroup: tideItemForUspGroup(name: { eq: \"Footer Usps\" }, language: { eq: $language }) {\n ...uspGroupFields\n }\n newsletterForm: tideItemForNewsletterForm(\n name: { eq: \"Newsletter\" }\n language: { eq: $language }\n ) {\n content {\n externalMail {\n templateConfirmationMail {\n tideId\n }\n }\n contactDetails {\n tag {\n tideId\n }\n }\n form {\n privacyPage\n }\n }\n }\n hotels: allTideItemForHotel(filter: { language: { eq: $language } }) {\n nodes {\n ...searchResults\n }\n }\n roundtrips: allTideItemForRoundtrip(filter: { language: { eq: $language } }) {\n nodes {\n ...searchResults\n }\n }\n }\n\n fragment fullscreenNavigationSectionFields on TideItemForNavigationSection {\n id\n childItems {\n id\n templateName\n ... on TideItemForNavigationSection {\n content {\n general {\n title\n text\n path\n url\n }\n }\n childItems {\n ...navigationLinkFields\n }\n }\n }\n }\n\n fragment navigationLinkFields on TideItemForNavigationLink {\n id\n templateName\n name\n content {\n general {\n title\n icon\n path\n url\n }\n }\n }\n\n fragment uspGroupFields on TideItemForUspGroup {\n id\n content {\n general {\n title\n }\n }\n childItems {\n id\n itemId\n templateName\n ... on TideItemForUsp {\n content {\n general {\n icon\n text\n }\n }\n }\n }\n }\n`;\n\nexport default SearchPageTemplate;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","import React from \"react\";\nimport Icon from \"../icon\";\nimport { getChildNavigationLinks } from \"../../utils\";\nimport Link from \"../link\";\nimport { TideItemForNavigationSection } from \"../../types\";\n\nexport interface ContactNavigationProps {\n contactNavigationSection: TideItemForNavigationSection;\n}\n\nconst ContactNavigation: React.FC = ({ contactNavigationSection }) => (\n
\n {getChildNavigationLinks(contactNavigationSection).map((navigationLink) => {\n const generalContent = navigationLink.content?.general;\n\n return (\n \n \n \n );\n })}\n
\n);\n\nexport default ContactNavigation;\n","import React, { useState } from \"react\";\nimport { buildClassName } from \"../../utils\";\nimport Icon from \"../icon\";\nimport ContactNavigation, { ContactNavigationProps } from \"./contact-navigation\";\nimport { Trans, useI18next } from \"gatsby-plugin-react-i18next\";\n\ninterface ContactBubbleProps extends ContactNavigationProps {\n active?: boolean;\n}\n\nconst ContactBubble: React.FC = ({ contactNavigationSection, ...props }) => {\n const [active, setActive] = useState(props.active ?? false);\n const { t } = useI18next();\n\n const handleToggle: React.MouseEventHandler = (event) => {\n event.preventDefault();\n setActive(!active);\n };\n\n const handleClose: React.MouseEventHandler = (event) => {\n event.preventDefault();\n setActive(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n\n \n\n

\n DO_YOU_HAVE_QUESTIONS\n
WE_LOVE_TO_HELP_YOU\n

\n\n

\n CONTACT_BUBBLE_DESCRIPTION\n

\n\n

Lieven

\n\n

\n Lieven Bossaert,\n
\n {t(\"TRAVEL_EXPERT\")}\n

\n\n \n
\n
\n );\n};\n\nexport default ContactBubble;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n"],"sourceRoot":""}