{"version":3,"sources":["webpack://app.[name]/./source/App/Views/Containers/BoxeverContainer.js","webpack://app.[name]/./source/App/Views/hooks/index.js","webpack://app.[name]/./source/App/Views/hooks/useScript.js"],"names":["_interopRequireDefault","Object","defineProperty","exports","value","default","_slicedToArray2","_immutable","_react","_reactRedux","_momentEs","_dates","_flightType","_personalisation","_hooks","_functions","_object","_performance","RETURN","FLIGHT_TYPE_IDS","ONE_WAY","timeouts","cachedResults","formatDate","date","format","DEFAULT_BOOKING_ENGINE_DATE_FORMAT","fetchBoxever","boxeverData","name","sanitizeDataProps","_ref","posCode","settings","isRecentSearch","RECENT_SEARCH","requestObject","context","browserId","window","Boxever","getID","channel","clientKey","pointOfSale","friendlyId","RECENT_SEARCH_WEB","cacheKey","JSON","stringify","Promise","resolve","reject","sanitize","createPerformanceMarker","BOXEVER_START_MARKER","clearTimeout","setTimeout","Error","concat","TIMEOUT_DURATION","callFlows","response","recentSearches","BOXEVER_END_MARKER","measurePerformance","error","callBoxeverAPI","_ref2","airportCodes","dateFormatLabel","result","fromJS","map","item","newItem","cameliseKeys","departureDateDisplay","departureDate","returnDateDisplay","returnDate","DEFAULT_DATE_FORMAT","departureDateObject","Date","departure_date","returnDateObject","return_date","flightType","originName","getIn","originIata","destinationName","destinationIata","List","sanitizeRecentSearches","_ref3","origin","rawData","get","destinationCode","destination_code","ref","tracking","sanitizeRecommended","then","catch","results","filteredResults","filter","isRouteValid","slice","maxItems","BoxeverContainer","props","onRender","onLoading","_props$settings","apiUrl","createApiUrl","enabled","scriptUrl","webFlowTarget","cookieExpiryInDays","missingRequiredSettings","_useState","useState","_useState2","isLoading","setIsLoading","_useState3","Map","recentSearch","recommended","_useState4","setResults","useEffect","_boxever_settings","client_key","cookie_domain","cookies_only","cookie_expiry_in_days","target","web_flow_target","scriptSrc","undefined","SCRIPT_ALREADY_LOADED","_useScript","useScript","BOXEVER_SCRIPT_ID","_useScript2","isBoxeverReady","boxeverScriptError","isMounted","currencyCode","languageName","maxRecentSearch","maxRecommendedDestination","shouldFetchRecommended","sanitizeRecentSearchData","sanitizeRecommendedData","fetchRecentSearch","fetchRecommended","enableBoxeverRecommended","RECOMMENDED","all","_ref4","_ref5","recentSearchResult","recommendedResult","defaultProps","DEFAULT_RECENT_SEARCH_FORMAT","noop","MAX_RECENT_SEARCH","MAX_RECOMMENDED_DESTINATION","_default","connect","state","config","flightSchedule","_typeof","enumerable","obj","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_interopRequireWildcard","WeakMap","cacheBabelInterop","cacheNodeInterop","scriptID","scriptLoader","cachedScripts","alreadyLoaded","loaded","initialState","DEFAULT_STATE","LOADED_STATE","ERROR_STATE","setState","onScriptLoad","onScriptError","loadingScript","script","addEventListener","removeEventListener","document","createElement","src","async","id","body","appendChild"],"mappings":"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","file":"scripts/46.bundle.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nrequire(\"core-js/modules/es6.object.to-string.js\");\n\nrequire(\"core-js/modules/es6.promise.js\");\n\nrequire(\"core-js/modules/es6.array.map.js\");\n\nrequire(\"core-js/modules/es6.array.filter.js\");\n\nrequire(\"core-js/modules/es6.array.slice.js\");\n\nrequire(\"core-js/modules/es6.string.iterator.js\");\n\nrequire(\"core-js/modules/es6.array.iterator.js\");\n\nrequire(\"core-js/modules/web.dom.iterable.js\");\n\nvar _immutable = require(\"immutable\");\n\nvar _react = require(\"react\");\n\nvar _reactRedux = require(\"react-redux\");\n\nvar _momentEs = _interopRequireDefault(require(\"moment-es6\"));\n\nvar _dates = require(\"../../Constants/dates\");\n\nvar _flightType = require(\"../../Constants/flightType\");\n\nvar _personalisation = require(\"../../Constants/personalisation\");\n\nvar _hooks = require(\"../hooks\");\n\nvar _functions = require(\"../../Utils/functions\");\n\nvar _object = require(\"../../Utils/object\");\n\nvar _performance = require(\"../../Utils/performance\");\n\n// constants\n// state\n// hooks\n// utils\nvar RETURN = _flightType.FLIGHT_TYPE_IDS.RETURN,\n ONE_WAY = _flightType.FLIGHT_TYPE_IDS.ONE_WAY;\nvar timeouts = {};\nvar cachedResults = {};\n\nvar createRequestObject = function createRequestObject(_ref) {\n var posCode = _ref.posCode,\n settings = _ref.settings;\n return {\n context: {\n browserId: window.Boxever && window.Boxever.getID(),\n channel: settings.channel,\n clientKey: settings.clientKey,\n pointOfSale: posCode,\n friendlyId: _personalisation.RECENT_SEARCH_WEB\n }\n };\n};\n\nvar callBoxeverAPI = function callBoxeverAPI(requestObject, name, sanitize) {\n (0, _performance.createPerformanceMarker)(_personalisation.BOXEVER_START_MARKER + name);\n return new Promise(function (resolve, reject) {\n window.clearTimeout(timeouts[name]);\n timeouts[name] = window.setTimeout(function () {\n return reject(new Error(\"Boxever API \\\"\".concat(name, \"\\\" timeout. Slower than \").concat(_personalisation.TIMEOUT_DURATION)));\n }, _personalisation.TIMEOUT_DURATION);\n\n try {\n window.Boxever.callFlows(requestObject, function (response) {\n var recentSearches = response && response.recentSearches;\n\n if (recentSearches) {\n (0, _performance.createPerformanceMarker)(_personalisation.BOXEVER_END_MARKER + name);\n (0, _performance.measurePerformance)(\"boxever_request_\".concat(name), _personalisation.BOXEVER_START_MARKER + name, _personalisation.BOXEVER_END_MARKER + name);\n }\n\n window.clearTimeout(timeouts[name]);\n resolve(sanitize(response));\n });\n } catch (error) {\n window.clearTimeout(timeouts[name]);\n reject(error);\n }\n });\n};\n\nvar formatDate = function formatDate(date, format) {\n return (0, _momentEs.default)(date, _dates.DEFAULT_BOOKING_ENGINE_DATE_FORMAT).format(format);\n};\n\nvar sanitizeRecentSearches = function sanitizeRecentSearches(response, _ref2, cacheKey) {\n var airportCodes = _ref2.airportCodes,\n dateFormatLabel = _ref2.dateFormatLabel;\n var recentSearches = response.recentSearches || [];\n var result = recentSearches ? (0, _immutable.fromJS)(recentSearches.map(function (item) {\n var newItem = (0, _object.cameliseKeys)(item);\n newItem.departureDateDisplay = formatDate(newItem.departureDate, dateFormatLabel);\n newItem.returnDateDisplay = formatDate(newItem.returnDate, dateFormatLabel);\n newItem.departureDate = formatDate(newItem.departureDate, _dates.DEFAULT_DATE_FORMAT);\n newItem.departureDateObject = new Date(item.departure_date);\n newItem.returnDate = formatDate(newItem.returnDate, _dates.DEFAULT_DATE_FORMAT);\n newItem.returnDateObject = new Date(item.return_date);\n newItem.flightType = newItem.flightType === 'RT' ? RETURN : ONE_WAY;\n newItem.originName = airportCodes.getIn([newItem.originIata, 'Name']);\n newItem.destinationName = airportCodes.getIn([newItem.destinationIata, 'Name']);\n return newItem;\n })) : (0, _immutable.List)();\n\n if (response.result) {\n cachedResults[cacheKey] = result;\n }\n\n return result;\n};\n\nvar sanitizeRecommended = function sanitizeRecommended(response, _ref3, cacheKey) {\n var airportCodes = _ref3.airportCodes,\n origin = _ref3.origin;\n var rawData = (0, _functions.get)(response, 'result.data.offerGroups.0.offerItems.items');\n var result = rawData ? (0, _immutable.fromJS)(rawData.map(function (item) {\n return {\n destinationCode: item.destination_code,\n destinationName: airportCodes.getIn([item.destination_code, 'Name']),\n originName: airportCodes.getIn([origin, 'Name']),\n ref: item.ref,\n tracking: (0, _object.cameliseKeys)(item.tracking)\n };\n })) : (0, _immutable.List)();\n\n if (response.result) {\n cachedResults[cacheKey] = result;\n }\n\n return result;\n};\n\nvar fetchBoxever = function fetchBoxever(boxeverData, name, sanitizeDataProps) {\n var isRecentSearch = name === _personalisation.RECENT_SEARCH;\n var requestObject = createRequestObject(boxeverData);\n var cacheKey = JSON.stringify(requestObject);\n return new Promise(function (resolve, reject) {\n if (cachedResults[cacheKey]) {\n return resolve(cachedResults[cacheKey]);\n }\n\n var sanitize = function sanitize(response) {\n return isRecentSearch ? sanitizeRecentSearches(response, sanitizeDataProps, cacheKey) : sanitizeRecommended(response, sanitizeDataProps, cacheKey);\n };\n\n return callBoxeverAPI(requestObject, name, sanitize).then(resolve).catch(reject);\n }).then(function (results) {\n // Filter the results based on the origin + return only the `maxItems` first items\n var filteredResults = results;\n\n if (sanitizeDataProps.origin) {\n filteredResults = name === _personalisation.RECENT_SEARCH ? results.filter(function (result) {\n return result.get('originIata') === sanitizeDataProps.origin;\n }) : results.filter(function (result) {\n return sanitizeDataProps.isRouteValid(sanitizeDataProps.origin, result.get('destinationCode'));\n });\n }\n\n return filteredResults.slice(0, sanitizeDataProps.maxItems);\n });\n};\n\nvar BoxeverContainer = function BoxeverContainer(props) {\n var onRender = props.onRender,\n onLoading = props.onLoading,\n posCode = props.posCode;\n var _props$settings = props.settings,\n apiUrl = _props$settings.apiUrl,\n clientKey = _props$settings.clientKey,\n createApiUrl = _props$settings.createApiUrl,\n enabled = _props$settings.enabled,\n scriptUrl = _props$settings.scriptUrl,\n webFlowTarget = _props$settings.webFlowTarget,\n cookieExpiryInDays = _props$settings.cookieExpiryInDays;\n var missingRequiredSettings = !(apiUrl && clientKey && createApiUrl && enabled && onRender && scriptUrl);\n\n var _useState = (0, _react.useState)(false),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n isLoading = _useState2[0],\n setIsLoading = _useState2[1];\n\n var _useState3 = (0, _react.useState)((0, _immutable.Map)({\n recentSearch: (0, _immutable.List)(),\n recommended: (0, _immutable.List)()\n })),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n results = _useState4[0],\n setResults = _useState4[1];\n\n (0, _react.useEffect)(function () {\n /* eslint-disable-next-line no-underscore-dangle */\n if (apiUrl && clientKey && posCode && webFlowTarget && !window._boxever_settings) {\n /* eslint-disable-next-line no-underscore-dangle */\n window._boxever_settings = {\n client_key: clientKey,\n cookie_domain: '.jetstar.com',\n cookies_only: true,\n cookie_expiry_in_days: cookieExpiryInDays,\n target: apiUrl,\n web_flow_target: webFlowTarget,\n pointOfSale: posCode\n };\n }\n }, [clientKey, apiUrl, posCode, webFlowTarget, cookieExpiryInDays]);\n var scriptSrc = window.Boxever !== undefined ? _hooks.SCRIPT_ALREADY_LOADED : scriptUrl;\n\n var _useScript = (0, _hooks.useScript)(scriptSrc, _personalisation.BOXEVER_SCRIPT_ID),\n _useScript2 = (0, _slicedToArray2.default)(_useScript, 2),\n isBoxeverReady = _useScript2[0],\n boxeverScriptError = _useScript2[1];\n\n (0, _react.useEffect)(function () {\n var isMounted = true;\n var airportCodes = props.airportCodes,\n currencyCode = props.currencyCode,\n dateFormatLabel = props.dateFormatLabel,\n isRouteValid = props.isRouteValid,\n languageName = props.languageName,\n maxRecentSearch = props.maxRecentSearch,\n maxRecommendedDestination = props.maxRecommendedDestination,\n origin = props.origin,\n settings = props.settings,\n shouldFetchRecommended = props.shouldFetchRecommended;\n\n if (missingRequiredSettings || !isBoxeverReady || boxeverScriptError) {\n return function () {};\n }\n\n var boxeverData = {\n currencyCode: currencyCode,\n languageName: languageName,\n posCode: posCode,\n settings: settings\n };\n var sanitizeRecentSearchData = {\n airportCodes: airportCodes,\n dateFormatLabel: dateFormatLabel,\n maxItems: maxRecentSearch,\n origin: origin\n };\n var sanitizeRecommendedData = {\n airportCodes: airportCodes,\n isRouteValid: isRouteValid,\n maxItems: maxRecommendedDestination,\n origin: origin\n };\n var fetchRecentSearch = fetchBoxever(boxeverData, _personalisation.RECENT_SEARCH, sanitizeRecentSearchData).catch(function () {\n return (0, _immutable.List)();\n }); //TODO : refactor to new boxever callFlows\n\n var fetchRecommended = shouldFetchRecommended && settings.enableBoxeverRecommended ? fetchBoxever(boxeverData, _personalisation.RECOMMENDED, sanitizeRecommendedData).catch(function () {\n return (0, _immutable.List)();\n }) : (0, _immutable.List)();\n setIsLoading(true);\n Promise.all([fetchRecentSearch, fetchRecommended]).then(function (_ref4) {\n var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),\n recentSearchResult = _ref5[0],\n recommendedResult = _ref5[1];\n\n // ensure component is still mounted before async promises update the state\n if (isMounted) {\n setResults((0, _immutable.Map)({\n recentSearch: recentSearchResult,\n recommended: recommendedResult\n }));\n setIsLoading(false);\n }\n }).catch(function () {\n isMounted && setIsLoading(false);\n });\n return function () {\n isMounted = false;\n };\n }, [isBoxeverReady, boxeverScriptError, missingRequiredSettings, props, posCode]);\n return isLoading ? onLoading() : onRender(results);\n};\n\nBoxeverContainer.defaultProps = {\n dateFormatLabel: _dates.DEFAULT_RECENT_SEARCH_FORMAT,\n isRouteValid: _functions.noop,\n maxRecentSearch: _personalisation.MAX_RECENT_SEARCH,\n maxRecommendedDestination: _personalisation.MAX_RECOMMENDED_DESTINATION,\n onLoading: function onLoading() {\n return null;\n },\n shouldFetchRecommended: false\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n var config = state.config,\n flightSchedule = state.flightSchedule;\n return {\n airportCodes: flightSchedule.getIn(['data', 'Airports', 'ById']),\n posCode: config.getIn(['data', 'posCode']),\n settings: (0, _functions.get)(window, 'Jetstar.features.boxever') || {}\n };\n};\n\nvar _default = (0, _reactRedux.connect)(mapStateToProps)(BoxeverContainer);\n\nexports.default = _default;","\"use strict\";\n\nrequire(\"core-js/modules/es6.weak-map.js\");\n\nrequire(\"core-js/modules/es6.string.iterator.js\");\n\nrequire(\"core-js/modules/es6.object.to-string.js\");\n\nrequire(\"core-js/modules/es6.array.iterator.js\");\n\nrequire(\"core-js/modules/web.dom.iterable.js\");\n\nrequire(\"core-js/modules/es6.object.get-own-property-descriptor.js\");\n\nvar _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"SCRIPT_ALREADY_LOADED\", {\n enumerable: true,\n get: function get() {\n return _useScript.SCRIPT_ALREADY_LOADED;\n }\n});\nObject.defineProperty(exports, \"useScript\", {\n enumerable: true,\n get: function get() {\n return _useScript.default;\n }\n});\n\nvar _useScript = _interopRequireWildcard(require(\"./useScript\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SCRIPT_ALREADY_LOADED = void 0;\nexports.default = useScript;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _react = require(\"react\");\n\n// Inspired by: https://usehooks.com/useScript/\nvar DEFAULT_STATE = {\n loaded: false,\n error: false\n};\nvar LOADED_STATE = {\n loaded: true,\n error: false\n};\nvar ERROR_STATE = {\n loaded: true,\n error: true\n};\nvar cachedScripts = {}; // In the case we know the script has already been loaded externally (via a head tag for instance)\n// and because we can't use a hook inside a conditional statement\n// Could be use as:\n// useScript(window.Boxever !== undefined ? SCRIPT_ALREADY_LOADED : 'https://url-to-boxever-script.com/script.js')\n\nvar SCRIPT_ALREADY_LOADED = 'SCRIPT_ALREADY_LOADED';\nexports.SCRIPT_ALREADY_LOADED = SCRIPT_ALREADY_LOADED;\n\nfunction useScript(scriptSrc, scriptID) {\n var scriptLoader = cachedScripts[scriptSrc];\n var alreadyLoaded = scriptSrc === SCRIPT_ALREADY_LOADED || scriptLoader && scriptLoader.loaded;\n var initialState = DEFAULT_STATE;\n\n if (alreadyLoaded) {\n initialState = LOADED_STATE;\n } else if (!scriptSrc) {\n initialState = ERROR_STATE;\n }\n\n var _useState = (0, _react.useState)(initialState),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n (0, _react.useEffect)(function () {\n var onScriptLoad = function onScriptLoad() {\n cachedScripts[scriptSrc].loaded = true;\n setState(LOADED_STATE);\n };\n\n var onScriptError = function onScriptError() {\n // Remove it from cache, so that it can be re-attempted if someone tries to load it again\n delete cachedScripts[scriptSrc];\n setState(ERROR_STATE);\n };\n\n if (alreadyLoaded || !scriptSrc) {\n return function () {};\n }\n\n if (scriptLoader && !scriptLoader.loaded) {\n var loadingScript = scriptLoader.script;\n loadingScript.addEventListener('load', onScriptLoad);\n loadingScript.addEventListener('error', onScriptError);\n return function () {\n loadingScript.removeEventListener('load', onScriptLoad);\n loadingScript.removeEventListener('error', onScriptError);\n };\n }\n\n var script = document.createElement('script');\n script.src = scriptSrc;\n script.async = true;\n\n if (scriptID) {\n script.id = scriptID;\n }\n\n script.addEventListener('load', onScriptLoad);\n script.addEventListener('error', onScriptError);\n cachedScripts[scriptSrc] = {\n loaded: false,\n script: script\n };\n document.body && document.body.appendChild(script);\n return function () {\n script.removeEventListener('load', onScriptLoad);\n script.removeEventListener('error', onScriptError);\n };\n }, [alreadyLoaded, scriptID, scriptLoader, scriptSrc]);\n var loaded = state.loaded,\n error = state.error;\n return [loaded, error];\n}"],"sourceRoot":""}