// ==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);
}
/***/ })
/******/ ]);