您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds new features and builds fare purchase links for ITA Matrix
当前为
// ==UserScript== // @name ITA Matrix Powertools // @namespace https://github.com/adamhwang/ita-matrix-powertools // @description Adds new features and builds fare purchase links for ITA Matrix // @version 0.42.6 // @icon https://raw.githubusercontent.com/adamhwang/ita-matrix-powertools/master/icons/icon32.png // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // @grant GM.getValue // @grant GM_setValue // @grant GM.setValue // @grant GM_setValue // @include http*://matrix.itasoftware.com/* // @license GPL-2.0-only // ==/UserScript== /* Written by paul21, Steppo & Adam Hwang (IAkH) of FlyerTalk.com http://www.flyertalk.com/forum/members/paul21.html Includes contriutions by https://github.com/adamhwang/ita-matrix-powertools/blob/master/AUTHORS GNU General Public License v2.0 */ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool: // `npm run build` // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 36); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentSegs; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return currentItin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return readItinerary; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); // initialize local storage for current itin /** @type {{ cur?: string; price?: number; basefares?: number; taxes?: number; surcharges?: number; dist?: number; numPax?: number; carriers?: string[]; farebases?: string[]; itin?: { orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; offset?: string; }; seg?: { carrier: string; orig: string; dest: string; dist?: number; dep: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; arr: { day: number; month: number; year: number; time: string; time24: string; timeDisplay: string; offset?: string; }; fnr: string; duration: number; aircraft: string; cabin: number; bookingclass: string; codeshare: number; layoverduration: number; airportchange: number; farebase: string; farecarrier: string; }[]}[]}} */ let currentItin = new Object(); const matrixCurrencies = [ { p: /US\$/, c: "USD" }, { p: /\€/, c: "EUR" }, { p: /\£/, c: "GBP" }, { p: /CA\$/, c: "CAD" }, { p: /RS\./, c: "INR" } ]; function readItinerary() { // the magical part! :-) var itin = new Array(), carrieruarray = new Array(), farebases = new Array(), dirtyFare = new Array(); var itinCur = ""; var html = document.getElementById("contentwrapper").innerHTML; var re = /colspan\=\"5\"[^\(]+\(([\w]{3})[^\(]+\(([\w]{3})/g; var legs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // Got our outer legs now: for (i = 0; i < legs.length; i += 2) { var legobj = {}; // prepare all elements but fill later legobj.arr = {}; legobj.dep = {}; legobj.orig = legs[i]; legobj.dest = legs[i + 1]; legobj.seg = new Array(); itin.push(legobj); } // extract basefares var re = /Carrier\s([\w]{2})\s([\w]+).*?Covers\s([\w\(\)\s\-,]+)/g; var bfs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); var bf = { c: "", f: "", l: new Array() }; for (i = 0; i < bfs.length; i += 3) { bf.c = bfs[i]; bf.f = bfs[i + 1]; farebases.push(bf.f); bf.l = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(bfs[i + 2], /(\w\w\w\-\w\w\w)/g); for (j = 0; j < bf.l.length; j++) { dirtyFare.push(bf.l[j] + "-" + bf.f + "-" + bf.c); } } var segs = new Array(); var re = /35px\/(\w{2}).png[^\(]+\(([A-Z]{3})[^\(]+\(([A-Z]{3})[^\,]*\,\s*([a-zA-Z]{3})\s*([0-9]{1,2}).*?gwt-Label.*?([0-9]*)\<.*?Dep:[^0-9]+(.*?)\<.*?Arr:[^0-9]+(.*?)\<.*?([0-9]{1,2})h\s([0-9]{1,2})m.*?gwt-Label.*?\>(.*?)\<.*?gwt-Label\"\>(\w).*?\((\w)\).*?\<.*?tr(.*?)(table|airline_logos)/g; segs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // used massive regex to get all our segment-info in one extraction var legnr = 0; var segnr = 0; for (i = 0; i < segs.length; i += 15) { const dep12 = return12htime(segs[i + 6]); const dep24 = (dep12.length == 4 ? "0" : "") + dep12; const arr12 = return12htime(segs[i + 7]); const arr24 = (arr12.length == 4 ? "0" : "") + arr12; const addinformations = parseAddInfo(segs[i + 13]); const day = parseInt(segs[i + 4]); const month = monthnameToNumber(segs[i + 3]); const year = getFlightYear(day, month); let seg = { carrier: segs[i], orig: segs[i + 1], dest: segs[i + 2], dep: { day, month, year, timeDisplay: segs[i + 6], time: dep12, time24: dep24 }, arr: { day: addinformations.arrDate ? addinformations.arrDate.day : day, month: addinformations.arrDate ? addinformations.arrDate.month : month, year: addinformations.arrDate ? addinformations.arrDate.year : year, timeDisplay: segs[i + 7], time: arr12, time24: arr24 }, fnr: segs[i + 5], duration: parseInt(segs[i + 8]) * 60 + parseInt(segs[i + 9]), aircraft: segs[i + 10], cabin: getcabincode(segs[i + 11]), bookingclass: segs[i + 12], codeshare: addinformations.codeshare, layoverduration: addinformations.layoverduration, airportchange: addinformations.airportchange, farebase: "", farecarrier: "" }; // find farecode for leg for (var j = 0; j < dirtyFare.length; j++) { if (dirtyFare[j].indexOf(seg.orig + "-" + seg.dest + "-") != -1) { //found farebase of this segment var tmp = dirtyFare[j].split("-"); seg.farebase = tmp[2]; seg.farecarrier = tmp[3]; dirtyFare[j] = seg.farebase; // avoid reuse j = dirtyFare.length; } } if (itin[legnr] === undefined) itin[legnr] = new Object(); if (itin[legnr].seg === undefined) itin[legnr].seg = new Array(); itin[legnr].seg.push(seg); // push carrier if (!Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* inArray */ "f"])(seg.carrier, carrieruarray)) { carrieruarray.push(seg.carrier); } // push dates and times into leg-array if (segnr == 0) { if (itin[legnr].dep === undefined) itin[legnr].dep = new Object(); itin[legnr].dep.day = seg.dep.day; itin[legnr].dep.month = seg.dep.month; itin[legnr].dep.year = seg.dep.year; itin[legnr].dep.time = seg.dep.time; } if (itin[legnr].arr === undefined) itin[legnr].arr = new Object(); itin[legnr].arr.day = seg.arr.day; itin[legnr].arr.month = seg.arr.month; itin[legnr].arr.year = seg.arr.year; itin[legnr].arr.time = seg.arr.time; segnr++; // check for legchange if (segs[i + 14] == "table") { legnr++; segnr = 0; } } // We need to apply remaining fares (Not nonstop - but direct flights) for (var i = 0; i < dirtyFare.length; i++) { var curfare = dirtyFare[i].split("-"); if (curfare.length > 1) { var l = 0; //currently unused so walk through itin to find flights for (var legnr = 0; legnr < itin.length; legnr++) { for (var segnr = 0; segnr < itin[legnr].seg.length; segnr++) { if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest == curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found seg for fare itin[legnr].seg[segnr].farebase = curfare[2]; itin[legnr].seg[segnr].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; segnr = itin[legnr].seg.length; l = 1; } else if ( itin[legnr].seg[segnr].orig == curfare[0] && itin[legnr].seg[segnr].dest != curfare[1] && itin[legnr].seg[segnr].farebase == "" ) { // found start but multiple segs -> find end for (var j = segnr + 1; j < itin[legnr].seg.length; j++) { if ( itin[legnr].seg[j].dest == curfare[1] && itin[legnr].seg[j].farebase == "" ) { //found end attach fares for (var k = segnr; k <= j; k++) { itin[legnr].seg[k].farebase = curfare[2]; itin[legnr].seg[k].farecarrier = curfare[3]; dirtyFare[i] = curfare[2]; } j = itin[legnr].seg.length; segnr = itin[legnr].seg.length; l = 1; } else if (itin[legnr].seg[segnr + j].farebase != "") { //farebase attached - skip j = itin[legnr].seg.length; } } } } if (l == 1) { legnr = itin.length; } } if (l == 0) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "h"])("Unused fare:" + dirtyFare[i]); } } } // Combine technical stops into a single segment itin.forEach(itin => { if (itin.seg) itin.seg = combineTechnicalStops(itin.seg); }); // extract mileage paxcount and total price var milepaxprice = new Array(); var re = /Mileage.*?([0-9,]+)\stotal\smiles.*?Total\scost\sfor\s([0-9])\spassenger.*?<div.*?>(.*?([1-9][0-9,.]+)[^\<]*)/g; milepaxprice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re); // detect currency for (i = 0; i < matrixCurrencies.length; i++) { if (matrixCurrencies[i].p.test(milepaxprice[2]) === true) { itinCur = matrixCurrencies[i].c; i = matrixCurrencies.length; } } currentItin = { itin: itin, price: Number(milepaxprice[3].replace(/\,/, "")), numPax: Number(milepaxprice[1]), carriers: carrieruarray, cur: itinCur, farebases: farebases, dist: Number(milepaxprice[0].replace(/\,/, "")) }; console.log("parsed itinerary: ", currentItin); } function parseAddInfo(info) { var ret = { codeshare: 0, layoverduration: 0, airportchange: 0, arrDate: null }; var re = /contains\s*airport\s*changes/g; if (re.test(info) === true) { ret.airportchange = 1; } var re = /OPERATED\s*BY/g; if (re.test(info) === true) { ret.codeshare = 1; } var temp = new Array(); var re = /\,\s*([a-zA-Z]{3})\s*([0-9]{1,2})/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got datechange const month = monthnameToNumber(temp[0]); const day = parseInt(temp[1]); ret.arrDate = { month, day, year: getFlightYear(day, month) }; } var temp = new Array(); var re = /([0-9]{1,2})h\s([0-9]{1,2})m/g; temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re); if (temp.length == 2) { // Got layover ret.layoverduration = parseInt(temp[0]) * 60 + parseInt(temp[1]); } return ret; } function getCurrentSegs() { return currentItin.itin .map(function(p) { return p.seg; }) .reduce(function(a, b) { return a.concat(b); }, []); } function combineTechnicalStops(allSegs) { if (allSegs.length <= 1) return allSegs; const segs = []; for (let i = 0; i < allSegs.length; i++) { const currSeg = allSegs[i]; const nextSeg = allSegs[i + 1]; if ( nextSeg && nextSeg.fnr === currSeg.fnr && nextSeg.orig === currSeg.dest ) { segs.push({ ...currSeg, dest: nextSeg.dest, arr: nextSeg.arr }); i++; } else { segs.push(currSeg); } } return segs; } /**************************************** General Functions *****************************************/ function getcabincode(cabin) { switch (cabin) { case "E": cabin = 0; break; case "P": cabin = 1; break; case "B": cabin = 2; break; case "F": cabin = 3; break; default: cabin = 0; } return cabin; } function monthnameToNumber(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames.indexOf(month.toUpperCase()) + 1; } function getFlightYear(day, month) { //Do date magic var d = new Date(); var cmonth = d.getMonth(); var cday = d.getDate(); var cyear = d.getFullYear(); // make sure to handle the 0-11 issue of getMonth() if (cmonth > month - 1 || (cmonth == month - 1 && day < cday)) { cyear += 1; // The flight is next year } return cyear; } function return12htime(match) { var regex = /([01]?\d)(:\d{2})(AM|PM|am|pm| AM| PM| am| pm)/g; match = regex.exec(match); var offset = 0; match[3] = trimStr(match[3]); if ((match[3] == "AM" || match[3] == "am") && match[1] == "12") { offset = -12; } else if ((match[3] == "PM" || match[3] == "pm") && match[1] != "12") { offset = 12; } return +match[1] + offset + match[2]; } function trimStr(x) { return x.replace(/^\s+|\s+$/gm, ""); } /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return registeredSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerSetting; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return saveUserSettings; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadUserSettings; }); /* harmony import */ var _appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); const defaultSettings = { timeformat: "12h", // replaces times on resultpage - valid: 12h / 24h language: "en", // replaces several items on resultpage - valid: en / de linkFontsize: 100, // fontsize of links - valid: 50-200 showAllAirlines: 0, // shows all airline links regardless of search results // booleans to toggle specific settings: enableDeviders: 1, // Print deviders in links after group (airlines/otas/other stuff) - valid: 0 / 1 enableInlineMode: 0, // enables inline mode - valid: 0 / 1 enableEditormode: 0, // prevents the script from automatically parsing the itinerary - valid: 0 / 1 enableIMGautoload: 0, // enables images to auto load - valid: 0 / 1 enableFarerules: 1, // enables fare rule opening in new window - valid: 0 / 1 enablePricebreakdown: 1, // enables price breakdown - valid: 0 / 1 enablePlanefinder: 1, // enables Planefinder - click on flight numbers to open Planefinder for this flight - valid: 0 / 1 enableSeatguru: 1, // enables Seatguru - click on plane type to open Seatguru for this flight - valid: 0 / 1 enableWheretocredit: 1 // enables Wheretocredit - click on booking class to open wheretocredit for this flight - valid: 0 / 1 }; const registeredSettings = {}; /** * Registers a link * @param {string} name * @param {string} id * @param {{ name: string, value: string }[]} values * @param {string} defaultValue */ function registerSetting(name, id, values, defaultValue) { registeredSettings[id] = { name, values }; defaultSettings[id] = defaultValue; } async function saveUserSettings(settings = defaultSettings) { switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: localStorage.setItem("mptUserSettings", JSON.stringify(settings)); break; case 1: await GM.setValue("mptUserSettings", JSON.stringify(settings)); break; } } async function loadUserSettings() { let gmSavedUserSettings; switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) { case 0: gmSavedUserSettings = localStorage.getItem("mptUserSettings"); break; case 1: gmSavedUserSettings = await GM.getValue("mptUserSettings"); break; } console.log("mptSavedUserSettings: " + gmSavedUserSettings); if (!gmSavedUserSettings || typeof gmSavedUserSettings !== "string") return; /** @type typeof defaultSettings */ const savedUserSettings = JSON.parse(gmSavedUserSettings); if (!savedUserSettings) return; Object.assign(defaultSettings, savedUserSettings); } /* harmony default export */ __webpack_exports__["a"] = (defaultSettings); /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return findtarget; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findtargets; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return toggleVis; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return clearNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return printNotification; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return exRE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return inArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return to2digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return to4digits; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return to4digitTime; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return monthnumberToName; }); function findtarget(tclass, nth) { var elems = document.getElementsByTagName("*"), i; let j = 0; for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { j++; if (j == nth) { return elems[i]; break; } } } } function findtargets(tclass) { var elems = document.getElementsByTagName("*"), i; var ret = new Array(); for (i in elems) { if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) { ret.push(elems[i]); } } return ret; } function hasClass(element, cls) { return (" " + element.className + " ").indexOf(" " + cls + " ") > -1; } function toggleVis(target, blockType = "block") { if (hasClass(target, "vis")) { target.setAttribute("class", "invis"); target.style.display = "none"; } else { target.setAttribute("class", "vis"); target.style.display = blockType; } } function clearNotification() { var target = document.getElementById("mtpNotification"); target.innerHTML = ""; } function printNotification(text) { // log the text to the browser's developer console: console.log(text); // display for user: var target = document.getElementById("mtpNotification"); if (target === null) { //alert("mtp Error: Notification container not Found"); console.log("mtp Error: Notification container not Found"); } else { //possibility to print multiple notifications var temp = document.createElement("div"); temp.appendChild(document.createTextNode(text)); target.appendChild(temp); } } //Parses all of the outputs of regexp matches into an array function exRE(str, re) { var ret = new Array(); var m; var i = 0; while ((m = re.exec(str)) != null) { if (m.index === re.lastIndex) { re.lastIndex++; } for (let k = 1; k < m.length; k++) { ret[i++] = m[k]; } } return ret; } function inArray(needle, haystack) { var length = haystack.length; for (var i = 0; i < length; i++) { if (haystack[i] == needle) return true; } return false; } function to2digits(str) { return ("00" + str).slice(-2); } function to4digits(str) { return ("0000" + str).slice(-4); } function to4digitTime(time) { return to4digits(time.replace(":", "")); } function monthnumberToName(month) { var monthnames = [ "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]; return monthnames[month - 1]; } /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return printLinksContainer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return validatePaxcount; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return printItemInline; }); /* unused harmony export printImageInline */ /* unused harmony export getSidebarContainer */ /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2); /** @type {{ [key: string]: ((itin: typeof currentItin) => { url: string, title: string, desc?: string, nth?: number, extra?: string })[]}} */ const links = { airlines: [], meta: [], otas: [] }; __webpack_require__(9); /** * Registers a link * @param {keyof links} type * @param {(itin: typeof currentItin) => { url: string, title: string, desc?: string, nth?: number, extra?: string }} factory */ function registerLink(type, factory) { links[type].push(factory); } function printLinksContainer() { // do nothing if editor mode is active if (Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtargets */ "d"])("editoritem").length > 0) { return false; } // empty outputcontainer if (document.getElementById("powertoolslinkcontainer") != undefined) { const div = document.getElementById("powertoolslinkcontainer"); div.innerHTML = ""; } // S&D powertool items const elems = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtargets */ "d"])("powertoolsitem"); for (let i = elems.length - 1; i >= 1; i--) { elems[i].parentElement.removeChild(elems[i]); } for (let group in links) { const groupLinks = links[group] .map(link => link(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"])) .sort((a, b) => { return a.title.localeCompare(b.title); }); groupLinks.forEach(link => { if (!link) return; if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { printUrlInline(link.url, link.title, link.desc, link.nth, link.extra); } else { printUrl(link.url, link.title, link.desc, link.extra); } }); _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableDeviders == 1 && links[group].length && printSeperator(); } printGCM(); printWheretocredit(); /*** attach JS events after building link container ***/ bindLinkClicks(); } function printGCM() { var url = ""; // Build multi-city search based on segments // Keeping continous path as long as possible for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + "-"; if (j + 1 < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + 1].orig ) { url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } else { url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ";"; } } } if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { printImageInline( "http://www.gcmap.com/map?MR=900&MX=182x182&PM=*&P=" + url, "http://www.gcmap.com/mapui?P=" + url ); } else { printUrl("http://www.gcmap.com/mapui?P=" + url, "GCM", ""); } } function printWheretocredit() { var extra = '<span id="wheretocredit-container" style="display: none;"> <img src="data:image/gif;base64,R0lGODlhIAAgAMQAAKurq/Hx8f39/e3t7enp6Xh4eOHh4d3d3eXl5dXV1Wtra5GRkYqKitHR0bm5ucnJydnZ2bS0tKGhofb29sHBwZmZmZWVlbGxsb29vcXFxfr6+s3NzZ2dnaampmZmZv///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQECgAAACwAAAAAIAAgAAAF/+AnjiR5ecxQrmwrnp6CuTSpHRRQeDyq1qxJA7Ao7noxhwBIMkSK0CMSRVgCEx1odMpjEDRWV0Ji0RqnCodGM5mEV4aOpVy0RBodpHfdbr9HEw5zcwsXBy88Mh8CfH1uKwkVknMOASMnDAYjjI4TGiUaEZKSF5aXFyucbQGPIwajFRyHTAITAbcBnyMPHKMOTIC4rCQOHL0VCcAiGsKmIgDGxj/AAgED184fEtvGutTX4CQd29vetODXJADkEtNMGgTxBO4Y7BDKHxPy8yR4Hf8Z8A1AQBBBNgT//gHQxGQCAgMGCE6wgaEDgIsUsrWABxFilRIHLop8oBEUgQMHOnaWnJBB5IULDxC0CGAAAsqUH1cQcPDyZQQHDQwEEFBrgIEESCHYNDCxhQGeFyL8dICBAoUMDzY0aIA0gc2SJQxQkOqgbNWrD7JuRXoArM4NZamexaqWK1NlGgw8oGoVbdYNBwaYAwbvQIMHWBtAEPoHn+PHj0MAACH5BAQKAAAALAEAAAAeAB8AAAX/4CeOZGme6CiIw0AYwfBpIp2W2nRQ0SUBnQsmQfgcOpNbLRHhVCyMBSPKqAAiEg9DiXBwFpWFxbIomxkFhccjOwkgF8uzEiZTy+m154IyAJx0YBI/ABUSCwUFeh4FNiQDHXQcch1DMAYDEA55iwcmGIYcThEHbSoRnHodKyICBoMSXw4ErCMTDQyLegVFIhMUsBwASSYBHQqKaXkKDqwEAMGeKBsHDg0ZGBsVDhYQNG8SHR0SzUqtH0lJAisaD+IdAAm15jMfAhoa9xTw8Aj0KhMCBhTwCx6AC6boERQ4gSAFABAjJDS3UOC9DBcyRuj1j2AAiwI2ZMx4YJ6SHAFSrDY00iNChAyOzE1IqZKFA5cRHCAwiUIDzZQ2QuZ04OBBAIoxWgwIUIsA0acbiLnxSUDpAKn2EjjAgIEChgcD8pFYN5OAWRdMSwR4QKFtBgoZDhBQmXIAgrtmq8YcMYAt3AeAEyQ4cMCAgcIG8BLAqpZtBsAbNjQQDIGwYcNXeZLQkADwA8mTE1QufADB1X8EIHRusEHw4MJz1/1DF+DF5btXxc7enCPHCs0jQgAAIfkEBAoAAAAsAQABAB8AHgAABf/gJ47kGBBBMH1C6b4j8UTX1QFOBg1wHySXSkVSsQgXwssm0OrFKACJlMMRCi2WBedyaMIEhoh0TMUWsdmFJKHpGWydjrQoAQA4koVez1h7SQQON3EcHRgHAQMEBAkUeXtaBn8fEw92doYGJS0Tb5AMFwEkAgcRlwAUTF8DDhYMehWHCZwZNReook6UGAwMBb8LBSuBNQARCLoiBBi/Cgoe0A0fEBHVFw9tTgeCDM/P0AUCGhvVEQ6augkM0OzsEuIPDvIOPLqdBe3sGZQZ8xm5ySZI+AaORyUHGHIADJiB4AIR4zBQoIBhYTINBwo8u9CkwUSKyJKNguALwwgDFDKfZKAwSyTENhA21KOU8oFNiz0ETNj5QYMXAQls2jywQpe4nTsF/CHQ4MGGDQ0MTJg0CinSSRMOOG3QIIGBANlKaJiQAqlPFxMScE3A9gCKCRrikk1RVgVVEQEgdE0A4cABAwgIKBI8gK6KsC4EBDjAtu9fA4AJFy571skEBAf6Qo68aIDnwyKVBkCwGXLgznZdjhibqLNnuKoTs1BaOVkIACH5BAQKAAAALAEAAQAfAB4AAAX/4CeOpPBN6BCQbOt+AZJkWOTcD/LuwnRkF4Ck05EYKxVAYrUjETYOgBRALBolHIlD1xQgKJFLkGq9cjgVS+eg2REol/A46IhILBU0siJJuAQDGTdyERsHAyoBBxh3ewsSBi0TCTd1ETkTHyYkBhF7aRFMIwiCGDcbAZstAgEOSBZ4DaoCGxS2DhuZTTARsBYLAKIBtrYYBLsjBhwLzBUQmwYUGRkUssgiGg7MzBkjCQ8P1MfXIgkVzAwXmRrf4A+65ATnzB0rkw8bDwnwTQMmEx0YMOOwgt2GBhv2IRMQ5qCEBRYYdDim4UCDiwp3CQCgoICFAgUYMADQRoCBBglSqQ64BsGDSw8dCyyA0IZAypQIVO3QUOAlTJgVugWAkAAChAOieHTw6bObBgNGDxwg0GbXA6ZAdSmSasDAgKo7AvR8WSBCCQIHuhpAMIDfCAECNEywQDYBWBETEKhFgIBAgAlw4WqQO/gCTAupXORd25cAogB/UUj+QEHguD8TCDR2nAiy5AkaBhxCFpoA586fUcAl12MAZ8iwUQzWSU4u7MgaVpN7EVj3rhAAIfkEBAoAAAAsAQAAAB8AHwAABf/gJ47kKJRoqn7aFwTEEGvaua6BkTwU5VCYB2Qwsd1Mhw0l4rg4ARcAwNEYGG8Bpc/hiESeUkkncpgcCbweBuN9dqSdDgewMacEhM0jkwE6+ns+AGJxYhsqAQ0PixkYFAcIEwEaMgkOABwSmhwHVywHD3o8CRMtJRMDGx2aEhUdASUDDQ0begdHiRWZrQ+mLAazswe+KwIUuhwVAAQjARAJ0AmwRyIBABXYHAkjA8/QBp43D9gVCxQnAggQ6xDT1CIGrdgXsBoIB/gGdu8uHRbYr1jcy0eMmrUFFSxIYJbugIGH+95NALDAwoKFH/A8NBCJn4gBEixYDChgwEMECAK1hCvhLoHFBQsu2JnAEUGMlSMIkIwAE+Y5ERoICBUaEcWFAhQmEHhZEYIJGDEGWFEhoIAHBhQo9gQQMWjUAZPCIfBAlkGBcjATeAogFWyAUgKuXCBLtgCDBQwuFMzI1u1buHE1WCWrQEGBBQAQqNDwovFfuBDoElbAwMANDZJeTNgMt4NkuhYs3xCw+XEpBAUUfPaA9B0NzpsfpLarwMJhBkWLCaBBI0CGA1U4Trjl0YQRdEdCAAAh+QQECgAAACwBAAAAHgAgAAAF/+AnjmRpnmiqrqMQGFDzZE9zEBpLasOxbY8ZZYhxPAw51sSQaDSAQgqm6HBsCKvAIdF8BjPEqiMSoRhSWgi3CwRLq+TLxXE2LQ8QNdcwmAhcBg1jcnIOWCQCBAYHjBAGASgID3IAlRkTJC8GizdJKAEPlaIHLYqbBjgsARSiHRhJEwgImwiYOgYAHbodCCIBsrIDOiMZux0NIgMEywS2wxAS0RIYycypwx8D0hIAyQPfAwLYHxrbHd7g4tgaHBzSvuAB6sMD7e3dHwH6+p46CRUV2jkQMWFfAGc6HAAM+ECEBoN+hh3gsLBCHQEFJ2jUMG+EnEwXKkbwpEGjSY4jDHMw8HBhRAAHFiwsTIDI5EaUGBR4YCniwIUFMWM6QPgB40kNBFbu9HAsgoUFUGN2qFPCqAYNDnQu9VAAqlegEmiiEIBU6VauX6F2EJsikdmtXb9GoLpCQNazcRcAaECUxYC3BQBQONBv3IecO1saRvGXJ4sQACH5BAQKAAAALAEAAQAeAB8AAAX/4CeO5CdoU4qaZesKwjQgyGHYxhC4vBkQt0Ni2GhsGgmDoEeSIQxByDBhfFgbu15s9oRChNTNxpqhUBA9zYBAg7qhQ+ujbFa2BGsCG0HQTVBODxR0GBkELQEDinoDfy0oCRgUGBgODxMkaoprARpMH5GVDg4HSyYTAYk6pkwTDaMOERSYHxqpt56fIgEYEb4OBiK2t7S6Ig2+vg0wqLjGIwgRF9OzMSkprMYBDgAXAA4B1tfZuhMYAOgRA+LYz7sOHejg7BPknwEX8d87Kxr2nwYAdBiIAdMSNDBqKWQiIIMECR0kPFgi4MBDDg8kOsDQAEOuFgMiPgRwYESCAgoKp3hI6UFlh5ItJkSwcDFCFhEMPOjc6YHBrBJ4KFjg8FBCgmwPeK5UAGBApgAGMFSoQLTChWIiJihQWqBDkhxCKEioYGEqhw6HWlTYqSAlAw4LInaAu2Dq1A4QeEBgW2DBAgZ//da1u+DC0R5bCxQALLixBQsMJDhA8G/EBQ8SKklgAFlwhQUSIiQIp8tBgw8BDmxw4A2ArwwGOrmjtSTABAI/DLpj+CwEACH5BAQKAAAALAAAAQAfAB8AAAX/4CeOJKlpgqB9Qum+oxYMNGEPwQrDwjTbBATCQDQgBqidyUcbAIfEA+RgCLR2Kl9gVoMaDlJIAjK4vjTabY1AE4Ih4kZiwPOlt5PUaWYQJxpyViU9E4V4OoMTBn8NGw8HEyVohZRmZwaNjhsIJCmUE0lKHxMHD6YPDWYqo4WWSgGnGRQBI7ANLIiiLBAUGbIHIxQFDKm6JQMYFMrFAhEeCgUJkcYiE8oUGA/TCx7dCg6CxrAOGA4PtAEF3d4WtMYTGQ7yFJEP6/fR06/y8hmRHffuMdigy4CDCBEubEChztszBh0wAFOiYcMFhBESfICwTgG0Ag7o6EKQ8MIFBwhSohRYwKDAMAbgXLkIQAEAgAsA6Img8oDDApYLLhCQKUIATZs2IxywFMABg58/AUCI5MoAhg4dkGobhEAC1J8VHDRAwGYABAcSOGAF0MEBARgHJDz9yqGCTQ4WKkiQgLVDBANYIHT4aaFw3sIcOOxd/JcoCYM+C1eYXCGxYr4U3urqkSBC3QWT80qYHGEqtVoGHmDAidDBBs2nO7GagCO2bVEhAAAh+QQECgAAACwAAAEAHwAeAAAF/+AnjuQonGepruWpTVMgB5PG3p8Lz8HgE4OJAEc6wY4xmW9AAE6InwBk8Dryfk0EQXgbWAqOD9K6JCAQBsRTJQhYFB5AraZBCWKDs2FvWI80CQUegww1QysaeXwHBDYjDoKDHgoERAIDeweaAyIaFXCSgxhQAgSaEBAGNhuhoRyOOBMGqKgBHw8VggqgHgV+N6UJwgmVAgZfBbweDVBREMINqjkXDAwFBRYMCh2wNxMJDeEQNgMdDBYLHOEOF90s3xsNGwk2ExIMCwwSth+cUN8PNjxI8GRChwUIFyBoNmLCg4cDC0bAt8ACM4b9KGR4mODQg4QLIrgDlkBjBgoHRq8cqJCwQspmAyjIlMkvCoCK6C74i7XBwcwNh3IkqGDBQoUKDgYEbRGggQMHGBxkMFBiggOjRytEoKpiAoIHESI8ddDglwgEB7Na4OBgyhIIYC9cEOtT6YoDHbJW4EBUwgUHAC4ACDz3AoWFLIwBMMqBg4THjzt0GCw3wuGlKwhgkOAYsuTJgwE4eEAA87sEF4567iAhcIYDXDB+ILAhqoMIGDIkMFBTNokJQWDkwBECACH5BAQKAAAALAAAAQAfAB4AAAX/4CeOo/BN5yesK+m+4uRAFJVdTpVo2sS3MFegoPAUjB6P4tKbOJ3A4CexSFqTBUPTGQhApSqJoniV+J7c7sQEEyQsxKsnIeD1unhv0MCxMI5WBWsqdRN4A4goLhMXDAsLRGQdLiuGiJdsIw2PC35wSRBtE5cEBAGZEwCOjxEQHQoFGlIBBAOlA7IiBxWcFgYfBgsAYAK2pQSKHw8WnBcmAg8DYB8BCNYGA88OFswWDSO5YBMECAYGBLKM3BYcv9MkGuXmCLIBAJ0WEgTv8AgH5gZQpFpQgR0CfiX8HfiHQkOEChArHEAoQoOBAxD+ydJAISKHDZneBYBAEoKBZ28iuwJI9s5AgpcJ9okgAKACB4gJEAaA+TLAiAkUOHCQUEHfuwkQGihtcCCcAAIShkqwcEGLlAkJHmzYoFSaiwdFJXSQECEmyx4EHlB4wPbBgZAxIkiVIAEABabkECR1YCMD2wQ+YQxwMLaD4Q4XIkSgEAHD4hoZMmzw2oYABbEdAGgGcCGxAwcYMNTYEBhMgAYRMmvurPgz3ww7KCLY4CAx5wgXMDh4EJOiiBUDDijV2iABNpa+K/o4hQKuixAAOw==" style="width: 1em; height: 1em;"></span>'; var container; if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { printUrlInline("javascript: void(0);", "wheretocredit.com", "", 1, extra); container = getSidebarContainer(1); } else { printUrl("javascript: void(0);", "wheretocredit.com", "", extra); container = document.getElementById("powertoolslinkcontainer"); } var links = container.getElementsByTagName("a"); var link = links[links.length - 1]; link.target = "_self"; link.innerHTML = "Calculate miles with wheretocredit.com"; } function bindLinkClicks() { var container; var linkid = 0; if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) { container = getSidebarContainer(1); } else { container = document.getElementById("powertoolslinkcontainer"); } var links = container.getElementsByTagName("a"); /* if (typeof(currentItin.itin[0].dep.offset)==="undefined") { links[linkid].onclick=function () { resolveTimezones(); }; linkid++; } */ if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode != 1) { linkid = links.length - 1; } links[linkid].onclick = function() { links[linkid].onclick = null; openWheretocredit(links[linkid]); }; } function openWheretocredit(link) { var container = document.getElementById("wheretocredit-container"); container.style.display = "inline"; var itin = { ticketingCarrier: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers.length == 1 ? _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers[0] : null, baseFareUSD: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].basefares + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].surcharges, segments: [] }; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { itin.segments.push({ origin: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig, destination: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest, departure: new Date( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day ), carrier: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier, bookingClass: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass, codeshare: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].codeshare, flightNumber: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr }); } } var xhr = new XMLHttpRequest(); xhr.open("POST", "https://www.wheretocredit.com/api/beta/calculate"); xhr.setRequestHeader("Accept", "application/json;charset=UTF-8"); xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { link.href = "https://www.wheretocredit.com"; link.target = "_blank"; link.innerHTML = "Data provided by wheretocredit.com"; var data, result, temp; try { data = JSON.parse(xhr.responseText); } catch (e) { data = xhr.responseText; } if ( xhr.status === 200 && data && data.success && data.value && data.value.length && data.value[0].success ) { data.value[0].value.totals.sort(function(a, b) { if (a.value === b.value) { return +(a.name > b.name) || +(a.name === b.name) - 1; } return b.value - a.value; // desc }); result = document.createElement("div"); temp = data.value[0].value.totals.map(function(seg, i) { return ( parseInt(seg.value) .toString() .replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " " + seg.name + " miles" ); }); for (var i = 0; i < temp.length; i++) { result.appendChild(document.createTextNode(temp[i])); result.appendChild(document.createElement("br")); } result.removeChild(result.lastChild); } else { result = data.errorMessage || data || "API quota exceeded :-/"; result = document.createTextNode(result); } container.style.display = "block"; container.innerHTML = ""; container.appendChild(result); } }; xhr.send(JSON.stringify([itin])); } function validatePaxcount(config) { //{maxPaxcount:7, countInf:false, childAsAdult:12, sepInfSeat:false, childMinAge:2} var tmpChildren = new Array(); // push cur children for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].cAges.length; i++) { tmpChildren.push(_settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].cAges[i]); } var ret = { adults: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].adults, children: new Array(), infLap: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsLap, infSeat: 0 }; if (config.sepInfSeat === true) { ret.infSeat = _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsSeat; } else { for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsSeat; i++) { tmpChildren.push(config.childMinAge); } } // process children for (var i = 0; i < tmpChildren.length; i++) { if (tmpChildren[i] < config.childAsAdult) { ret.children.push(tmpChildren[i]); } else { ret.adults++; } } // check Pax-Count if (config.countInf === true) { if ( config.maxPaxcount < ret.adults + ret.infLap + ret.infSeat + ret.children.length ) { console.log("Too many passengers"); return; } } else { if (config.maxPaxcount < ret.adults + ret.infSeat + ret.children.length) { console.log("Too many passengers"); return; } } if (0 === ret.adults + ret.infSeat + ret.children.length) { console.log("No passengers"); return; } return ret; } // Inline Stuff function printUrlInline(url, text, desc, nth, extra) { var otext = '<a href="' + url + '" target="_blank">'; var valid = false; if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language] !== undefined) { if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["openwith"] !== undefined) { otext += _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["openwith"]; valid = true; } } otext += valid === false ? "Open with" : ""; otext += " " + text + "</a>" + (extra || ""); printItemInline(otext, desc, nth); } function printItemInline(text, desc, nth) { const div = getSidebarContainer(nth); div.innerHTML = div.innerHTML + '<li class="powertoolsitem">' + text + (desc ? "<br/><small>(" + desc + ")</small>" : "") + "</li>"; } function printImageInline(src, url, nth) { const div = getSidebarContainer(nth).parentElement; if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableIMGautoload == 1) { div.innerHTML = div.innerHTML + (url ? '<a href="' + url + '" target="_blank" class="powertoolsitem">' : "") + '<img src="' + src + '" style="margin-top:10px;"' + (!url ? ' class="powertoolsitem"' : "") + "/>" + (url ? "</a>" : ""); } else { var id = Math.random().toString(); div.innerHTML = div.innerHTML + '<div id="' + id + '" class="powertoolsitem" style="width:184px;height:100px;background-color:white;cursor:pointer;text-align:center;margin-top:10px;padding-top:84px;"><span>Click</span></div>'; document.getElementById(id).onclick = function() { var newdiv = document.createElement("div"); newdiv.setAttribute("class", "powertoolsitem"); newdiv.innerHTML = (url ? '<a href="' + url + '" target="_blank">' : "") + '<img src="' + src + '" style="margin-top:10px;"' + (!url ? ' class="powertoolsitem"' : "") + "/>" + (url ? "</a>" : ""); document .getElementById(id) .parentElement.replaceChild(newdiv, document.getElementById(id)); }; } } function getSidebarContainer(nth) { var div = !nth || nth >= 4 ? document.getElementById("powertoolslinkinlinecontainer") : Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader, nth).nextElementSibling; return div || createUrlContainerInline(); } function createUrlContainerInline() { var newdiv = document.createElement("div"); newdiv.setAttribute("class", _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv); newdiv.innerHTML = '<div class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader + '">Powertools</div><ul id="powertoolslinkinlinecontainer" class="' + _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcLinkList + '"></ul>'; Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv, 1).parentElement.appendChild( newdiv ); return document.getElementById("powertoolslinkinlinecontainer"); } // Printing Stuff function printUrl(url, name, desc, extra) { if (document.getElementById("powertoolslinkcontainer") == undefined) { createUrlContainer(); } var text = '<div style="margin:5px 0px 10px 0px"><label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize) + '%;font-weight:600"><a href="' + url + '" target=_blank>'; var valid = false; if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language] !== undefined) { if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"] !== undefined) { text += _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"]; valid = true; } } text += valid === false ? "Use " : ""; text += " " + name + "</a></label>" + (extra || "") + (desc ? '<br><label style="font-size:' + (Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize) - 15) + '%">(' + desc + ")</label>" : "") + "</div>"; var target = document.getElementById("powertoolslinkcontainer"); target.innerHTML = target.innerHTML + text; } function createUrlContainer() { var newdiv = document.createElement("div"); newdiv.setAttribute("id", "powertoolslinkcontainer"); newdiv.setAttribute("style", "margin:15px 0px 0px 10px"); Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])( _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.htbContainer, 1 ).parentElement.parentElement.parentElement.appendChild(newdiv); } function printSeperator() { var container = document.getElementById("powertoolslinkcontainer") || getSidebarContainer(); if (container) { container.innerHTML = container.innerHTML + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode ? '<hr class="powertoolsitem"/>' : "<hr/>"); } } /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return reset; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCabin; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getForcedCabin; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); // General settings const appSettings = { scriptEngine: typeof GM === "undefined" || typeof GM.info === "undefined" ? 0 : 1, // 0 - console mode, 1 - tamper or grease mode itaLanguage: "en", version: "0.42.6", retrycount: 1, laststatus: "", scriptrunning: 1, cabin: "Auto" }; function reset() { // reset Notification due to pagechange Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* clearNotification */ "a"])(); // reset Editor Mode document.getElementById("mptStartparse").setAttribute("class", "invis"); document.getElementById("mptStartparse").style.display = "none"; appSettings.itaLanguage = "en"; appSettings.retrycount = 1; } function getCabin(autoCabin) { return appSettings.cabin === "Auto" ? autoCabin : getForcedCabin(); } function getForcedCabin() { switch (appSettings.cabin) { case "Y": return 0; case "Y+": return 1; case "C": return 2; case "F": return 3; default: return 0; } } /* harmony default export */ __webpack_exports__["a"] = (appSettings); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findTargetSetVersion; }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); // ITA Matrix CSS class definitions: const itaSettings = [ { startpage: { maindiv: "KIR33AB-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "KIR33AB-v-d", //Container with headline: "Itinerary" itinRow: "KIR33AB-j-i", // TR in itin with Orig, Dest and date milagecontainer: "KIR33AB-v-e", // TD-Container on the right rulescontainer: "KIR33AB-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "KIR33AB-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "KIR33AB-k-g", // Left column in the "how to buy"-container htbRight: "KIR33AB-k-f", // Class for normal right column htbGreyBorder: "KIR33AB-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "KIR33AB-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "KIR33AB-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "KIR33AB-y-c" // Right menu ul list class (immediately following header) } }, { startpage: { maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice }, resultpage: { itin: "IR6M2QD-v-d", //Container with headline: "Itinerary" itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date milagecontainer: "IR6M2QD-v-e", // TD-Container on the right rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X:) htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div) htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container htbRight: "IR6M2QD-k-f", // Class for normal right column htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger) //inline mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info) mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.) mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header) } } ]; const classSettings = itaSettings[0]; function findTargetSetVersion(classSelector, nth) { for (let setting of itaSettings) { const className = classSelector(setting); const target = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* findtarget */ "c"])(className, nth); if (target) { console.log(`ITA Version detected: ${className}`); Object.assign(classSettings, setting); return target; } } } /* harmony default export */ __webpack_exports__["a"] = (classSettings); /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // initialize local storage for passenger details /* harmony default export */ __webpack_exports__["a"] = ({ adults: 1, infantsLap: 0, infantsSeat: 0, cAges: new Array() }); /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAmadeusUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmadeusPax; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAmadeusTriptype; }); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); // **** START AMADEUS **** function getAmadeusUrl(config) { config = config || { sepcabin: 1, detailed: 0, inctimes: 1, enablesegskip: 1, allowpremium: 1 }; config.sepcabin = config.sepcabin === undefined ? 1 : config.sepcabin; config.detailed = config.detailed === undefined ? 0 : config.detailed; config.inctimes = config.inctimes === undefined ? 1 : config.inctimes; config.enablesegskip = config.enablesegskip === undefined ? 1 : config.enablesegskip; config.allowpremium = config.allowpremium === undefined ? 1 : config.allowpremium; var curleg = 0; var lastcabin = 0; var curseg = 0; var lastdest = ""; var maxcabin = 0; var url = ""; var lastarrtime = ""; var cabins = ["E", "N", "B", "F"]; cabins[1] = config.allowpremium != 1 ? cabins[0] : cabins[1]; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) { curseg = 3; // need to toggle segskip on first leg lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[0].cabin; // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 || config.enablesegskip == 0 ) break; k++; } curseg++; if ( curseg > 3 || (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin != lastcabin && config.sepcabin == 1) ) { if (lastdest != "") { //close prior flight url += "&E_LOCATION_" + curleg + "=" + lastdest; url += "&E_DATE_" + curleg + "=" + lastarrtime; } curseg = 1; curleg++; url += "&B_LOCATION_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_ANY_TIME_" + curleg + "=FALSE"; url += "&B_DATE_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&CABIN_" + curleg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += "&ALLOW_ALTERNATE_AVAILABILITY_" + curleg + "=FALSE"; url += "&DATE_RANGE_VALUE_" + curleg + "=0"; } lastarrtime = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "") ).slice(-4) : "0000"); if (config.detailed === 1) { url += "&B_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&B_DATE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + (config.inctimes == 1 ? ( "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "") ).slice(-4) : "0000"); url += "&E_LOCATION_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_LOCATION_CITY_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&E_DATE_" + curleg + "_" + curseg + "=" + lastarrtime; } url += "&AIRLINE_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&FLIGHT_NUMBER_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&RBD_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&FARE_CLASS_" + curleg + "_" + curseg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].farebase; lastdest = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest; lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin > maxcabin) maxcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; j += k; } } url += "&E_LOCATION_" + curleg + "=" + lastdest; // push final dest url += "&E_DATE_" + curleg + "=" + lastarrtime; // push arr time url += "&CABIN=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? maxcabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + ""; // push cabin return url; } function getAmadeusPax(pax, config) { config = config || { allowinf: 1, youthage: 0 }; config.allowinf = config.allowinf === undefined ? 1 : config.allowinf; config.youthage = config.sepyouth === undefined ? 0 : config.sepyouth; var tmpPax = { c: 0, y: 0 }; var curPax = 1; var url = "&IS_PRIMARY_TRAVELLER_1=True"; for (let i = 0; i < pax.children.length; i++) { if (pax.children[i] >= config.youthage && config.youthage > 0) { tmpPax.y++; } else if (pax.children[i] >= 12) { pax.adults++; } else { tmpPax.c++; } } for (let i = 0; i < pax.adults; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=" + (i < pax.infLap && config.allowinf == 1 ? "True" : "False"); url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } for (let i = 0; i < tmpPax.y; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=ADT"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=True"; curPax++; } for (let i = 0; i < tmpPax.c; i++) { url += "&TRAVELLER_TYPE_" + curPax + "=CHD"; url += "&HAS_INFANT_" + curPax + "=False"; url += "&IS_YOUTH_" + curPax + "=False"; curPax++; } return { url: url, adults: pax.adults, youth: tmpPax.y, children: tmpPax.c, infants: pax.infLap }; } function getAmadeusTriptype() { return _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 1 ? _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig ? "R" : "M" : "O"; } // **** END AMADEUS **** /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // Supported translations for the PowerTools interface: const de = { use: "Öffne ", resultpage: { "Dep:": "Abflug:", "Arr:": "Ankunft:", "Layover in": "Umst. in", " to ": " nach ", "Mon,": "Mo.,", "Tue,": "Di.,", "Wed,": "Mi.,", "Thu,": "Do.,", "Fri,": "Fr.,", "Sat,": "Sa.,", "Sun,": "So.,", " Jan ": " Januar ", " Feb ": " Februar ", " Mar ": " Mä,rz ", " Apr ": " April ", " May ": " Mai ", " Jun ": " Juni ", " Jul ": " Juli ", " Aug ": " August ", " Sep ": " September ", " Oct ": " Oktober ", " Nov ": " November ", " Dec ": " Dezember ", "OPERATED BY ": "Durchgefü,hrt von " } }; /* harmony default export */ __webpack_exports__["a"] = ({ de }); /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { const req = __webpack_require__(10); const modules = req.keys().map(req); module.exports = modules; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./airlines/aa.js": 11, "./airlines/aaC1.js": 12, "./airlines/ac.js": 13, "./airlines/af.js": 14, "./airlines/as.js": 15, "./airlines/az.js": 16, "./airlines/ba.js": 17, "./airlines/cz.js": 18, "./airlines/dl.js": 19, "./airlines/ib.js": 20, "./airlines/kl.js": 21, "./airlines/la.js": 22, "./airlines/lh.js": 23, "./airlines/lx.js": 24, "./airlines/oa.js": 25, "./airlines/ps.js": 26, "./airlines/qf.js": 27, "./airlines/tk.js": 28, "./index.js": 9, "./meta/kayak.js": 29, "./meta/momondo.js": 30, "./meta/skyscanner.js": 31, "./otas/cheapoair.js": 32, "./otas/etraveli.js": 33, "./otas/expedia.js": 34, "./otas/priceline.js": 35 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 10; /***/ }), /* 11 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const aaEditions = [ { value: "en_AU", name: "Australia" }, { value: "en_BE", name: "Belgium" }, { value: "en_CN", name: "China" }, { value: "en_DK", name: "Denmark" }, { value: "en_FI", name: "Finland" }, { value: "en_FR", name: "France / English" }, { value: "fr_FR", name: "France / French" }, { value: "en_DE", name: "Germany / English" }, { value: "de_DE", name: "Germany / Deutsch" }, { value: "en_GR", name: "Greece" }, { value: "en_HK", name: "Hong Kong" }, { value: "en_IN", name: "India" }, { value: "en_IE", name: "Ireland" }, { value: "en_IL", name: "Israel" }, { value: "en_IT", name: "Italy" }, { value: "en_JP", name: "Japan" }, { value: "en_KR", name: "Korea" }, { value: "en_NL", name: "Netherlands" }, { value: "en_NZ", name: "New Zealand" }, { value: "en_NO", name: "Norway" }, { value: "en_PT", name: "Portugal" }, { value: "en_RU", name: "Russia" }, { value: "en_ES", name: "Spain / English" }, { value: "es_ES", name: "Spain / Spanish" }, { value: "en_SE", name: "Sweden" }, { value: "en_CH", name: "Switzerland" } ]; function printAA() { var createUrl = function(edition) { var url = "http://i11l-services.aa.com/xaa/mseGateway/entryPoint.php?PARAM="; var search = "1,,USD0.00," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + ","; var legs = new Array(); var leg = ""; var segs = new Array(); var seg = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg segs = new Array(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } seg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset == "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + ","; seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; // NO , here! segs.push(seg); j += k; } search += segs.length + "," + segs.join() + ","; //build leg structure leg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + ","; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + ",,"; leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + ","; // USE , here! legs.push(leg); } search += "DIRECT,"; search += edition[0].toUpperCase() + ","; // Language search += "3,"; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAA"); return; } search += pax.adults + ","; // ADT search += pax.children.length + ","; // Child search += pax.infLap + ","; // Inf search += "0,"; // Senior search += edition[1].toUpperCase() + ","; // Country // push outer search search += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + "," + legs.join(); url += encodeURIComponent(search); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid AA-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aaEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "Europe/Asia/Pacific", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])( "American (Europe/Asia/Pacific)", "aaEdition", aaEditions, "en_DE" ); /***/ }), /* 12 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const aac1Editions = [ { value: "CA", name: "Canada" }, { value: "US", name: "United States" }, { value: "GB", name: "United Kingdom" } ]; function printAAc1() { var dateToEpoch = function(y, m, d) { var dateStr = y + "-" + ("0" + m).slice(-2) + "-" + ("0" + d).slice(-2) + "T00:00:00-06:00"; return Date.parse(dateStr); }; // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function(edition) { var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 6, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAAc1"); return false; } var url = "https://www.aa.com/goto/metasearch?ITEN=GOOGLE,,"; url += (edition || "US") + ","; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === 1) { url += "oneWay"; } else { url += "multi"; } url += ",4,A" + pax.adults + "S0C" + pax.children.length + "I" + pax.infLap + "Y0L0,0,"; url += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig + ",0," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest; url += ",0"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { url += ",false," + dateToEpoch( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.day ); } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) { url += ",0,0"; } url += "," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + ",1,"; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) { var addon = ""; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { addon += "#" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + "|0|0|"; addon += dateToEpoch( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.year, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.month, _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.day ); } url += encodeURIComponent(addon) + ","; } var itinsegs = new Array(); //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !== _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } var itinseg = "#" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; itinseg += "|" + Date.parse( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "T" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) + ":00" + (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset === "undefined" ? "+00:00" : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) ); itinseg += "|" + i; itinsegs.push(itinseg); j += k; } } url += encodeURIComponent(itinsegs.join("")); return url; }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aac1Edition.toUpperCase()); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += aac1Editions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "American", desc: "America & UK", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAAc1); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("American (America & UK)", "aac1Edition", aac1Editions, "US"); /***/ }), /* 13 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7); const acEditions = [ { name: "Algeria", value: "dz" }, { name: "Antigua", value: "ag" }, { name: "Argentina", value: "ar" }, { name: "Australia", value: "au" }, { name: "Austria", value: "at" }, { name: "Bahamas", value: "bs" }, { name: "Bahrain", value: "bh" }, { name: "Barbados", value: "bb" }, { name: "Belgium", value: "be" }, { name: "Bermuda", value: "bm" }, { name: "Canada", value: "ca" }, { name: "Cayman Islands", value: "ky" }, { name: "Chile", value: "cl" }, { name: "China", value: "cn" }, { name: "Colombia", value: "co" }, { name: "Costa Rica", value: "cr" }, { name: "Croatia", value: "hr" }, { name: "Czech Republic", value: "cz" }, { name: "Denmark", value: "dk" }, { name: "Dominican Republic", value: "do" }, { name: "Egypt", value: "eg" }, { name: "Finland", value: "fi" }, { name: "France", value: "fr" }, { name: "Germany", value: "de" }, { name: "Greece", value: "gr" }, { name: "Haiti", value: "ht" }, { name: "Hong Kong SAR, China", value: "hk" }, { name: "Hungary", value: "hu" }, { name: "India", value: "in" }, { name: "Indonesia", value: "id" }, { name: "Ireland", value: "ie" }, { name: "Israel", value: "il" }, { name: "Italy", value: "it" }, { name: "Jamaica", value: "jm" }, { name: "Japan", value: "jp" }, { name: "Jordan", value: "jo" }, { name: "Kuwait", value: "kw" }, { name: "Malaysia", value: "my" }, { name: "Mexico", value: "mx" }, { name: "Morocco", value: "ma" }, { name: "Mozambique", value: "mz" }, { name: "Netherlands", value: "nl" }, { name: "New Zealand", value: "nz" }, { name: "Nigeria", value: "ng" }, { name: "Norway", value: "no" }, { name: "Panama", value: "pa" }, { name: "Peru", value: "pe" }, { name: "Poland", value: "pl" }, { name: "Portugal", value: "pt" }, { name: "Qatar", value: "qa" }, { name: "Russia", value: "ru" }, { name: "Romania", value: "ro" }, { name: "Saudi Arabia", value: "sa" }, { name: "Singapore", value: "sg" }, { name: "South Africa", value: "za" }, { name: "South Korea", value: "kr" }, { name: "Spain", value: "es" }, { name: "St. Lucia", value: "lc" }, { name: "Sweden", value: "se" }, { name: "Switzerland", value: "ch" }, { name: "Taiwan, China", value: "tw" }, { name: "Thailand", value: "th" }, { name: "Trinidad & Tobago", value: "tt" }, { name: "Turkey", value: "tr" }, { name: "Turks and Caicos Island", value: "tc" }, { name: "Ukraine", value: "ua" }, { name: "United Arab Emirates", value: "ae" }, { name: "United Kingdom", value: "gb" }, { name: "United States", value: "us" }, { name: "Venezuela", value: "ve" }, { name: "Vietnam", value: "vn" } ]; function printAC() { var createUrl = function(edition) { var acUrl = "https://book.aircanada.com/pl/AConline/en/RedirectionServlet?FareRequest=YES&PRICING_MODE=0&fromThirdParty=YES"; acUrl += "&country=" + edition + "&countryOfResidence=" + edition + (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].itaLanguage == "de" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de" ? "&language=de" : "&language=en"); // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_4__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAC"); return; } var paxConfig = { allowinf: 0, youthage: 12 }; // AC does not allow booking of infants for int. flights var amadeusConfig = { sepcabin: 1, detailed: 1, allowpremium: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusPax */ "a"])(pax, paxConfig); acUrl += tmpPax.url; acUrl += "&numberOfAdults=" + tmpPax.adults; acUrl += "&numberOfInfants=" + tmpPax.infants; acUrl += "&numberOfYouth=" + tmpPax.youth; acUrl += "&numberOfChildren=" + tmpPax.children; acUrl += "&tripType=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusTriptype */ "b"])(); for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin.length; i++) { acUrl += "&departure" + (i + 1) + "=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.year + "&org" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].orig + "&dest" + (i + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dest; } acUrl += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusUrl */ "c"])(amadeusConfig); return acUrl; }; var acUrl = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].acEdition.toUpperCase()); if (!acUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += acEditions .map(function(edition, i) { return ( '<a href="' + createUrl(edition.value.toUpperCase()) + '" target="_blank">' + edition.name + "</a>" ); }) .join("<br/>"); extra += '<br/><a href="javascript:addACPromo();">Add Promo Code</a>'; extra += "</span></span>"; extra += addACPromoControls(acUrl); return { url: acUrl, title: "Air Canada", extra }; } function addACPromoControls(url) { var script = document.createElement("script"); script.appendChild(document.createTextNode("(" + addACPromo + ")();")); (document.body || document.head || document.documentElement).appendChild( script ); var label = "Open"; if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language] !== undefined) { if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"] !== undefined) { label = _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"]; } } var extra = '<input type="input" id="ac-promo-input" size="8" style="display:none;margin:0 5px;"></input>'; extra += '<label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].linkFontsize) + '%;">'; extra += '<a id="ac-promo-link" style="display:none" target="_blank" href="' + url + '">' + label + "</a></label>"; return extra; } function addACPromo() { window.addACPromo = function() { var input = document.getElementById("ac-promo-input"); input.style.display = "inline"; input.addEventListener("change", event => { var replacement = event.target.value != "" ? "&AUTHORIZATION_ID=" + event.target.value : ""; var link = document.getElementById("ac-promo-link"); var match = link.href.match(/(&AUTHORIZATION_ID=.*)/g); if (match == null) { link.href += replacement; } else { link.href = link.href.replace(match, replacement); } }); var link = document.getElementById("ac-promo-link"); link.style.display = "inline"; }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_4__[/* registerLink */ "c"])("airlines", printAC); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air Canada", "acEdition", acEditions, "us"); /***/ }), /* 14 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const afEditions = [ { value: "DE/de", name: "Germany / Deutsch" }, { value: "DE/en", name: "Germany / English" }, { value: "FR/en", name: "France / English" }, { value: "FI/en", name: "Finland / English" }, { value: "FR/fr", name: "France / French" }, { value: "NL/en", name: "Netherlands / English" }, { value: "GB/en", name: "United Kingdom / English" }, { value: "US/en", name: "US / English" } ]; function printAF() { var createUrl = function(edition) { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].orig ) ) { return; } var cabins = ["Y", "W", "C", "F"]; var mincabin = 3; var afUrl = "https://www.airfrance.com/" + edition + "/local/process/standardbooking/DisplayUpsellAction.do?calendarSearch=1&subCabin=MCHER&typeTrip=2"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { if (i == 0) { afUrl += "&from=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig; afUrl += "&to=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest; afUrl += "&outboundDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); afUrl += "&firstOutboundHour=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5); let flights = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { if (j > 0) flights += "|"; flights += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); } afUrl += "&flightOutbound=" + flights; } else if (i == 1) { afUrl += "&inboundDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); afUrl += "&firstInboundHour=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5); let flights = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { if (j > 0) flights += "|"; flights += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } afUrl += "&flightInbound=" + flights; } } afUrl += "&cabin=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAF"); return; } var tmpPax = { c: 0, y: 0 }; for (i = 0; i < pax.children.length; i++) { if (pax.children[i] > 11) { tmpPax.y++; } else { tmpPax.c++; } } var curPax = 0; afUrl += "&nbAdults=" + pax.adults; for (i = 0; i < pax.adults; i++) { afUrl += "&paxTypoList=ADT"; curPax++; } afUrl += "&nbEnfants=" + tmpPax.y; for (i = 0; i < tmpPax.y; i++) { afUrl += "&paxTypoList=YTH_MIN"; curPax++; } afUrl += "&nbChildren=" + tmpPax.c; for (i = 0; i < tmpPax.y; i++) { afUrl += "&paxTypoList=CHD"; curPax++; } afUrl += "&nbBebes=" + pax.infLap; for (i = 0; i < pax.infLap; i++) { afUrl += "&paxTypoList=INF"; curPax++; } afUrl += "&nbPassenger=" + curPax + "&nbPax=" + curPax; return afUrl; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].afEdition; var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += afEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Air France", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printAF); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air France", "afEdition", afEditions, "US/en"); /***/ }), /* 15 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); function printAS() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("AS", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) { return; } // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child var createUrl = function() { var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 6, countInf: true, childAsAdult: 6, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAAc1"); return; } var url = "https://www.alaskaair.com/planbook/shoppingstart?"; url += "A=" + pax.adults + "&C=" + pax.children.length + "&FT="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "ow"; } else { url += "rt"; } var k = 0; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var itinseg = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; itinseg += "|" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "/" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); itinseg += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year; itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|"; itinseg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin ? "f" : "c"; url += "&F" + ++k + "=" + encodeURIComponent(itinseg); } } url += "&DEST=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].seg.length - 1].dest; url += "&FARE=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + "&frm=cart&META=GOO_CS"; return url; }; var url = createUrl(); if (!url) { return; } return { url, title: "Alaska" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAS); /***/ }), /* 16 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const azEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "at_de", name: "Austria / Deutsch" }, { value: "ch_de", name: "Switzerland / Deutsch" }, { value: "fr_fr", name: "France / French" }, { value: "nl_nl", name: "Netherlands / Dutch" }, { value: "it_it", name: "Italy / Italian" }, { value: "ca_en", name: "Canada / Englisch" }, { value: "us_en", name: "US / Englisch" }, { value: "gb_en", name: "GB / Englisch" }, { value: "en_en", name: "International / Englisch" } ]; function printAZ() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers.length == 1 && Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("AZ", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)) ) { return; } var createUrl = function(edition) { var azUrl = "https://www.alitalia.com/" + edition + "/home-page.metasearch.json?SearchType=BrandMetasearch"; var cabins = ["Economy", "Economy", "Business", "First"]; var seg = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { azUrl += "&MetaSearchDestinations[" + seg + "].From=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; azUrl += "&MetaSearchDestinations[" + seg + "].To=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; azUrl += "&MetaSearchDestinations[" + seg + "].DepartureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].ArrivalDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day).slice(-2) + ":" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.time).slice(-5); azUrl += "&MetaSearchDestinations[" + seg + "].Flight=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; azUrl += "&MetaSearchDestinations[" + seg + "].code=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase; azUrl += "&MetaSearchDestinations[" + seg + "].MseType="; azUrl += "&MetaSearchDestinations[" + seg + "].bookingClass=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; azUrl += "&MetaSearchDestinations[" + seg + "].cabinClass=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; azUrl += "&MetaSearchDestinations[" + seg + "].slices=" + i; seg++; } } var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 7, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAZ"); return false; } azUrl += "&children_number=" + pax.children.length + "&newborn_number=" + pax.infLap + "&adult_number=" + pax.adults; return azUrl; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].azEdition; var azUrl = createUrl(edition); if (!azUrl) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += azEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: azUrl, title: "Alitalia", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Alitalia", "azEdition", azEditions, "us_en"); /***/ }), /* 17 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const baEditions = [ { value: "AF", name: "Afghanistan" }, { value: "AL", name: "Albania" }, { value: "DZ", name: "Algeria" }, { value: "AS", name: "American Samoa" }, { value: "AD", name: "Andorra" }, { value: "AO", name: "Angola" }, { value: "AI", name: "Anguilla" }, { value: "AG", name: "Antigua" }, { value: "AR", name: "Argentina" }, { value: "AM", name: "Armenia" }, { value: "AW", name: "Aruba" }, { value: "AU", name: "Australia" }, { value: "AT", name: "Austria" }, { value: "AZ", name: "Azerbaijan" }, { value: "BS", name: "Bahamas" }, { value: "BH", name: "Bahrain" }, { value: "BD", name: "Bangladesh" }, { value: "BB", name: "Barbados" }, { value: "BY", name: "Belarus" }, { value: "BE", name: "Belgium" }, { value: "BZ", name: "Belize" }, { value: "BJ", name: "Benin Republic" }, { value: "BM", name: "Bermuda" }, { value: "BT", name: "Bhutan" }, { value: "BO", name: "Bolivia" }, { value: "BA", name: "Bosnia-Herzegovina" }, { value: "BW", name: "Botswana" }, { value: "BR", name: "Brazil" }, { value: "VG", name: "British Virgin Islands" }, { value: "BN", name: "Brunei" }, { value: "BG", name: "Bulgaria" }, { value: "BF", name: "Burkina Faso" }, { value: "BI", name: "Burundi" }, { value: "KH", name: "Cambodia" }, { value: "CA", name: "Canada" }, { value: "CV", name: "Cape Verde" }, { value: "KY", name: "Cayman Islands" }, { value: "CF", name: "Central African Rep" }, { value: "TD", name: "Chad" }, { value: "CL", name: "Chile" }, { value: "CN", name: "China" }, { value: "CX", name: "Christmas Island" }, { value: "CC", name: "Cocos Islands" }, { value: "CO", name: "Colombia" }, { value: "CG", name: "Congo" }, { value: "CK", name: "Cook Islands" }, { value: "CR", name: "Costa Rica" }, { value: "HR", name: "Croatia" }, { value: "CU", name: "Cuba" }, { value: "CY", name: "Cyprus" }, { value: "CZ", name: "Czech Republic" }, { value: "DK", name: "Denmark" }, { value: "DJ", name: "Djibouti" }, { value: "DM", name: "Dominica" }, { value: "DO", name: "Dominican Rep" }, { value: "EC", name: "Ecuador" }, { value: "EG", name: "Egypt" }, { value: "SV", name: "El Salvador" }, { value: "GQ", name: "Equatorial Guinea" }, { value: "ER", name: "Eritrea" }, { value: "EE", name: "Estonia" }, { value: "ET", name: "Ethiopia" }, { value: "FO", name: "Faeroe Is" }, { value: "FK", name: "Falkland Is" }, { value: "FJ", name: "Fiji" }, { value: "FI", name: "Finland" }, { value: "FR", name: "France" }, { value: "GF", name: "French Guyana" }, { value: "PF", name: "French Polynesia" }, { value: "GA", name: "Gabon" }, { value: "GM", name: "Gambia" }, { value: "GE", name: "Georgia" }, { value: "DE", name: "Germany" }, { value: "GH", name: "Ghana" }, { value: "GI", name: "Gibraltar (UK)" }, { value: "GR", name: "Greece" }, { value: "GL", name: "Greenland" }, { value: "GD", name: "Grenada" }, { value: "GP", name: "Guadeloupe" }, { value: "GU", name: "Guam" }, { value: "GT", name: "Guatemala" }, { value: "GN", name: "Guinea" }, { value: "GW", name: "Guinea Bissau" }, { value: "GY", name: "Guyana" }, { value: "HT", name: "Haiti" }, { value: "HN", name: "Honduras" }, { value: "HK", name: "Hong Kong" }, { value: "HU", name: "Hungary" }, { value: "IS", name: "Iceland" }, { value: "IN", name: "India" }, { value: "ID", name: "Indonesia" }, { value: "IR", name: "Iran" }, { value: "IQ", name: "Iraq" }, { value: "IE", name: "Ireland" }, { value: "IL", name: "Israel" }, { value: "IT", name: "Italy" }, { value: "CI", name: "Ivory Coast" }, { value: "JM", name: "Jamaica" }, { value: "JP", name: "Japan" }, { value: "JO", name: "Jordan" }, { value: "KZ", name: "Kazakhstan" }, { value: "KE", name: "Kenya" }, { value: "KI", name: "Kiribati" }, { value: "XK", name: "Kosovo" }, { value: "KW", name: "Kuwait" }, { value: "KG", name: "Kyrgyzstan" }, { value: "LA", name: "Laos" }, { value: "LV", name: "Latvia" }, { value: "LB", name: "Lebanon" }, { value: "LS", name: "Lesotho" }, { value: "LR", name: "Liberia" }, { value: "LY", name: "Libya" }, { value: "LI", name: "Liechtenstein" }, { value: "LT", name: "Lithuania" }, { value: "LU", name: "Luxembourg" }, { value: "MO", name: "Macau" }, { value: "MK", name: "Macedonia" }, { value: "MG", name: "Madagascar" }, { value: "MW", name: "Malawi" }, { value: "MY", name: "Malaysia" }, { value: "MV", name: "Maldives" }, { value: "ML", name: "Mali" }, { value: "MT", name: "Malta" }, { value: "MP", name: "Mariana Islands" }, { value: "MH", name: "Marshall Islands" }, { value: "MQ", name: "Martinique" }, { value: "MR", name: "Mauritania" }, { value: "MU", name: "Mauritius" }, { value: "MX", name: "Mexico" }, { value: "FM", name: "Micronesia" }, { value: "UM", name: "Minor Island" }, { value: "MD", name: "Moldova" }, { value: "MC", name: "Monaco" }, { value: "ME", name: "Montenegro" }, { value: "MS", name: "Montserrat" }, { value: "MA", name: "Morocco" }, { value: "MZ", name: "Mozambique" }, { value: "MM", name: "Myanmar" }, { value: "NA", name: "Namibia" }, { value: "NR", name: "Nauru" }, { value: "NP", name: "Nepal" }, { value: "AN", name: "Netherland Antilles" }, { value: "NL", name: "Netherlands" }, { value: "NC", name: "New Caledonia" }, { value: "NZ", name: "New Zealand" }, { value: "NI", name: "Nicaragua" }, { value: "NE", name: "Niger" }, { value: "NG", name: "Nigeria" }, { value: "NU", name: "Niue" }, { value: "NF", name: "Norfolk Island" }, { value: "NO", name: "Norway" }, { value: "OM", name: "Oman" }, { value: "PK", name: "Pakistan" }, { value: "PA", name: "Panama" }, { value: "PG", name: "Papua New Guinea" }, { value: "PY", name: "Paraguay" }, { value: "KP", name: "Peoples Rep Korea" }, { value: "PE", name: "Peru" }, { value: "PH", name: "Philippines" }, { value: "PL", name: "Poland" }, { value: "PT", name: "Portugal" }, { value: "PR", name: "Puerto Rico" }, { value: "QA", name: "Qatar" }, { value: "CM", name: "Republic Cameroon" }, { value: "RE", name: "Reunion" }, { value: "RO", name: "Romania" }, { value: "RU", name: "Russia" }, { value: "RW", name: "Rwanda" }, { value: "SM", name: "San Marino" }, { value: "SA", name: "Saudi Arabia" }, { value: "SN", name: "Senegal" }, { value: "RS", name: "Serbia" }, { value: "SC", name: "Seychelles" }, { value: "SL", name: "Sierra Leone" }, { value: "SG", name: "Singapore" }, { value: "SK", name: "Slovakia" }, { value: "SI", name: "Slovenia" }, { value: "SB", name: "Solomon Island" }, { value: "SO", name: "Somalia" }, { value: "ZA", name: "South Africa" }, { value: "KR", name: "South Korea" }, { value: "ES", name: "Spain" }, { value: "LK", name: "Sri Lanka" }, { value: "KN", name: "St Kitts and Nevis" }, { value: "LC", name: "St Lucia" }, { value: "VC", name: "St Vincent" }, { value: "SD", name: "Sudan" }, { value: "SR", name: "Suriname" }, { value: "SZ", name: "Swaziland" }, { value: "SE", name: "Sweden" }, { value: "CH", name: "Switzerland" }, { value: "SY", name: "Syria" }, { value: "TW", name: "Taiwan" }, { value: "TJ", name: "Tajikistan" }, { value: "TZ", name: "Tanzania" }, { value: "TH", name: "Thailand" }, { value: "TL", name: "Timor - Leste" }, { value: "TG", name: "Togo" }, { value: "TO", name: "Tonga" }, { value: "TT", name: "Trinidad and Tobago" }, { value: "TN", name: "Tunisia" }, { value: "TR", name: "Turkey" }, { value: "TM", name: "Turkmenistan" }, { value: "TC", name: "Turks Caicos" }, { value: "TV", name: "Tuvalu" }, { value: "VI", name: "US Virgin Islands" }, { value: "US", name: "USA" }, { value: "UG", name: "Uganda" }, { value: "UA", name: "Ukraine" }, { value: "AE", name: "United Arab Emirates" }, { value: "GB", name: "United Kingdom" }, { value: "UY", name: "Uruguay" }, { value: "UZ", name: "Uzbekistan" }, { value: "VU", name: "Vanuatu" }, { value: "VE", name: "Venezuela" }, { value: "VN", name: "Vietnam" }, { value: "WS", name: "Western Samoa" }, { value: "YE", name: "Yemen Republic" }, { value: "ZM", name: "Zambia" }, { value: "ZW", name: "Zimbabwe" } ]; function printBA() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !( Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("IB", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("BA", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) ) ) { return; } var createUrl = function(edition, language) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["M", "W", "C", "F"]; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printBA"); return false; } var tmpPax = { c: 0, y: 0 }; for (i = 0; i < pax.children.length; i++) { if (pax.children[i] > 11) { tmpPax.y++; } else { tmpPax.c++; } } var url = "https://www.britishairways.com/travel/fx/public/" + language + "_" + edition + "?eId=111054&data=F" + pax.adults + tmpPax.y + tmpPax.c + pax.infLap + "LF"; var mincabin = 3; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - fnr has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice( -4 ); url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4); url += cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin]; url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].dest; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && i == 1) { url += "F"; } else { url += "T"; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } url += "&p=EUR6666.66&e=FP&c=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] + "&source=FareQuoteEmail&isEmailHBOFareQuote=false"; return url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += baEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "British Airways", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printBA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("British Airways", "baEdition", baEditions, "US"); /***/ }), /* 18 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); const czEditions = [ { value: "AR-GB", name: "Argentina / English" }, { value: "AU-GB", name: "Australia / English" }, { value: "AZ-GB", name: "Azerbaijan / English" }, { value: "BD-GB", name: "Bangladesh / English" }, { value: "BE-GB", name: "Belgium / English" }, { value: "BR-GB", name: "Brazil / English" }, { value: "KH-GB", name: "Cambodia / English" }, { value: "CA-GB", name: "Canada / English" }, { value: "CA-FR", name: "Canada / French" }, { value: "CN-GB", name: "China / English" }, { value: "DK-GB", name: "Denmark / English" }, { value: "FI-GB", name: "Finland / English" }, { value: "FR-GB", name: "France / English" }, { value: "FR-FR", name: "France / French" }, { value: "GE-GB", name: "Georgia / English" }, { value: "DE-GB", name: "Germany / English" }, { value: "DE-DE", name: "Germany / German" }, { value: "GR-GB", name: "Greece / English" }, { value: "HK-GB", name: "Hong Kong / English" }, { value: "IN-GB", name: "India / English" }, { value: "ID-GB", name: "Indonesia / English" }, { value: "IR-GB", name: "Iran / English" }, { value: "IE-GB", name: "Ireland / English" }, { value: "IT-GB", name: "Italy / English" }, { value: "JP-GB", name: "Japan / English" }, { value: "JO-GB", name: "Jordan / English" }, { value: "KZ-GB", name: "Kazakhstan / English" }, { value: "KE-GB", name: "Kenya / English" }, { value: "KG-GB", name: "Kyrgyzstan / English" }, { value: "MY-GB", name: "Malaysia / English" }, { value: "MV-GB", name: "Maldives / English" }, { value: "MO-GB", name: "Macau / English" }, { value: "MM-GB", name: "Myanmar / English" }, { value: "NP-GB", name: "Nepal / English" }, { value: "NL-GB", name: "Netherlands / English" }, { value: "NZ-GB", name: "New Zealand / English" }, { value: "NO-GB", name: "Norway / English" }, { value: "PK-GB", name: "Pakistan / English" }, { value: "PA-GB", name: "Panama / English" }, { value: "PE-GB", name: "Peru / English" }, { value: "PH-GB", name: "Philippines / English" }, { value: "PT-GB", name: "Portugal / English" }, { value: "RU-GB", name: "Russia / English" }, { value: "SA-GB", name: "Saudi Arabia / English" }, { value: "SG-GB", name: "Singapore / English" }, { value: "ZA-GB", name: "South Africa / English" }, { value: "KR-GB", name: "South Korea / English" }, { value: "ES-GB", name: "Spain / English" }, { value: "SE-GB", name: "Sweden / English" }, { value: "CH-GB", name: "Switzerland / English" }, { value: "TW-GB", name: "Taiwan / English" }, { value: "TJ-GB", name: "Tajikistan / English" }, { value: "TZ-GB", name: "Tanzania / English" }, { value: "TH-GB", name: "Thailand / English" }, { value: "TR-GB", name: "Turkey / English" }, { value: "TM-GB", name: "Turkmenistan / English" }, { value: "UA-GB", name: "Ukraine / English" }, { value: "GB-GB", name: "United Kingdom / English" }, { value: "AE-GB", name: "United Arab Emirates / English" }, { value: "UG-GB", name: "Uganda / English" }, { value: "US-GB", name: "United States / English" }, { value: "UZ-GB", name: "Uzbekistan / English" }, { value: "VE-GB", name: "Venezuela / English" }, { value: "VN-GB", name: "Vietnam / English" } ]; function printCZ() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !(_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length >= 3 && Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("CZ", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)) ) { return; } var createUrl = function(edition) { var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printCZ"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 0, inctimes: 0 }; var url = "http://global.csair.com/CZPortal/dyn/portal/doEnc?SITE=J00YJ00Y&BOOKING_FLOW=REVENUE&IS_FLEXIBLE=FALSE&LANGUAGE=" + edition[1] + "&PRICING_TYPE=O&COUNTRY_SITE=" + edition[0] + "&DISPLAY_TYPE=1"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=M"; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].czEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid CZ-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += czEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "China Southern", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printCZ); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("China Southern", "czEdition", czEditions, "US-GB"); /***/ }), /* 19 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const dlEditions = [ { value: "de_de", name: "Germany" }, { value: "www_us", name: "US" } ]; function printDL() { /* Steppo: What about farebasis? * What about segmentskipping? */ var createUrl = function(edition) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First // Defaults for cabin identifiers for DL pricing engine; exceptions handled later var cabins = ["MAIN", "DPPS", "BU", "FIRST"]; var mincabin = 3; var farebases = new Array(); var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printDL"); return; } var deltaURL = "http://" + edition[0] + ".delta.com/air-shopping/priceTripAction.action?ftw_reroute=true&tripType=multiCity"; deltaURL += "¤cyCd=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].cur == "EUR" ? "EUR" : "USD"); deltaURL += "&exitCountry=" + edition[1]; var segcounter = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg deltaURL += "&itinSegment[" + segcounter.toString() + "]=" + i.toString() + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; deltaURL += ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; deltaURL += ":" + Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* monthnumberToName */ "g"])(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month) + ":" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day < 10 ? "0" : "") + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day + ":" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ":0"; farebases.push(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].farebase); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } // Exceptions to cabin identifiers for pricing switch (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass) { // Basic Economy fares case "E": cabins[0] = "BASIC-ECONOMY"; break; // Comfort+ fares case "W": cabins[1] = "DCP"; break; default: } segcounter++; } } deltaURL += "&cabin=" + cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; deltaURL += "&fareBasis=" + farebases.join(":"); //deltaURL += "&price=0"; deltaURL += "&numOfSegments=" + segcounter.toString() + "&paxCount=" + (pax.adults + pax.children.length + pax.infLap); deltaURL += "&vendorRedirectFlag=true&vendorID=Google"; return deltaURL; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].dlEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid Delta-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += dlEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Delta", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printDL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Delta", "dlEdition", dlEditions, "www_us"); /***/ }), /* 20 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const ibEditions = [ { value: "es-AO", name: "Angola - Español" }, { value: "pt-AO", name: "Angola - Português" }, { value: "es-DZ", name: "Argelia - Español" }, { value: "fr-DZ", name: "Algérie - Français" }, { value: "en-AR", name: "Argentina - English" }, { value: "es-AR", name: "Argentina - Español" }, { value: "en-BE", name: "Belgium - English" }, { value: "es-BE", name: "Bélgica - Español" }, { value: "fr-BE", name: "Belgique - Français" }, { value: "es-BR", name: "Brasil - Español" }, { value: "pt-BR", name: "Brasil - Português" }, { value: "en-CL", name: "Chile - English" }, { value: "es-CL", name: "Chile - Español" }, { value: "en-CO", name: "Colombia - English" }, { value: "es-CO", name: "Colombia - Español" }, { value: "en-CR", name: "Costa Rica - English" }, { value: "es-CR", name: "Costa Rica - Español" }, { value: "en-HR", name: "Croatia - English" }, { value: "es-HR", name: "Croacia - Español" }, { value: "it-HR", name: "Croazia - Italiano" }, { value: "en-CU", name: "Cuba - English" }, { value: "es-CU", name: "Cuba - Español" }, { value: "en-CZ", name: "Czech Republic - English" }, { value: "es-CZ", name: "República Checa - Español" }, { value: "en-DK", name: "Denmark - English" }, { value: "es-DK", name: "Dinamarca - Español" }, { value: "de-DE", name: "Deutschland - Deutsch" }, { value: "es-DE", name: "Alemania - Español" }, { value: "en-DO", name: "Dominican Republic - English" }, { value: "es-DO", name: "República Dominicana - Español" }, { value: "en-EC", name: "Ecuador - English" }, { value: "es-EC", name: "Ecuador - Español" }, { value: "en-SV", name: "El Salvador - English" }, { value: "es-SV", name: "El Salvador - Español" }, { value: "en-GQ", name: "Equatorial Guinea - English" }, { value: "es-GQ", name: "Guinea Ecuatorial - Español" }, { value: "ca-ES", name: "Espanya - Català" }, { value: "en-ES", name: "Spain - English" }, { value: "es-ES", name: "España - Español" }, { value: "es-FR", name: "Francia - Español" }, { value: "fr-FR", name: "France - Français" }, { value: "en-GH", name: "Ghana - English" }, { value: "es-GH", name: "Ghana - Español" }, { value: "en-GR", name: "Greece - English" }, { value: "es-GR", name: "Grecia - Español" }, { value: "en-GT", name: "Guatemala - English" }, { value: "es-GT", name: "Guatemala - Español" }, { value: "en-HN", name: "Honduras - English" }, { value: "es-HN", name: "Honduras - Español" }, { value: "en-IE", name: "Ireland - English" }, { value: "es-IE", name: "Irlanda - Español" }, { value: "en-IL", name: "Israel - English" }, { value: "es-IL", name: "Israel - Español" }, { value: "en-IT", name: "Italy - English" }, { value: "es-IT", name: "Italia - Español" }, { value: "it-IT", name: "Italia - Italiano" }, { value: "en-JP", name: "Japan - English" }, { value: "es-JP", name: "Japón - Español" }, { value: "ja-JP", name: "日本 - 日本語" }, { value: "en-MT", name: "Malta - English" }, { value: "es-MT", name: "Malta - Español" }, { value: "it-MT", name: "Malta - Italiano" }, { value: "es-MA", name: "Marruecos - Español" }, { value: "fr-MA", name: "Maroc - Français" }, { value: "es-MR", name: "Mauritania - Español" }, { value: "fr-MR", name: "Mauritanie - Français" }, { value: "en-MX", name: "Mexico - English" }, { value: "es-MX", name: "México - Español" }, { value: "en-NL", name: "Netherlands - English" }, { value: "es-NL", name: "Holanda - Español" }, { value: "nl-NL", name: "Nederland - Nederlands" }, { value: "en-NI", name: "Nicaragua - English" }, { value: "es-NI", name: "Nicaragua - Español" }, { value: "en-NG", name: "Nigeria - English" }, { value: "es-NG", name: "Nigeria - Español" }, { value: "en-PA", name: "Panama - English" }, { value: "es-PA", name: "Panamá - Español" }, { value: "en-PE", name: "Peru - English" }, { value: "es-PE", name: "Perú - Español" }, { value: "es-PT", name: "Portugal - Español" }, { value: "pt-PT", name: "Portugal - Português" }, { value: "en-PR", name: "Puerto Rico - English" }, { value: "es-PR", name: "Puerto Rico - Español" }, { value: "en-RU", name: "Russian Federation - English" }, { value: "es-RU", name: "Rusia - Español" }, { value: "ru-RU", name: "Rossiya - Русский" }, { value: "de-CH", name: "Schweiz - Deutsch" }, { value: "es-CH", name: "Suiza - Español" }, { value: "fr-CH", name: "Suisse - Français" }, { value: "es-SN", name: "Senegal - Español" }, { value: "fr-SN", name: "Sénégal - Français" }, { value: "en-ZA", name: "South Africa - English" }, { value: "es-ZA", name: "Sudáfrica - Español" }, { value: "en-SE", name: "Sweden - English" }, { value: "es-SE", name: "Suecia - Español" }, { value: "en-TR", name: "Turkey - English" }, { value: "es-TR", name: "Turquía - Español" }, { value: "en-US", name: "USA - English" }, { value: "es-US", name: "USA - Español" }, { value: "en-GB", name: "United Kingdom - English" }, { value: "es-GB", name: "Reino Unido - Español" }, { value: "en-UY", name: "Uruguay - English" }, { value: "es-UY", name: "Uruguay - Español" }, { value: "en-VE", name: "Venezuela - English" }, { value: "es-VE", name: "Venezuela - Español" } ]; function printIB() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !( Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("IB", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("BA", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) ) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printIB"); return; } var url = "http://www.iberia.com/web/partnerLink.do?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=0&InfantLap=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ibEdition.split("-"); var url = createUrl(edition, "USD"); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += ibEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-"), "USD") + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Iberia", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printIB); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Iberia", "ibEdition", ibEditions, "en-US"); /***/ }), /* 21 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const klEditions = [ { value: "de_de", name: "Germany / Deutsch" }, { value: "de_en", name: "Germany / English" }, { value: "fr_en", name: "France / English" }, { value: "fr_fr", name: "France / French" }, { value: "nl_en", name: "Netherlands / English" }, { value: "gb_en", name: "United Kingdom / English" }, { value: "us_en", name: "US / English" } ]; const cabins = ["M", "W", "C", "F"]; function printKL() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("KL", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) ) { return; } var createUrl = function(edition) { var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printKL"); return; } const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])(); let url = "https://www.klm.com/ams/search-web/api/metasearch?application=EBT7"; url += "&trip=" + segs .map( seg => `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "i"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "i"])( seg.dep.day )}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "j"])(seg.dep.time)}:${seg.carrier}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "k"])( seg.fnr )}:${seg.bookingclass}>${seg.dest}` ) .join("-"); url += "&ref=MS,fb=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].farebases.join("."); url += "&numberOfAdults=" + pax.adults; url += "&numberOfChildren=" + pax.children.length; url += "&numberOfInfants=" + pax.infLap; url += "&cabinClass=" + cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...segs.map(seg => seg.cabin)))]; url += "&country=" + edition[0]; url += "&language=" + edition[1]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].klEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid KLM-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += klEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "KLM", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printKL); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("KLM", "klEdition", klEditions, "us_en"); /***/ }), /* 22 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const laEditions = [ { value: "es/ar", name: "Argentina / Spanish" }, { value: "pt/br", name: "Brasil / Portuguese" }, { value: "es/cl", name: "Chile / Spanish" }, { value: "es/co", name: "Colombia / Spanish" }, { value: "es/ec", name: "Ecuador / Spanish" }, { value: "es/pe", name: "Peru / Spanish" }, { value: "es/uy", name: "Uruguay / Spanish" }, { value: "en/us", name: "US / English" }, { value: "es/mx", name: "Mexico / Spanish" }, { value: "en/ca", name: "Canada / English" }, { value: "de/de", name: "Germany / German" }, { value: "es/es", name: "Spain / Spanish" }, { value: "fr/fr", name: "France / French" }, { value: "en/it", name: "Italy / English" }, { value: "en/uk", name: "UK / English" }, { value: "en/ue", name: "Rest of Europe / English" }, { value: "en/au", name: "Australia / English" }, { value: "en/nz", name: "New Zealand / English" }, { value: "es/un", name: "Other Countries / Spanish" }, { value: "en/un", name: "Other Countries / English" } ]; function printLA() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("LA", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) { return; } // NOTE: currency will be determined by the locale; the deeplink does not support manually specifying the currency var createUrl = function(edition) { var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLA"); return; } var laUrl = '"trip":{"flights":['; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // amount and currency required for each segment: laUrl += '{"amount":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + '","currency":"' + "USD" + '","segments":['; var mincabin = 3; // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } laUrl += '{"departure_airport":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + '","flight_number":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + '","departure_date":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month.toString()).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day.toString()).slice(-2) + '","arrival_airport":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + '","farebasis":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase + '","marketing_airline":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + '","class":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + '","arrival_date":"' + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month.toString()).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day.toString()).slice(-2) + '"},'; // check the minimum cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } laUrl = laUrl.substring(0, laUrl.length - 1) + "]},"; } // Build passengers info: var laPassengers = '"passengers":{"numberAdults":"' + pax.adults + '","numberInfants":"' + pax.infLap + '","numberChildren":"' + pax.children.length + '"},'; // Compile the final URL (and encode it): laUrl = "https://ssl.lan.com/cgi-bin/compra/paso4.cgi?forced_home=" + edition + "&sessionParameters=%7B" + encodeURIComponent(laPassengers) + encodeURIComponent(laUrl.substring(0, laUrl.length - 1)) + "]}}&utm_medium=metasearch&utm_source=gfs&utm_campaign=US_deeplink_s4&gclsrc=gf"; return laUrl; }; var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].laEdition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += laEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "LATAM", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printLA); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("LATAM", "laEdition", laEditions, "en/us"); /***/ }), /* 23 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); const lhEditions = [ { value: "AL-gb", name: "Albania / English" }, { value: "DZ-fr", name: "Algeria / Français" }, { value: "AO-gb", name: "Angola / English" }, { value: "AR-es", name: "Argentina / Español" }, { value: "AM-gb", name: "Armenia / English" }, { value: "AU-gb", name: "Australia / English" }, { value: "AT-de", name: "Austria / Deutsch" }, { value: "AT-gb", name: "Austria / English" }, { value: "AZ-gb", name: "Azerbaijan / English" }, { value: "BH-gb", name: "Bahrain / English" }, { value: "BY-gb", name: "Belarus / English" }, { value: "BE-gb", name: "Belgium / English" }, { value: "BA-gb", name: "Bosnia/Hercegovina / English" }, { value: "BR-pt", name: "Brazil / Português" }, { value: "BG-gb", name: "Bulgaria / English" }, { value: "CA-gb", name: "Canada / English" }, { value: "CA-fr", name: "Canada / Français" }, { value: "CL-es", name: "Chile / Español" }, { value: "CN-gb", name: "China / English" }, { value: "CO-es", name: "Colombia / Español" }, { value: "HR-gb", name: "Croatia / English" }, { value: "CY-gb", name: "Cyprus / English" }, { value: "CZ-gb", name: "Czech Republic / English" }, { value: "DK-gb", name: "Denmark / English" }, { value: "EG-gb", name: "Egypt / English" }, { value: "GQ-gb", name: "Equatorial Guinea / English" }, { value: "ER-gb", name: "Eritrea / English" }, { value: "EE-gb", name: "Estonia / English" }, { value: "ET-gb", name: "Ethiopia / English" }, { value: "FI-gb", name: "Finland / English" }, { value: "FR-gb", name: "France / English" }, { value: "FR-fr", name: "France / Français" }, { value: "GA-gb", name: "Gabon / English" }, { value: "GE-gb", name: "Georgia / English" }, { value: "DE-de", name: "Germany / Deutsch" }, { value: "DE-gb", name: "Germany / English" }, { value: "GH-gb", name: "Ghana / English" }, { value: "GR-gb", name: "Greece / English" }, { value: "HK-gb", name: "Hong Kong / English" }, { value: "HU-gb", name: "Hungary / English" }, { value: "IS-gb", name: "Iceland / English" }, { value: "IN-gb", name: "India / English" }, { value: "ID-gb", name: "Indonesia / English" }, { value: "IR-gb", name: "Iran / English" }, { value: "IQ-gb", name: "Iraq / English" }, { value: "IE-gb", name: "Ireland / English" }, { value: "IL-gb", name: "Israel / English" }, { value: "IT-it", name: "Italy / Italiano" }, { value: "IT-gb", name: "Italy / English" }, { value: "JP-gb", name: "Japan / English" }, { value: "JO-gb", name: "Jordan / English" }, { value: "KZ-gb", name: "Kazakhstan / English" }, { value: "KE-gb", name: "Kenya / English" }, { value: "KR-gb", name: "Republic of Korea / English" }, { value: "KW-gb", name: "Kuwait / English" }, { value: "LV-gb", name: "Latvia / English" }, { value: "LB-gb", name: "Lebanon / English" }, { value: "LY-gb", name: "Libya / English" }, { value: "LT-gb", name: "Lithuania / English" }, { value: "LU-gb", name: "Luxembourg / English" }, { value: "MY-gb", name: "Malaysia / English" }, { value: "MV-gb", name: "Maldives / English" }, { value: "MT-gb", name: "Malta / English" }, { value: "MU-gb", name: "Mauritius / English" }, { value: "MX-es", name: "Mexico / Español" }, { value: "MD-gb", name: "Moldova / English" }, { value: "MA-fr", name: "Morocco / Français" }, { value: "NL-gb", name: "Netherlands / English" }, { value: "NZ-gb", name: "New Zealand / English" }, { value: "NG-gb", name: "Nigeria / English" }, { value: "NO-gb", name: "Norway / English" }, { value: "OM-gb", name: "Oman / English" }, { value: "PK-gb", name: "Pakistan / English" }, { value: "PA-es", name: "Panama / Español" }, { value: "PH-gb", name: "Philippines / English" }, { value: "PL-gb", name: "Poland / English" }, { value: "PL-pl", name: "Poland / Polski" }, { value: "PT-gb", name: "Portugal / English" }, { value: "PT-pt", name: "Portugal / Português" }, { value: "QA-gb", name: "Qatar / English" }, { value: "CD-gb", name: "Republic of the Congo / English" }, { value: "RO-gb", name: "Romania / English" }, { value: "RU-gb", name: "Russia / English" }, { value: "RU-ru", name: "Russia / Русский" }, { value: "SA-gb", name: "Saudi Arabia / English" }, { value: "RS-gb", name: "Serbia / English" }, { value: "SG-gb", name: "Singapore / English" }, { value: "SK-gb", name: "Slovakia / English" }, { value: "SI-gb", name: "Slovenia / English" }, { value: "ZA-gb", name: "South Africa / English" }, { value: "ES-gb", name: "Spain / English" }, { value: "ES-es", name: "Spain / Español" }, { value: "SD-gb", name: "Sudan / English" }, { value: "SE-gb", name: "Sweden / English" }, { value: "CH-de", name: "Switzerland / Deutsch" }, { value: "CH-gb", name: "Switzerland / English" }, { value: "CH-fr", name: "Switzerland / Français" }, { value: "TW-gb", name: "Taiwan / English " }, { value: "TH-gb", name: "Thailand / English" }, { value: "TN-fr", name: "Tunisia / Français" }, { value: "TR-gb", name: "Turkey / English" }, { value: "TM-gb", name: "Turkmenistan / English" }, { value: "UA-gb", name: "Ukraine / English" }, { value: "AE-gb", name: "United Arab Emirates / English" }, { value: "UK-gb", name: "United Kingdom / English" }, { value: "US-gb", name: "United States / English" }, { value: "VE-es", name: "Venezuela / Español" }, { value: "VN-gb", name: "Vietnam / English" }, { value: "XX-gb", name: "Other countries / English" } ]; function printLH() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !( Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("LH", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("OS", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) ) { return; } var createUrl = function(edition) { var style = 0; // 0 is direct booking - 1 is pre selected var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLH"); return false; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 0 }; if (style == 0) { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/availThenFare?"; url += "WDS_MSE_PRICE_CURRENCY=EUR&WDS_MSE_TOTAL_PRICE=1.00&"; } else { var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/viewFlights?"; } url += "PORTAL=LH&COUNTRY_SITE=" + edition[0].toUpperCase() + "&POS=" + edition[0].toUpperCase() + "&LANGUAGE=" + edition[1].toUpperCase() + "&SECURE=TRUE&SITE=LUFTLUFT&SO_SITE_LH_FRONTEND_URL=www.lufthansa.com&WDS_WR_CHANNEL=LHCOM"; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += tmpPax.url; url += "&NB_ADT=" + tmpPax.adults; url += "&NB_INF=" + tmpPax.infants; url += "&NB_CHD=" + tmpPax.children; url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])(); url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig); return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].lhEdition.split("-"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid Lufthansa-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lhEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("-")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Lufthansa", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printLH); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Lufthansa", "lhEdition", lhEditions, "US-gb"); /***/ }), /* 24 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const lxEditions = [ { value: "de_de", name: "Germany" }, { value: "us_en", name: "US" } ]; function printLX() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length <= 2 && Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("LX", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers)) ) { return; } // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["", "", "/class-business", "/class-first"]; var mincabin = 3; var createUrl = function(edition) { var url = "https://www.swiss.com/" + edition[0] + "/" + edition[1] + "/Book/Combined"; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLX"); return; } //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each leg url += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest + "/"; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr + "-"; if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } url = url.substring(0, url.length - 1); url += "/" + (i > 0 ? "to" : "from") + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); } url += "/adults-" + pax.adults + "/children-" + pax.children.length + "/infants-" + pax.infLap; url += cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; return url; }; // get edition var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].lxEdition.split("_"); if (edition.length != 2) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid Swiss-Edition"); return; } var url = createUrl(edition); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += lxEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value.split("_")) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Swiss", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printLX); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Swiss", "lxEdition", lxEditions, "us_en"); /***/ }), /* 25 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); function printOA() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !( Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("OA", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("A3", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) ) { return; } var url = "https://e-ticket.olympicair.com/A3Responsive/dyn/air/booking/?BOOKING_FLOW=REVENUE&FLEXIBILITY=3&DISPLAY_TYPE=2&FORCE_OVERRIDE=TRUE&PRICING_TYPE=O"; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printOA"); return; } var paxConfig = { allowinf: 1, youthage: 0 }; var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&SITE=E00KE00K&SKIN=skin_oa&SO_GL=%3CSO_GL%3E%09%3CGLOBAL_LIST%3E%09%09%3CNAME%3ESL_TRAVELLER_TYPE_LIST%3C%2FNAME%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EADT%3C%2FCODE%3E%3CLIST_VALUE%3EAdult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EADT%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EB15%3C%2FCODE%3E%3CLIST_VALUE%3EYoung+adult%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EB15%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC07%3C%2FCODE%3E%3CLIST_VALUE%3EYouth%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC07%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EC03%3C%2FCODE%3E%3CLIST_VALUE%3EChild%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EC03%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%09%3CLIST_ELEMENT%3E%3CCODE%3EINF%3C%2FCODE%3E%3CLIST_VALUE%3EInfant%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EINF%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E++++++++%3CLIST_ELEMENT%3E%3CCODE%3EUNN%3C%2FCODE%3E%3CLIST_VALUE%3EUMNR%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EN%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3EUNN%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%09%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SO_SITE_ETKT_Q_OFFICE_ID=ATHA308OA&SO_SITE_OFFICE_ID=ATHA308OA&SO_SITE_POINT_OF_SALE=ATH&SO_SITE_POINT_OF_TICKETING=ATH&SO_SITE_PREBOOK_DURATION=I180&SO_SITE_QUEUE_OFFICE_ID=ATHA308OA&SO_SITE_SP_QUEUE_OFFICE_ID=ATHA308OA"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "oa" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&WDS_ADD_BOOK_NOW_BUTTON_EMAF=TRUE&WDS_ADVERTISING_PANEL_CONF_ACTIVATED=true&WDS_AFFILIATE_STATUS=C&WDS_AMOP_DISPLAY_PRIORITY=PAYPAL:SOFORT:KLARNA:EPS:IDEAL:BANCONTACT:ENTERCASH:ALIPAY:CUP&WDS_AMOP_FEE=PAYPAL:0;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:0;CUP:0;&WDS_AMOP_FEE_APPLY=PER_TRANSACTION&WDS_AMOP_FEE_CALCULATION=PER&WDS_AMOP_LIST_ACTIVATED=PAYPAL;KLARNA;SOFORT;ENTERCASH;EPS;IDEAL;BANCONTACT;ALIPAY;CUP&WDS_AMOP_LIST_DEACTIVATED=&WDS_AMOP_TIME_LIMIT=PAYPAL:48;KLARNA:0;SOFORT:0;ENTERCASH:0;EPS:0;IDEAL:0;BANCONTACT:0;ALIPAY:24;CUP:24;&WDS_ANCILLARY_IN_MILES_ENABLED=TRUE&WDS_ASSISTANCE_REQUEST_ACTIVATED=TRUE&WDS_ATCOM_TIMEOUT=2000&WDS_AVAIL_PRICE_DISPLAY_TYPE=PER_ADT_WITH_TAX_NO_FEE&WDS_BAG_PLACEHOLDER_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BAG_POLICY_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_BOOKING_LISTENER_URL=https://en.aegeanair.com/BookingListener.axd&WDS_BOUND_INDEX_EXPANDED=1&WDS_BUSINESS_MEAL_FARE_FAMILIES=BUSINESS:BUSINESTES:BUSINESSI&WDS_BUSINESS_MEAL_FREQUENT_FLYER_LEVELS=GOLD:SILVER&WDS_BUSINESS_MEAL_SUPPORTED=true&WDS_BUSINESS_ON_BOARD_DISPLAY_IN_LOGIN_PANEL=TRUE&WDS_BUSINESS_ON_BOARD_ENABLED=TRUE&WDS_BUSINESS_ON_BOARD_PAX_TYPE=ADT&WDS_CABIN_CLASS_DISPLAY=TRUE&WDS_CALENDAR_TO_UPSELL_FLEXIBLE_ACTIVATED=3&[email protected]&WDS_CAR_ENABLED=FALSE&WDS_CAR_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_CC_FEE_CARD_TYPE=VI:0;CA:0;MA:0;AX:0;DC:0;TP:;&WDS_CC_FEE_NO_CARD=0&WDS_CC_FEE_ZERO_DISPLAYED=FALSE&WDS_CC_LIST=VI:CA:MA:AX:DC:TP&WDS_CFF_TOUSE=CFF01FEB14&WDS_CHANNEL=B2C&WDS_CLEAR_CONTENT_URL=https://en.aegeanair.com/PlainContent.axd&WDS_DEVICE_NAME=DESKTOP_UNKNOWN&WDS_DEVICE_OS=Windows_10&WDS_DEVICE_VIEWPORT=L&WDS_DISPLAY_EMAIL_IN_BROWSER_URL=https://en.aegeanair.com/ConfirmationEmail.axd&WDS_DISPLAY_FBA_AND_REFUNDABILITY_PER_BOUND_IN_SB=TRUE&WDS_DISPLAY_GREEK_RURAL_ID=FALSE&WDS_DISPLAY_RECEIPT=SHOW&WDS_DISPLAY_REGULATION_CONDITIONS_COUNTRY=FR&WDS_DISPLAY_REGULATION_CONDITIONS_LANG=FR&WDS_DONATION_PANEL_ACTIVATED=FALSE&WDS_DONATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_EMAF_BOOK_NOW_URL=https://en.aegeanair.com/PostHandler.axd&WDS_ENABLE_PARKING=FALSE&WDS_ENABLE_TOKEN=true&WDS_ENABLE_TOKEN_FOR_CAR=false&WDS_ENABLE_TOKEN_FOR_HOTEL=false&WDS_EPTS=unknown_call&WDS_EXTERNAL_CSS_URL=https://en.aegeanair.com/css/1A/responsive.css?v=10&WDS_EXTRAS_DEFAULT_PANEL_ORDER=BAGGAGE;MEALS;SPEQ;PETS;FASTTRACK;INSURANCE;PARKING;DONATION&WDS_FARE_COMPARISON_URL=https://en.aegeanair.com/FareFamilyComparison.axd&WDS_FARE_CONDITIONS_URL=https://en.aegeanair.com/ffc.axd&WDS_FASTTRACK_ELIGIBLE_AIRPORTS=LCA;ATH&WDS_FASTTRACK_ENABLED=TRUE&WDS_FASTTRACK_HANDLER_URL=https://en.aegeanair.com/FastTrackHandler.axd&WDS_FREQUENT_FLYER_PROGRAMS_OA_FLIGHTS=A3;AC;UA;MS;TK;NH;LH;SQ&WDS_GDPR_DISPLAY_PROMOS_CONFIRMATION_NO_CONSENT=FALSE&WDS_GDPR_HANDLER_URL=https://en.aegeanair.com/api/v1/members/checkgdpremailstatus&WDS_GO_TO_FINALIZE_URL=https://en.aegeanair.com/FinalizeRedirect.axd&WDS_GO_TO_MY_BOOKING_URL=https://en.aegeanair.com/MyBooking.axd&WDS_GO_TO_SEAT_SELECTION_URL=https://en.aegeanair.com/SeatRedirect.axd&WDS_HANDLE_SOS_AS_RM_FEE=TRUE&WDS_HOTEL_ENABLED=FALSE&WDS_HOTEL_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_HOTEL_POPUP_CONF_ACTIVATED=TRUE&WDS_HOTEL_POPUP_CONF_DELAY=10000&WDS_HOTEL_RECOMMENDATION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_ACTIVATED=TRUE&WDS_INSURANCE_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_INSURANCE_PRESELECT=NONE&WDS_LATE_LOGIN_ENABLED=TRUE&WDS_LATE_LOGIN_URL=https://en.aegeanair.com/api/v1/members/loyaltyauth&WDS_MEAL_FORBIDDEN_PAX_TYPE=INF&WDS_MEAL_HANDLER_URL=https://en.aegeanair.com/MealHandler.axd&WDS_MEAL_LIST_PROPOSED=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_MILES_EARNED_HANDLER_URL=https://en.aegeanair.com/AwardedMiles.axd&WDS_NEW_PROMOTION_TYPE=NONE&WDS_NEW_PROMOTION_WEBSERVICES_ENVIRONMENT=PRODUCTION&WDS_OBFEE_FROM_NEWPOLICY_ACTIVATED=TRUE&WDS_OLYMPIC_TRACKING=true&WDS_ONLY_DIRECT_REQUESTED=FALSE&WDS_PARKING_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PETS_ENABLED=TRUE&WDS_PHONE_PRESELECT_COUNTRY_CODE=US&WDS_PLUSGRADE_ENABLED=false&WDS_PLUSGRADE_HANDLER_URL=https://en.aegeanair.com/PlusgradeHandler.axd&WDS_PROMO_SLOT_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_PROMOCODE_ROUTE_AUTHORIZED=FALSE&WDS_PROMOTION_RBD_LIST=P&WDS_REBOOKING_HIGHSEASON_DATE=&WDS_RESKIN=TRUE&WDS_SB_HOTEL_TIMEOUT=15000&WDS_SEAT_BANNER_URL=https://en.aegeanair.com/SeatBanner.axd&WDS_SEATMAP_ENABLED=TRUE&WDS_SMS_OPTION=SHOW&[email protected]&[email protected]&WDS_SPECIAL_MEAL_LIST=BBML:BLML:CHML:DBML:FPML:GFML:KSML:LCML:LFML:NLML:LSML:MOML:HNML:SFML:VOML:VLML:AVML:VJML:VGML:RVML&WDS_SPECIAL_MEAL_SUPPORTED=TRUE&WDS_SPEQ_ENABLED=TRUE&WDS_TAX_BREAKDOWN_REGULATION_ALLOW_LANG=FR&WDS_TEALEAF_ENABLED=TRUE&WDS_TTT_ENABLED=TRUE&WDS_TTT_PROMO_FARES_REG_EXP=^PR([0-9])+$&WDS_TTT_SELECTION_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_UMNR_ENTRY_OVERRIDE=WDS_HOTEL_ENABLED:FALSE;WDS_CAR_ENABLED:FALSE;WDS_TTT_ENABLED:false;WDS_FASTTRACK_ENABLED:false;WDS_ANCILLARY_IN_MILES:false;WDS_ENABLE_PARKING:false;WDS_ASSISTANCE_REQUEST_ACTIVATED:false;WDS_LATE_LOGIN_ENABLED:false;WDS_BUSINESS_ON_BOARD_ENABLED:false&WDS_URL_FACADE_ERROR=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_FACADE_NEWSEARCH=https://www.olympicair.com/en/Travel/Reservations/Tickets&WDS_URL_WAITING_CONTENT=https://en.aegeanair.com/WaitingPage.axd&WDS_USE_A3_SOS_INSURANCE_PANEL=TRUE&WDS_USEFUL_LINKS_PANEL_URL=https://en.aegeanair.com/PromoSlots.axd&WDS_VOUCHER_BANNER_ACTIVATED=TRUE&WDS_VOUCHER_BANNER_URL=https://en.aegeanair.com/PromoSlots.axd"; return { url, title: "Olympic Air" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printOA); /***/ }), /* 26 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); function printPS() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("PS", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) { return; } var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "Economy", "Business", "First"]; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printPS"); return false; } var url = "https://bookapi.flyuia.com/flights/metaSearchQuery?Adult=" + pax.adults + "&Child=" + pax.children.length + "&Infant=" + pax.infLap + "&PointOfSaleCountry=" + edition[1] + "&UserCurrency=" + currency + "&UserLanguage=" + edition[0] + "&TripType="; if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { url += "OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { url += "RoundTrip"; } else { url += "MultiCity"; } var seg = 0; var slice = 1; var slicestr = ""; //Build multi-city search based on legs for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { // walks each leg for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; url += "&DepartureDate" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]; slicestr += (slicestr === "" ? "" : "%2C") + seg; j += k; } url += "&Slice" + slice + "=" + slicestr; slice++; slicestr = ""; } return url; }; var url = createUrl(["EN", "US"], "USD"); if (!url) { return; } return { url, title: "UIA" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printPS); /***/ }), /* 27 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0); const qfEditions = [ { value: "EN_AU", name: "Australia" }, { value: "EN_NZ", name: "New Zealand" }, { value: "EN_US", name: "United States" } ]; const qfCurrencies = [ { value: "AUD", name: "AUD" }, { value: "NZD", name: "NZD" }, { value: "USD", name: "USD" } ]; function printQF() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines && !( Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("QF", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("JQ", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) || Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("NZ", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) ) ) { return; } /* Qantas partner deep-link */ var createUrl = function(edition, currency) { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var travelClass = ["ECO", "PRM", "BUS", "FIR"]; // Start the minimum cabin at highest possible (it will drop as we check each leg): var mincabin = 3; // Validate the passenger totals first: var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 16, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printQF"); return false; } var nbrChildren = pax.children.length; if (!nbrChildren || typeof nbrChildren === "undefined") { // default to 0 children if undefined: nbrChildren = 0; } // Build search based on legs: console.log("printQF: begin leg traversal..."); var url = ""; var prefixFltNbr = "sdcFlightNumber"; var prefixSegRbd = "sdcSegmentRbd"; var depAirports = "&depAirports="; var destAirports = "&destAirports="; var segDepAirports = "&depAirports="; var segDestAirports = "&destAirports="; var tmpTravelDates = ""; var finalDest = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].seg[0].dest; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) { // walks each parent "leg" of the itinerary (a leg can have multiple flight segments) // Record the travel date for each leg: if (tmpTravelDates === "" || !tmpTravelDates) { tmpTravelDates += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } else { tmpTravelDates += "%2C" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() + "0000"; } // Grab the origin airport of each leg: if (segDepAirports.length > 13) segDepAirports += "%2C"; segDepAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig.toString(); // Grab the destination airport of each leg: if (segDestAirports.length > 14) segDestAirports += "%2C"; segDestAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest.toString(); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) { // walks each flight segment of the parent leg var k = 0; // Do we need to skip segments? fnr has to be the same and it must be just a layover: while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) { break; } k++; } // Construct URL for this leg: url += "&" + prefixFltNbr + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr; url += "&" + prefixSegRbd + (i + 1) + (j + 1) + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; // record the departing and destination airports for this leg: // all departing airports: if (depAirports.length > 13) depAirports += "%2C"; depAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig.toString(); // all destination airports: if (destAirports.length > 14) destAirports += "%2C"; destAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest.toString(); if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin; } j += k; } } // Add airports: // url += depAirports + destAirports; url += segDepAirports + segDestAirports; // Add travel dates: url += "&travelDates=" + tmpTravelDates; // Add price info: url += "&sdcTripPriceAmount=0.00"; // Add device type: url += "&QFdeviceType=desktop"; // Begin final deeplink URL construction: var urlBase = "https://book.qantas.com/qf-booking/dyn/air/tripflow.redirect?APPLICATION_NAME=SDC"; // Add edition / locale: urlBase += "&USER_LANG=EN&USER_LOCALE=" + edition; // Add class(es) of service: urlBase += "&travelClass=" + travelClass[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()]; // Add passenger info: urlBase += "&numberOfAdults=" + pax.adults + "&numberOfChildren=" + nbrChildren.toString() + "&numberOfInfants=" + pax.infLap; // Add currency: urlBase += "&sdcPriceCurrency=" + currency; return urlBase + url; }; // get edition var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency); if (!url) { return; } var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += qfEditions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url, title: "Qantas", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printQF); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfEdition", qfEditions, "EN_US"); Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfCurrency", qfCurrencies, "USD"); /***/ }), /* 28 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); function printTK() { if ( !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines && !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("TK", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers) ) { return; } var url = "https://book.eu2.amadeus.com/plnext/turkishairlines/Override.action?"; var paxConfig = { allowinf: 1, youthage: 0 }; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: false, childAsAdult: 12, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printTK"); return; } var amadeusConfig = { sepcabin: 0, detailed: 0, allowpremium: 1, inctimes: 1 }; var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig); url += "TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])(); url += tmpPax.url; url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig); url += "&PORT_TSC=FALSE&SO_SITE_ALLOW_SERVICE_FEE=0&SO_SITE_SERVICE_FEE_MODE=AIR&SITE=BBAHBBAH"; url += "&LANGUAGE=" + (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "tk" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de" ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase() : "GB"); url += "&EMBEDDED_TRANSACTION=AirComplexAvailability&TRIPFLOW=YES"; url += "SO_LANG_TRIPFLOW_ENTRY_ADDRE=online.turkishairlines.com%2Finternet-booking%2Famadeus.tk&ARRANGE_BY=N&DIRECT_NON_STOP=false&REFRESH=0&SO_SITE_TAX_BREAKDOWN_DISP=TRUE&SO_LANG_DISABLE_X_XSS_PROTEC=TRUE&SO_SITE_REDIRECT_MODE=AUTOMATIC&SO_LANG_URL_AIR_NFS_SRCH=http%3A%2F%2Fonline.turkishairlines.com%2Finternet-booking%2Fstart.tk"; return { url, title: "Turkish" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printTK); /***/ }), /* 29 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const KayakEditions = [ { name: "Kayak.com", host: "Kayak.com" }, { name: "Kayak.de", host: "Kayak.de" }, { name: "Kayak.it", host: "Kayak.it" }, { name: "Kayak.es", host: "Kayak.es" }, { name: "Kayak.co.uk", host: "Kayak.co.uk" }, { name: "Kayak.dk", host: "Kayak.dk" }, { name: "Kayak.mx", host: "Kayak.mx" }, { name: "Kayak.fi", host: "Kayak.fi" }, { name: "Kayak.fr", host: "Kayak.fr" }, { name: "Kayak.no", host: "Kayak.no" }, { name: "Kayak.nl", host: "Kayak.nl" }, { name: "Kayak.pt", host: "Kayak.pt" }, { name: "Kayak.se", host: "Kayak.se" }, { name: "Kayak.ru", host: "Kayak.ru" } ]; function printKayak(method) { //example https://www.Kayak.ru/flights/MOW-CPH...OW/2016-05-20/ // pax: #adults // method: 0 = based on leg; 1 = based on segment let desc; var KayakCreateUrl = function(host) { var KayakUrl = "https://www." + host + "/flights"; var segsize = 0; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { if (method != 1) { KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig; KayakUrl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest; KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); segsize++; } for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { if (method == 1) { var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; KayakUrl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest; KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); j += k; segsize++; } } } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax > 1) { KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax + "adults"; } KayakUrl += getKayakCabin(); if (method == 1) { if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de") { desc = "Benutze " + segsize + " Segment(e)"; } else { desc = "Based on " + segsize + " segment(s)"; } } else { if (segsize == 1) { return false; } if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de") { desc = "Benutze " + segsize + " Abschnitt(e)"; } else { desc = "Based on " + segsize + " segment(s)"; } } return KayakUrl; }; var KayakUrl = KayakCreateUrl("Kayak.com"); if (!KayakUrl) { return; } var KayakExtra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; KayakExtra += KayakEditions.map(function(obj, i) { return ( '<a href="' + KayakCreateUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }).join("<br/>"); KayakExtra += "</span></span>"; return { url: KayakUrl, title: "Kayak", desc, extra: KayakExtra }; } function getKayakCabin() { switch (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin) { case "Y+": return "/premium"; case "C": return "/business"; case "F": return "/first"; default: return "/economy"; } } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", () => printKayak(0)); Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", () => printKayak(1)); /***/ }), /* 30 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); const MomondoEditions = [ { name: "Momondo.com", host: "Momondo.com" }, { name: "Momondo.de", host: "Momondo.de" }, { name: "Momondo.it", host: "Momondo.it" }, { name: "Momondo.es", host: "Momondo.es" }, { name: "Momondo.co.uk", host: "Momondo.co.uk" }, { name: "Momondo.dk", host: "Momondo.dk" }, { name: "Momondo.mx", host: "Momondo.mx" }, { name: "Momondo.fi", host: "Momondo.fi" }, { name: "Momondo.fr", host: "Momondo.fr" }, { name: "Momondo.no", host: "Momondo.no" }, { name: "Momondo.nl", host: "Momondo.nl" }, { name: "Momondo.pt", host: "Momondo.pt" }, { name: "Momondo.se", host: "Momondo.se" }, { name: "Momondo.ru", host: "Momondo.ru" } ]; function printMomondo() { //example https://www.Momondo.ru/flightsearch/?...false&NA=false //pax # &AD=2&CA=0,8 – not working with children (total amount of adults + kids goes to adult) var momondoTravelClass = ["economy", "premium", "business", "first"]; var mincabin = 3; var MomondoCreateUrl = function(host) { var MomondoUrl = "https://www." + host + "/flight-search/"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) { MomondoUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dest + "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) + "/"; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) { // check the min cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } } // Add travel class to URL: MomondoUrl += momondoTravelClass[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ] + "/"; // Add passenger info to URL: MomondoUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].numPax + "adults"; return MomondoUrl; }; var MomondoUrl = MomondoCreateUrl("Momondo.com"); var MomondoExtra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; MomondoExtra += MomondoEditions.map(function(obj, i) { return ( '<a href="' + MomondoCreateUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }).join("<br/>"); MomondoExtra += "</span></span>"; return { url: MomondoUrl, title: "Momondo", extra: MomondoExtra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", printMomondo); /***/ }), /* 31 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const SkyscannerEditions = [ { name: "Skyscanner.com", market: "US" }, { name: "Skyscanner.de", market: "DE" }, { name: "Skyscanner.it", market: "IT" }, { name: "Skyscanner.es", market: "ES" }, { name: "Skyscanner.co.uk", market: "UK" }, { name: "Skyscanner.dk", market: "DK" }, { name: "Skyscanner.mx", market: "MX" }, { name: "Skyscanner.fi", market: "FI" }, { name: "Skyscanner.fr", market: "FR" }, { name: "Skyscanner.no", market: "NO" }, { name: "Skyscanner.nl", market: "NL" }, { name: "Skyscanner.pt", market: "PT" }, { name: "Skyscanner.se", market: "SE" }, { name: "Skyscanner.ru", market: "RU" } ]; function printSkyscanner() { //example https://www.skyscanner.ru/transport/d/stoc/2017-09-02/akl/akl/2017-09-16/stoc/akl/2017-09-29/syd?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&ref=day-view#results var skyscannerTravelClass = ["", "premiumeconomy", "business", "first"]; var SkyscannerCreateUrl = function(market) { var skyscannerUrl = "http://www.skyscanner.com/transport/d"; var seg = 0; var mincabin = 3; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { skyscannerUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig; // Add the segments: skyscannerUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.year + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); skyscannerUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { // check the min cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) { mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } seg++; } // Add passenger info: skyscannerUrl += "?adults=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax + "adultsv2=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax; // Add cabin / class of service: skyscannerUrl += "&cabinclass=" + skyscannerTravelClass[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; // Add locale ("market"): skyscannerUrl += "&ref=day-view&market=" + market; return skyscannerUrl; }; var skyscannerUrl = SkyscannerCreateUrl("Skyscanner.com"); var SkyscannerExtra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; SkyscannerExtra += SkyscannerEditions.map(function(obj, i) { return ( '<a href="' + SkyscannerCreateUrl(obj.market) + '" target="_blank">' + obj.name + "</a>" ); }).join("<br/>"); SkyscannerExtra += "</span></span>"; return { url: skyscannerUrl, title: "Skyscanner", extra: SkyscannerExtra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("meta", printSkyscanner); /***/ }), /* 32 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); function printCheapOair() { // 0 = Economy; 1=Premium Economy; 2=Business; 3=First var cabins = ["Economy", "PremiumEconomy", "Business", "First"]; var coaUrl = "http://www.cheapoair.com/default.aspx?tabid=1832&ulang=en"; var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 12, sepInfSeat: true, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printCheapOair"); return; } coaUrl += "&ad=" + pax.adults + "&ch=" + pax.children.length + "&il=" + pax.infLap + "&is=" + pax.infSeat; var seg = 0; var slices = {}; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { slices[i] = ""; for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { seg++; if (slices[i]) slices[i] += ","; slices[i] += seg; coaUrl += "&cbn" + seg + "=" + cabins[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin] : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; coaUrl += "&carr" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier; coaUrl += "&dd" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2); coaUrl += "&og" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; coaUrl += "&dt" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest; coaUrl += "&fbc" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass; coaUrl += "&fnum" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr; } coaUrl += "&Slice" + (i + 1) + "=" + slices[i]; } if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) { coaUrl += "&tt=OneWay"; } else if ( _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig ) { coaUrl += "&tt=RoundTrip"; } else { coaUrl += "&tt=MultiCity"; } return { url: coaUrl, title: "CheapOair" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printCheapOair); /***/ }), /* 33 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); const editions = [ { name: "Seat24.se", host: "www.seat24.se" }, { name: "Seat24.de", host: "www.seat24.de" }, { name: "Seat24.dk", host: "www.seat24.dk" }, { name: "Seat24.fi", host: "www.seat24.fi" }, { name: "Seat24.no", host: "www.seat24.no" }, { name: "Flygvaruhuset.se", host: "www.flygvaruhuset.se" }, { name: "Travelpartner.se", host: "www.travelpartner.se" }, { name: "Travelpartner.fi", host: "www.travelpartner.fi" }, { name: "Travelpartner.no", host: "www.travelpartner.no" }, { name: "Budjet.se", host: "www.budjet.se" }, { name: "Budjet.fi", host: "www.budjet.fi" }, { name: "Budjet.no", host: "www.budjet.no" }, { name: "Budjet.dk", host: "www.budjet.dk" }, { name: "Goleif.dk", host: "www.goleif.dk" }, { name: "Travelfinder.se", host: "www.travelfinder.se" }, { name: "Gotogate.no", host: "www.gotogate.no" }, { name: "Gotogate.at", host: "www.gotogate.at" }, { name: "Gotogate.be", host: "be.gotogate.com" }, { name: "Gotogate.bg", host: "bg.gotogate.com" }, { name: "Gotogate.ch", host: "www.gotogate.ch" }, { name: "Gotogate.cz", host: "cz.gotogate.com" }, { name: "Gotogate.es", host: "www.gotogate.es" }, { name: "Gotogate.fr", host: "www.gotogate.fr" }, { name: "Gotogate.gr", host: "www.gotogate.gr" }, { name: "Gotogate.hu", host: "hu.gotogate.com" }, { name: "Gotogate.ie", host: "ie.gotogate.com" }, { name: "Gotogate.it", host: "www.gotogate.it" }, { name: "Gotogate.pl", host: "www.gotogate.pl" }, { name: "Gotogate.pt", host: "www.gotogate.pt" }, { name: "Gotogate.ro", host: "ro.gotogate.com" }, { name: "Gotogate.sk", host: "www.gotogate.sk" }, { name: "Gotogate.tr", host: "tr.gotogate.com" }, { name: "Gotogate.com.ua", host: "www.gotogate.com.ua" }, { name: "Gotogate.co.uk", host: "www.gotogate.co.uk" }, { name: "Flybillet.dk", host: "www.flybillet.dk" }, { name: "Travelstart.se", host: "www.travelstart.se" }, { name: "Travelstart.de", host: "www.travelstart.de" }, { name: "Travelstart.dk", host: "www.travelstart.dk" }, { name: "Travelstart.fi", host: "www.travelstart.fi" }, { name: "Travelstart.no", host: "www.travelstart.no" }, { name: "Supersaver.se", host: "www.supersavertravel.se" }, { name: "Supersaver.dk", host: "www.supersaver.dk" }, { name: "Supersaver.fi", host: "www.supersaver.fi" }, { name: "Supersaver.nl", host: "www.supersaver.nl" }, { name: "Supersaver.no", host: "www.supersaver.no" }, { name: "Supersaver.ru", host: "www.supersaver.ru" } ]; function printEtraveli() { if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 && !( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest && _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig ) ) return; // no open jaws var convertDate = function(date, withYear) { return ( ("0" + date.day).slice(-2) + Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* monthnumberToName */ "g"])(date.month) + (withYear ? date.year.toString().slice(-2) : "") ); }; var createUrl = function(host) { var ggUrl = "http://" + host + "/air/"; ggUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest + convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dep, false); if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1) ggUrl += convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dep, false); ggUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax; ggUrl += "?selectionKey=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin .map(function(itin) { return itin.seg .map(function(seg) { return ( seg.carrier + seg.fnr + "-" + convertDate(seg.dep, true) + "-" + seg.bookingclass ); }) .join("_"); }) .join("_"); return ggUrl; }; // picked seat24 as main one, but could be any of them var ggUrl = createUrl("www.seat24.de"); var extra = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; extra += editions .map(function(obj, i) { return ( '<a href="' + createUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); extra += "</span></span>"; return { url: ggUrl, title: "Seat24.de", extra }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printEtraveli); /***/ }), /* 34 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0); const editions = [ { name: "expedia.com", host: "expedia.com" }, { name: "orbitz.com", host: "orbitz.com" }, { name: "expedia.ca", host: "expedia.ca" }, { name: "expedia.de", host: "expedia.de" }, { name: "expedia.it", host: "expedia.it" }, { name: "expedia.es", host: "expedia.es" }, { name: "expedia.co.uk", host: "expedia.co.uk" }, { name: "expedia.dk", host: "expedia.dk" }, { name: "expedia.mx", host: "expedia.mx" }, { name: "expedia.fi", host: "expedia.fi" }, { name: "expedia.fr", host: "expedia.fr" }, { name: "expedia.no", host: "expedia.no" }, { name: "expedia.nl", host: "expedia.nl" }, { name: "expedia.ch", host: "expedia.ch" }, { name: "expedia.se", host: "expedia.se" }, { name: "expedia.at", host: "expedia.at" }, { name: "expedia.co.jp", host: "expedia.co.jp" } ]; function printExpedia() { var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printExpedia"); return; } let expediaClasses = ["coach", "premium", "business", "first"]; let minCabin = 3; let ExpediaCreateUrl = function(expediaBase) { let segUrl = ""; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) { segUrl += "&legs%5B" + i + "%5D.departureAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig; segUrl += "&legs%5B" + i + "%5D.arrivalAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest; segUrl += "&legs%5B" + i + "%5D.departureDate=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].arr.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) { segUrl += ( "&legs%5B" + i + "%5D.segments%5B" + j + "%5D=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + "-" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + "-" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ] + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr ).toLowerCase(); // check the min cabin: if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < minCabin) { minCabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin; } } } // Build the URL: let baseUrl = "https://www." + expediaBase + "/Flight-Search-Details?action=dl&trip=MultipleDestination"; // Add travel class to URL: baseUrl += "&cabinClass=" + expediaClasses[ _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])() ]; // Add passenger info to URL: baseUrl += "&adults=" + pax.adults; return baseUrl + segUrl; }; var ExpediaUrl = ExpediaCreateUrl("expedia.com"); var container = ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">'; container += editions .map(function(obj, i) { return ( '<a href="' + ExpediaCreateUrl(obj.host) + '" target="_blank">' + obj.name + "</a>" ); }) .join("<br/>"); container += "</span></span>"; return { url: ExpediaUrl, title: "Expedia", extra: container }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("otas", printExpedia); /***/ }), /* 35 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); function printPriceline() { var pricelineurl = "https://www.priceline.com/m/fly/search"; var searchparam = "~"; for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) { // walks each leg searchparam = searchparam.substring(0, searchparam.length - 1) + "-"; pricelineurl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest; pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2); for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) { if ( _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr != _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr || _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(-4); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest; searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year.toString() + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")).slice( -4 ); searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr; searchparam += "~"; j += k; } } searchparam = searchparam.substring(1, searchparam.length - 1); var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* validatePaxcount */ "d"])({ maxPaxcount: 9, countInf: true, childAsAdult: 18, sepInfSeat: false, childMinAge: 2 }); if (!pax) { Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printPriceline"); return; } pricelineurl += "/desktop/details/R_" + searchparam + "_" + (pax.adults + pax.children.length + pax.infLap) + "_USD0.00_1-1-1?num-adults=" + pax.adults + "&num-children=" + pax.children.length + "&num-infants=" + pax.infLap + "&num-youths=0"; return { url: pricelineurl, title: "Priceline" }; } Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printPriceline); /***/ }), /* 36 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/settings/appSettings.js var appSettings = __webpack_require__(4); // EXTERNAL MODULE: ./src/settings/userSettings.js var userSettings = __webpack_require__(1); // EXTERNAL MODULE: ./src/settings/itaSettings.js var itaSettings = __webpack_require__(5); // EXTERNAL MODULE: ./src/utils.js var utils = __webpack_require__(2); // EXTERNAL MODULE: ./src/parse/itin.js var parse_itin = __webpack_require__(0); // EXTERNAL MODULE: ./src/settings/translations.js var translations = __webpack_require__(8); // EXTERNAL MODULE: ./src/print/links.js var links = __webpack_require__(3); // CONCATENATED MODULE: ./src/print/index.js function render() { // Editor mode? if ( userSettings["a" /* default */].enableEditormode == 1 && Object(utils["d" /* findtargets */])("editoritem").length === 0 ) { Object(utils["l" /* toggleVis */])(document.getElementById("mptStartparse"), "inline-block"); addEditor(); return; } else if (Object(utils["d" /* findtargets */])("editoritem").length > 0) { Object(utils["l" /* toggleVis */])(document.getElementById("mptStartparse")); removeEditor(); Object(parse_itin["c" /* readItinerary */])(); } bindPageLayout(); if (userSettings["a" /* default */].enableFarerules == 1) bindRulelinks(); if (userSettings["a" /* default */].timeformat == "24h") bind24HourTime(); if ( userSettings["a" /* default */].language !== "en" && translations["a" /* default */][userSettings["a" /* default */].language].resultpage !== undefined ) bindTranslations( "resultpage", userSettings["a" /* default */].language, Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1).nextElementSibling ); if (userSettings["a" /* default */].enablePricebreakdown == 1) bindPriceBreakdown(); if (userSettings["a" /* default */].enableInlineMode == 1) printCPM(); Object(links["b" /* printLinksContainer */])(); if (userSettings["a" /* default */].enableSeatguru == 1) bindSeatguru(); if (userSettings["a" /* default */].enablePlanefinder == 1) bindPlanefinder(); if (userSettings["a" /* default */].enableWheretocredit == 1) bindWheretocredit(); } function cleanUp() { // empty outputcontainer if (document.getElementById("powertoolslinkcontainer") != undefined) { var div = document.getElementById("powertoolslinkcontainer"); div.innerHTML = ""; } // S&D powertool items var elems = Object(utils["d" /* findtargets */])("powertoolsitem"); for (var i = elems.length - 1; i >= 0; i--) { elems[i].parentElement.removeChild(elems[i]); } // S&D price breakdown var pbd = Object(utils["c" /* findtarget */])("pricebreakdown", 1); if (pbd != undefined) pbd.parentElement.removeChild(pbd); } function addEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var tmp = target.innerHTML; var bc = tmp.substr(tmp.length - 2, 1); var cabin = tmp.substr(0, tmp.length - 4); var cabins = [ ["Economy", "Y"], ["Premium Economy", "Y+"], ["Business", "C"], ["First", "F"] ]; var str = '<select style="width:40px" class="editoritem">'; for (var k = 0; k < cabins.length; k++) { str += '<option value="' + cabins[k][0] + '"' + (cabins[k][0] === cabin ? ' selected="selected"' : "") + ">" + cabins[k][1] + "</option>"; } str += "</select>"; str += ' (<input type="text" class="editoritem" value="' + bc + '" style="width:20px;text-align:center">)'; target.innerHTML = str; } } } function removeEditor() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild; var cabin = target.firstElementChild.options[target.firstElementChild.selectedIndex] .value; var bc = target.firstElementChild.nextElementSibling.value; var str = cabin + " (" + bc + ")"; target.innerHTML = str; } } } function bindPageLayout() { if (userSettings["a" /* default */].enableInlineMode == 1) { Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute( "rowspan", "10" ); } else if ( userSettings["a" /* default */].enableInlineMode == 0 && userSettings["a" /* default */].enablePricebreakdown == 1 ) { Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute( "rowspan", "3" ); } else { Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute( "rowspan", "2" ); } } function bind24HourTime() { // lets do the time-replacement const segs = Object(parse_itin["b" /* getCurrentSegs */])(); if (segs.length > 0) { const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1) .nextElementSibling; for (let i = 0; i < segs.length; i++) { target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].dep.timeDisplay, "g"), segs[i].dep.time24 ); target.innerHTML = target.innerHTML.replace( new RegExp(segs[i].arr.timeDisplay, "g"), segs[i].arr.time24 ); } } } function bindRulelinks() { var i = 0; var j = 0; var t = 1; let target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); if (target != undefined) { do { var current = Number( target.firstElementChild.innerHTML.replace(/[^\d]/gi, "") ); if (i > current) { j++; i = 0; } target = target.nextElementSibling.nextElementSibling.nextElementSibling; var targeturl = window.location.href.replace(/view-details/, "view-rules") + ";fare-key=" + j + "/" + i; var newlink = document.createElement("a"); newlink.setAttribute("class", "gwt-Anchor"); newlink.setAttribute("href", targeturl); newlink.setAttribute("target", "_blank"); var linkText = document.createTextNode("rules"); newlink.appendChild(linkText); target.parentElement.replaceChild(newlink, target); i++; t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t); } while (target != undefined); } } function bindPriceBreakdown() { var basefares = 0; var taxes = 0; var surcharges = 0; var basefound = 0; var cur = ""; // define searchpattern to detect carrier imposed surcharges var searchpatt = new RegExp("((YQ|YR))"); var t = 1; var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); if (userSettings["a" /* default */].enableInlineMode == 0) { var output = ""; var count = 0; } if (target != undefined) { do { var type = target.firstChild.firstChild.nodeType; if (type == 1) { basefound = 1; //it's a basefare var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if (cur == "") cur = target.nextElementSibling.firstElementChild.innerHTML.replace( /[\d,.]/g, "" ); basefares += price; } else if (basefound == 1 && type == 3) { //its a pricenode var name = target.firstElementChild.innerHTML; var price = Number( target.nextElementSibling.firstElementChild.innerHTML.replace( /[^\d]/gi, "" ) ); if ( Object(utils["e" /* hasClass */])( target.nextElementSibling, itaSettings["a" /* default */].resultpage.htbGreyBorder ) ) { //we are done for this container var sum = basefares + taxes + surcharges; if (userSettings["a" /* default */].enableInlineMode == 1) { var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare per passenger (' + ((basefares / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Taxes per passenger (' + ((taxes / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Surcharges per passenger (' + ((surcharges / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbRight + '"><div class="gwt-Label">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); var newtr = document.createElement("tr"); newtr.innerHTML = '<td class="' + itaSettings["a" /* default */].resultpage.htbLeft + '"><div class="gwt-Label">Basefare + Taxes per passenger (' + (((basefares + taxes) / sum) * 100).toFixed(2).toString() + '%)</div></td><td class="' + itaSettings["a" /* default */].resultpage.htbGreyBorder + '"><div class="gwt-Label">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</div></td>"; target.parentElement.parentElement.insertBefore( newtr, target.parentElement ); } else { count++; output += '<table style="float:left; margin-right:15px;"><tbody>'; output += '<tr><td colspan=3 style="text-align:center;">Price breakdown ' + count + ": </td></tr>"; output += "<tr><td>" + cur + ' per mile</td><td colspan=2 style="text-align:center;">' + (sum / parse_itin["a" /* currentItin */].dist / 100).toFixed(4).toString() + "</td></tr>"; output += '<tr><td>Basefare</td><td style="padding:0px 3px;text-align:right;">' + ((basefares / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (basefares / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Tax</td><td style="padding:0px 3px;text-align:right;">' + ((taxes / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (taxes / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td>Surcharges</td><td style="padding:0px 3px;text-align:right;">' + ((surcharges / sum) * 100).toFixed(1).toString() + '%</td><td style="text-align:right;">' + cur + (surcharges / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += '<tr><td style="border-top: 1px solid #878787;padding:2px 0">Bf+Tax</td><td style="border-top: 1px solid #878787;padding:2px 3px;text-align:right;">' + (((basefares + taxes) / sum) * 100).toFixed(1).toString() + '%</td><td style="border-top: 1px solid #878787;padding:2px 0; text-align:right;">' + cur + ((basefares + taxes) / 100) .toFixed(2) .toString() .replace(/\d(?=(\d{3})+\.)/g, "$&,") + "</td></tr>"; output += "</tbody></table>"; } parse_itin["a" /* currentItin */].basefares = +(basefares / 100).toFixed(2); parse_itin["a" /* currentItin */].taxes = +(taxes / 100).toFixed(2); parse_itin["a" /* currentItin */].surcharges = +(surcharges / 100).toFixed(2); // reset var basefound = 0; basefares = 0; taxes = 0; surcharges = 0; } else { //Carrier surcharge? if (searchpatt.test(name) === true) { surcharges += price; } else { taxes += price; } } } t++; target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t); } while (target != undefined); } if (userSettings["a" /* default */].enableInlineMode == 0) { var printtarget = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1) .parentElement.parentElement.parentElement; var newtr = document.createElement("tr"); newtr.setAttribute("class", "pricebreakdown"); newtr.innerHTML = "<td><div>" + output + "</div></td>"; printtarget.parentElement.insertBefore(newtr, printtarget); } } function bindTranslations(page, lang, target) { if (translations["a" /* default */][lang] === undefined) { Object(utils["h" /* printNotification */])("Error: Translation " + lang + " not found"); return false; } if (translations["a" /* default */][lang][page] === undefined) { Object(utils["h" /* printNotification */])( "Error: Translation " + lang + " not found for page " + page ); return false; } for (let i in translations["a" /* default */][lang][page]) { const re = new RegExp(i, "g"); target.innerHTML = target.innerHTML.replace( re, translations["a" /* default */][lang][page][i] ); } } function printCPM() { Object(links["a" /* printItemInline */])( (Number(parse_itin["a" /* currentItin */].price) / Number(parse_itin["a" /* currentItin */].dist)).toFixed(4) + " cpm", "", 1 ); } function bindSeatguru() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "plane"); if (!target) { Object(utils["h" /* printNotification */])("Error: Could not find target in bindSeatguru"); return false; } else { var url = "http://www.seatguru.com/findseatmap/findseatmap.php?carrier=" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + "&flightno=" + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr + "&date=" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.month).slice(-2) + "%2F" + ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.day).slice(-2) + "%2F" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.year + "&to=&from=" + parse_itin["a" /* currentItin */].itin[i].seg[j].orig; target.children[0].innerHTML = '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindPlanefinder() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var k = 0; // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) { if ( parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr != parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr || parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440 ) break; k++; } // build the search to identify flight: var target = findItinTarget(i + 1, j + 1, "flight"); if (!target) { Object(utils["h" /* printNotification */])("Error: Could not find target in bindPlanefinder"); return false; } else { var url = "http://www.planefinder.net/data/flight/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier + parse_itin["a" /* currentItin */].itin[i].seg[j].fnr; target.children[0].innerHTML = '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">' + target.children[0].innerHTML + "</a>"; } j += k; } } } function bindWheretocredit() { for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) { // walks each leg for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) { //walks each segment of leg var target = findItinTarget(i + 1, j + 1, "cabin"); if (!target) { Object(utils["h" /* printNotification */])("Error: Could not find target in bindWheretocredit"); return false; } else { var url = "http://www.wheretocredit.com/" + parse_itin["a" /* currentItin */].itin[i].seg[j].carrier.toLowerCase() + "/" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass.toLowerCase(); target.children[0].innerHTML = target.children[0].innerHTML .replace( /<a.*?\/a>/, "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")" ) .replace( "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")", '<a href="' + url + '" target="_blank" style="text-decoration:none;color:black">(' + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")</a>" ); } } } } function findItinTarget(leg, seg, tcell) { var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1); if (!target) { Object(utils["h" /* printNotification */])("Error: Itin not found in findItinTarget-function"); return; } // go to leg var targetLeg = target.nextElementSibling.children[leg - 1]; if (targetLeg === undefined) { Object(utils["h" /* printNotification */])("Error: Leg not found in findItinTarget-function"); return; } // go to segments of leg var targetSeg = targetLeg.children[1].children; if (targetSeg.length >= 2) { // go to desired segment var index = 0; var j = 0; let i = 0; for (i = 0; i < targetSeg.length; i++) { if (Object(utils["e" /* hasClass */])(targetSeg[i], itaSettings["a" /* default */].resultpage.itinRow)) { j++; if (j >= seg) { index = i; //special handling for one-seg-legs here if (targetSeg.length === 2 || targetSeg.length === 3) { // 1. Headline 2. Flight-details 3. arrival next day.. index--; } break; } } } // end-for if (i == targetSeg.length) { //target not found Object(utils["h" /* printNotification */])( "Error: Call to unreachable Segment in Leg " + leg + " in findItinTarget-function" ); return; } var rowoffset = 0; var columnoffset = 0; switch (tcell) { case "headline": // special case here allways first row... even in one-seg-legs rowoffset = index * -1; columnoffset = 1; break; case "logo": rowoffset = 0; columnoffset = 0; break; case "airportsdate": rowoffset = 0; columnoffset = 1; break; case "flight": rowoffset = 1; columnoffset = 0; break; case "deptime": rowoffset = 1; columnoffset = 1; break; case "arrtime": rowoffset = 1; columnoffset = 2; break; case "duration": rowoffset = 1; columnoffset = 2; break; case "plane": rowoffset = 1; columnoffset = 4; break; case "cabin": rowoffset = 1; columnoffset = 5; break; default: Object(utils["h" /* printNotification */])("Error: Unknown Target in findItinTarget-function"); return; } return targetSeg[index + rowoffset].children[columnoffset]; } else { Object(utils["h" /* printNotification */])("Error: Unknown error in findItinTarget-function"); return; } } // EXTERNAL MODULE: ./src/settings/paxSettings.js var paxSettings = __webpack_require__(6); // CONCATENATED MODULE: ./src/print/settings.js /**************************************** Settings Stuff *****************************************/ function createUsersettings() { var str = ""; var settingscontainer = document.createElement("div"); settingscontainer.setAttribute("id", "mptSettingsContainer"); settingscontainer.setAttribute("style", "border-bottom: 1px dashed grey;"); settingscontainer.innerHTML = '<div style="display:inline-block;float:left;cursor:pointer;" id="passengerVisToggler">Passengers (<label id="mtpPaxCount">1a</label>)</div><div id="mptStartparse" class="invis" style="margin-left:20px;display:none;cursor:pointer">Editor-Mode:Parse!</div><div id="mtpNotification" style="margin-left:50px;display:inline-block;"></div><div style="display:inline-block;float:right;"><div id="settingsVisToggler" style="display:inline-block;cursor:pointer;">Settings</div> (v' + appSettings["a" /* default */].version + ') <div id="mptCabintoggler" style="display:inline-block;">(Cabin: <label id="mptCabinMode" style="width:30px;text-align:center;cursor:pointer;display:inline-block">Auto</label>)</div></div><div id="mptSettings" class="invis" style="display:none;border-top: 1px dotted grey;"></div><div id="mptPassengers" class="invis" style="display:none;border-top: 1px dotted grey;"></div>'; var target = document.getElementById("contentwrapper"); target.parentElement.insertBefore(settingscontainer, target); document.getElementById("settingsVisToggler").onclick = function() { Object(utils["l" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("passengerVisToggler").onclick = function() { Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers")); }; // Build settings target = document.getElementById("mptSettings"); str = '<div id="mptrestoredefault" style="text-align:right;font-weight:bold;text-decoration:underline;">Restore Defaults</div>'; str += '<div style="text-align:center;font-weight:bold">**** Display Settings: ****</div>'; str += '<div style="margin:5px 0;"><div style="float:left;width:25%">'; str += '<div id="mpttimeformat">Time Format: <label style="cursor:pointer;">' + printSettingsvalue("timeformat") + "</label></div>"; str += '<div id="mptlanguage">Language: <label style="cursor:pointer;">' + printSettingsvalue("language") + "</label></div>"; str += '</div><div style="float:left;width:25%">'; str += '<div id="mptenableDeviders">Enable dividers: <label style="cursor:pointer;">' + printSettingsvalue("enableDeviders") + "</label></div>"; str += '<div id="mptenableInlineMode">Inline Mode: <label style="cursor:pointer;">' + printSettingsvalue("enableInlineMode") + "</label></div>"; str += '</div><div style="float:left;width:25%">'; str += '<div id="mptenableFarerules">Open fare-rules in new window: <label style="cursor:pointer;">' + printSettingsvalue("enableFarerules") + "</label></div>"; str += '<div id="mptenablePricebreakdown">Price breakdown: <label style="cursor:pointer;">' + printSettingsvalue("enablePricebreakdown") + "</label></div>"; str += '</div><div style="float:left;width:25%">'; str += '<div id="mptlinkFontsize">Link font size: <label style="cursor:pointer;">' + printSettingsvalue("linkFontsize") + "</label>%</div>"; str += '<div id="mptshowAllAirlines">All airlines: <label style="cursor:pointer;">' + printSettingsvalue("showAllAirlines") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Feature Settings: ****</div>'; str += '<div style="margin:5px 0"><div style="float:left;width:25%">'; str += '<div id="mptenableEditormode">Editor mode: <label style="cursor:pointer;">' + printSettingsvalue("enableEditormode") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableIMGautoload">Images autoload: <label style="cursor:pointer;">' + printSettingsvalue("enableIMGautoload") + "</label></div>"; str += '</div><div style="float:left;width:33%">'; str += '<div id="mptenableWheretocredit">Enable WhereToCredit: <label style="cursor:pointer;">' + printSettingsvalue("enableWheretocredit") + "</label></div>"; str += '<div id="mptenablePlanefinder">Enable Planefinder: <label style="cursor:pointer;">' + printSettingsvalue("enablePlanefinder") + "</label></div>"; str += '<div id="mptenableSeatguru">Enable Seatguru: <label style="cursor:pointer;">' + printSettingsvalue("enableSeatguru") + "</label></div>"; str += '</div><div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold">**** Link Settings: ****</div>'; str += '<div style="margin:5px 0">'; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { str += `<div id="mpt${setting}" style="width:33%;float:left;">${ userSettings["d" /* registeredSettings */][setting].name }: <label style="cursor:pointer;">${printSettingsvalue( setting )}</label></div>`; }); str += '<div style="clear:both"></div></div>'; str += '<div style="text-align:center;font-weight:bold"><label id="configcloser" style="cursor:pointer;text-decoration:underline;">Close</label><div>'; target.innerHTML = str; // these onClick event handlers need only be added once: document.getElementById("mptrestoredefault").onclick = function() { restoreDefaultSettings(); }; document.getElementById("mpttimeformat").onclick = function() { toggleSettings("timeformat"); }; document.getElementById("mptlanguage").onclick = function() { toggleSettings("language"); }; document.getElementById("mptenableDeviders").onclick = function() { toggleSettings("enableDeviders"); }; document.getElementById("mptenableInlineMode").onclick = function() { toggleSettings("enableInlineMode"); }; document.getElementById("mptenableEditormode").onclick = function() { toggleSettings("enableEditormode"); }; document.getElementById("mptenableIMGautoload").onclick = function() { toggleSettings("enableIMGautoload"); }; document.getElementById("mptenableFarerules").onclick = function() { toggleSettings("enableFarerules"); }; document.getElementById("mptenablePricebreakdown").onclick = function() { toggleSettings("enablePricebreakdown"); }; document.getElementById("mptlinkFontsize").onclick = function() { toggleSettings("linkFontsize"); }; document.getElementById("mptshowAllAirlines").onclick = function() { toggleSettings("showAllAirlines"); }; document.getElementById("mptenablePlanefinder").onclick = function() { toggleSettings("enablePlanefinder"); }; document.getElementById("mptenableSeatguru").onclick = function() { toggleSettings("enableSeatguru"); }; document.getElementById("mptenableWheretocredit").onclick = function() { toggleSettings("enableWheretocredit"); }; document.getElementById("mptCabintoggler").onclick = function() { toggleSettings("cabin"); }; document.getElementById("configcloser").onclick = function() { Object(utils["l" /* toggleVis */])(document.getElementById("mptSettings")); }; document.getElementById("mptStartparse").onclick = function() { setTimeout(function() { render(); }, 50); }; Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => { document.getElementById("mpt" + setting).onclick = function() { toggleSettings(setting); }; }); // Build passengers target = document.getElementById("mptPassengers"); str = '<div style="float:left;width:25%">'; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Adults: </label> <select name="numAdults" id="numAdults" style="width:50px">'; for (var i = 1; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Lap): </label> <select name="numInfantsLap" id="numInfantsLap" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Seat): </label> <select name="numInfantsSeat" id="numInfantsSeat" style="width:50px">'; for (var i = 0; i <= 9; i++) { str += "<option>" + i + "</option>"; } str += "</select></div>"; str += '</div><div style="float:left;width:25%">'; for (var k = 1; k <= 3; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 4; k <= 6; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '</div><div style="float:left;width:25%">'; for (var k = 7; k <= 8; k++) { str += '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' + k + ' - Age: </label> <select name="child' + k + 'age" id="child' + k + 'age" style="width:50px">'; str += '<option value="-1">-</option>'; for (var i = 2; i <= 17; i++) { str += '<option value="' + i + '">' + i + "</option>"; } str += "</select></div>"; } str += '<div style="width:150px;margin:2px 0"><div id="mtpConfirmPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Confirm</div><div id="mtpCancelPax" style="float:left;width:50%;text-align:center;cursor:pointer;font-weight:bold">Cancel</div></div>'; str += '</div><div style="clear:both;"></div>'; target.innerHTML = str; document.getElementById("mtpCancelPax").onclick = function() { Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers")); }; document.getElementById("mtpConfirmPax").onclick = function() { processPassengers(); }; } function restoreDefaultSettings() { // this function will remove any saved settings and restore default values if ( window.confirm( "Are you sure you want to reset any saved settings to the default values? The page will automatically reload to complete the reset." ) ) { (async () => { if (typeof GM === "undefined" || typeof GM.info != "undefined") { await Object(userSettings["e" /* saveUserSettings */])(null); } // Reload the current page: window.location.reload(); })(); // end async for GM4 } } function toggleSettings(target) { console.log("toggleSettings called. target=" + target); if (userSettings["d" /* registeredSettings */][target] && userSettings["d" /* registeredSettings */][target].values) { const pos = findPositionForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); if (pos >= userSettings["d" /* registeredSettings */][target].values.length - 1 || pos === -1) { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[0].value; } else { userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[pos + 1].value; } } else { switch (target) { case "timeformat": if (userSettings["a" /* default */].timeformat == "12h") { userSettings["a" /* default */].timeformat = "24h"; } else { userSettings["a" /* default */].timeformat = "12h"; } break; case "language": if (userSettings["a" /* default */].language == "de") { userSettings["a" /* default */].language = "en"; } else { userSettings["a" /* default */].language = "de"; } break; case "linkFontsize": if ( userSettings["a" /* default */].linkFontsize <= 190 && userSettings["a" /* default */].linkFontsize >= 50 ) { userSettings["a" /* default */].linkFontsize += 10; } else { userSettings["a" /* default */].linkFontsize = 50; } break; case "cabin": if (appSettings["a" /* default */].cabin === "Auto") { appSettings["a" /* default */].cabin = "Y"; } else if (appSettings["a" /* default */].cabin === "Y") { appSettings["a" /* default */].cabin = "Y+"; } else if (appSettings["a" /* default */].cabin === "Y+") { appSettings["a" /* default */].cabin = "C"; } else if (appSettings["a" /* default */].cabin === "C") { appSettings["a" /* default */].cabin = "F"; } else if (appSettings["a" /* default */].cabin === "F") { appSettings["a" /* default */].cabin = "Auto"; } document.getElementById("mptCabinMode").innerHTML = appSettings["a" /* default */].cabin; // refresh links Object(links["b" /* printLinksContainer */])(); break; default: if (userSettings["a" /* default */][target] == 1) { userSettings["a" /* default */][target] = 0; } else { userSettings["a" /* default */][target] = 1; } } } document.getElementById( "mpt" + target ).firstElementChild.innerHTML = printSettingsvalue(target); Object(userSettings["e" /* saveUserSettings */])(); } function processPassengers() { var paxText = ""; var e = document.getElementById("numAdults"); paxSettings["a" /* default */].adults = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsLap"); paxSettings["a" /* default */].infantsLap = Number(e.options[e.selectedIndex].value); e = document.getElementById("numInfantsSeat"); paxSettings["a" /* default */].infantsSeat = Number(e.options[e.selectedIndex].value); paxSettings["a" /* default */].cAges = new Array(); for (var i = 1; i <= 8; i++) { processChild("child" + i + "age"); } paxText = paxSettings["a" /* default */].adults + "a" + (paxSettings["a" /* default */].cAges.length > 0 ? " " + paxSettings["a" /* default */].cAges.length + "c" : "") + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat > 0 ? " " + (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat) + "i" : ""); document.getElementById("mtpPaxCount").innerHTML = paxText; Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers")); // reload links Object(links["b" /* printLinksContainer */])(); } function processChild(target) { var e = document.getElementById(target); var tmp = 0; tmp = Number(e.options[e.selectedIndex].value); if (tmp >= 2) { paxSettings["a" /* default */].cAges.push(tmp); } } function printSettingsvalue(target) { if (userSettings["d" /* registeredSettings */][target]) { return findNameForValue( userSettings["a" /* default */][target], userSettings["d" /* registeredSettings */][target].values ); } switch (target) { case "timeformat": return userSettings["a" /* default */].timeformat; case "language": return userSettings["a" /* default */].language; case "linkFontsize": return userSettings["a" /* default */].linkFontsize.toString(); default: return boolToEnabled(userSettings["a" /* default */][target]); } } function findNameForValue(needle, haystack) { var ret = "Unknown"; for (var i in haystack) { if (haystack[i].value == needle) { return haystack[i].name; } } return ret; } function findPositionForValue(needle, haystack) { return haystack.findIndex(o => o.value == needle); } function boolToEnabled(value) { if (value == 1) { return "enabled"; } else { return "disabled"; } } // CONCATENATED MODULE: ./src/index.js /**************************************** Start Script *****************************************/ // *** DO NOT CHANGE BELOW THIS LINE***/ (async () => { await Object(userSettings["b" /* loadUserSettings */])(); createUsersettings(); injectCss(); if (window.top === window.self) { if (appSettings["a" /* default */].scriptEngine === 0) { startScript(); } else { // execute language detection and afterwards functions for current page if (typeof window.addEventListener !== "undefined") { window.addEventListener("load", () => startScript(), false); } else { window.onload = () => startScript(); } } } })(); // end async for GM4 function startScript() { if (window.location.href !== appSettings["a" /* default */].laststatus) { setTimeout(function() { Object(appSettings["d" /* reset */])(); cleanUp(); getPageLang(); }, 100); appSettings["a" /* default */].laststatus = window.location.href; } if (appSettings["a" /* default */].scriptrunning === 1) { setTimeout(function() { startScript(); }, 500); } } /**************************************** Get Language *****************************************/ function getPageLang() { if (window.location.href.indexOf("view-details") != -1) { setTimeout(function() { fePS(); }, 200); } else if ( window.location.href.indexOf("#search:") != -1 || window.location.href == "https://matrix.itasoftware.com/" || window.location.href == "https://matrix.itasoftware.com/" ) { setTimeout(function() { startPage(); }, 200); } } /********************************************* Start page *********************************************/ function startPage() { // try to get content if (!Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.startpage.maindiv, 1)) { Object(utils["h" /* printNotification */])("Error: Unable to find content on start page."); return false; } else { // apply style-fix const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].startpage.maindiv, 1); target.children[0].children[0].children[0].children[0].setAttribute( "valign", "top" ); } } /********************************************* Result page *********************************************/ //Primary function for extracting flight data from ITA/Matrix function fePS() { // try to get content const itin = Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.resultpage.itin, 1); if (!itin) { Object(utils["h" /* printNotification */])("Error: Unable to find Content on result page."); return false; } // retry if itin not loaded if (itin.parentElement.previousElementSibling.style.display != "none") { appSettings["a" /* default */].retrycount++; if (appSettings["a" /* default */].retrycount > 50) { Object(utils["h" /* printNotification */])( "Error: Timeout on result page. Content not found after 10s." ); return false; } setTimeout(function() { fePS(); }, 200); return false; } // do some self-testing to prevent crashing on class-changes for (let i in itaSettings["a" /* default */].resultpage) { if (Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage[i], 1) === undefined) { Object(utils["h" /* printNotification */])( "Error: Unable to find class " + itaSettings["a" /* default */].resultpage[i] + " for " + i + "." ); return false; } } Object(parse_itin["c" /* readItinerary */])(); render(); } function injectCss() { var css = "", head = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style"); style.type = "text/css"; css += ".pt-hover-menu { position:absolute; padding: 8px; background-color: #FFF; border: 1px solid #808080; display:none; }"; css += ".pt-hover-container:hover .pt-hover-menu { display:inline; }"; style.appendChild(document.createTextNode(css)); head.appendChild(style); } /***/ }) /******/ ]);