ITA Matrix Powertools

Adds new features and builds fare purchase links for ITA Matrix

当前为 2020-01-27 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name ITA Matrix Powertools
  3. // @namespace https://github.com/adamhwang/ita-matrix-powertools
  4. // @description Adds new features and builds fare purchase links for ITA Matrix
  5. // @version 0.42.0
  6. // @icon https://raw.githubusercontent.com/adamhwang/ita-matrix-powertools/master/icons/icon32.png
  7. // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
  8. // @grant GM.getValue
  9. // @grant GM_setValue
  10. // @grant GM.setValue
  11. // @grant GM_setValue
  12. // @include http*://matrix.itasoftware.com/*
  13. // @license GPL-2.0-only
  14. // ==/UserScript==
  15.  
  16. /*
  17. Written by paul21, Steppo & Adam Hwang (IAkH) of FlyerTalk.com
  18. http://www.flyertalk.com/forum/members/paul21.html
  19. Includes contriutions by https://github.com/adamhwang/ita-matrix-powertools/blob/master/AUTHORS
  20. GNU General Public License v2.0
  21. */
  22.  
  23. //------------------------------------------------------------------------------
  24. // <auto-generated>
  25. // This code was generated by a tool:
  26. // `npm run build`
  27. //
  28. // Changes to this file may cause incorrect behavior and will be lost if
  29. // the code is regenerated.
  30. // </auto-generated>
  31. //------------------------------------------------------------------------------
  32.  
  33. /******/ (function(modules) { // webpackBootstrap
  34. /******/ // The module cache
  35. /******/ var installedModules = {};
  36. /******/
  37. /******/ // The require function
  38. /******/ function __webpack_require__(moduleId) {
  39. /******/
  40. /******/ // Check if module is in cache
  41. /******/ if(installedModules[moduleId]) {
  42. /******/ return installedModules[moduleId].exports;
  43. /******/ }
  44. /******/ // Create a new module (and put it into the cache)
  45. /******/ var module = installedModules[moduleId] = {
  46. /******/ i: moduleId,
  47. /******/ l: false,
  48. /******/ exports: {}
  49. /******/ };
  50. /******/
  51. /******/ // Execute the module function
  52. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  53. /******/
  54. /******/ // Flag the module as loaded
  55. /******/ module.l = true;
  56. /******/
  57. /******/ // Return the exports of the module
  58. /******/ return module.exports;
  59. /******/ }
  60. /******/
  61. /******/
  62. /******/ // expose the modules object (__webpack_modules__)
  63. /******/ __webpack_require__.m = modules;
  64. /******/
  65. /******/ // expose the module cache
  66. /******/ __webpack_require__.c = installedModules;
  67. /******/
  68. /******/ // define getter function for harmony exports
  69. /******/ __webpack_require__.d = function(exports, name, getter) {
  70. /******/ if(!__webpack_require__.o(exports, name)) {
  71. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  72. /******/ }
  73. /******/ };
  74. /******/
  75. /******/ // define __esModule on exports
  76. /******/ __webpack_require__.r = function(exports) {
  77. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  78. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  79. /******/ }
  80. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  81. /******/ };
  82. /******/
  83. /******/ // create a fake namespace object
  84. /******/ // mode & 1: value is a module id, require it
  85. /******/ // mode & 2: merge all properties of value into the ns
  86. /******/ // mode & 4: return value when already ns object
  87. /******/ // mode & 8|1: behave like require
  88. /******/ __webpack_require__.t = function(value, mode) {
  89. /******/ if(mode & 1) value = __webpack_require__(value);
  90. /******/ if(mode & 8) return value;
  91. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  92. /******/ var ns = Object.create(null);
  93. /******/ __webpack_require__.r(ns);
  94. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  95. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  96. /******/ return ns;
  97. /******/ };
  98. /******/
  99. /******/ // getDefaultExport function for compatibility with non-harmony modules
  100. /******/ __webpack_require__.n = function(module) {
  101. /******/ var getter = module && module.__esModule ?
  102. /******/ function getDefault() { return module['default']; } :
  103. /******/ function getModuleExports() { return module; };
  104. /******/ __webpack_require__.d(getter, 'a', getter);
  105. /******/ return getter;
  106. /******/ };
  107. /******/
  108. /******/ // Object.prototype.hasOwnProperty.call
  109. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  110. /******/
  111. /******/ // __webpack_public_path__
  112. /******/ __webpack_require__.p = "";
  113. /******/
  114. /******/
  115. /******/ // Load entry module and return exports
  116. /******/ return __webpack_require__(__webpack_require__.s = 36);
  117. /******/ })
  118. /************************************************************************/
  119. /******/ ([
  120. /* 0 */
  121. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  122.  
  123. "use strict";
  124. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentSegs; });
  125. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return currentItin; });
  126. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return readItinerary; });
  127. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
  128.  
  129.  
  130. // initialize local storage for current itin
  131. /** @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; }[]}[]}} */
  132. let currentItin = new Object();
  133.  
  134. const matrixCurrencies = [
  135. { p: /US\$/, c: "USD" },
  136. { p: /\€/, c: "EUR" },
  137. { p: /\£/, c: "GBP" },
  138. { p: /CA\$/, c: "CAD" },
  139. { p: /RS\./, c: "INR" }
  140. ];
  141.  
  142. function readItinerary() {
  143. // the magical part! :-)
  144. var itin = new Array(),
  145. carrieruarray = new Array(),
  146. farebases = new Array(),
  147. dirtyFare = new Array();
  148. var itinCur = "";
  149. var html = document.getElementById("contentwrapper").innerHTML;
  150. var re = /colspan\=\"5\"[^\(]+\(([\w]{3})[^\(]+\(([\w]{3})/g;
  151. var legs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  152. // Got our outer legs now:
  153. for (i = 0; i < legs.length; i += 2) {
  154. var legobj = {};
  155. // prepare all elements but fill later
  156. legobj.arr = {};
  157. legobj.dep = {};
  158. legobj.orig = legs[i];
  159. legobj.dest = legs[i + 1];
  160. legobj.seg = new Array();
  161. itin.push(legobj);
  162. }
  163. // extract basefares
  164. var re = /Carrier\s([\w]{2})\s([\w]+).*?Covers\s([\w\(\)\s\-,]+)/g;
  165. var bfs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  166. var bf = { c: "", f: "", l: new Array() };
  167. for (i = 0; i < bfs.length; i += 3) {
  168. bf.c = bfs[i];
  169. bf.f = bfs[i + 1];
  170. farebases.push(bf.f);
  171. bf.l = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(bfs[i + 2], /(\w\w\w\-\w\w\w)/g);
  172. for (j = 0; j < bf.l.length; j++) {
  173. dirtyFare.push(bf.l[j] + "-" + bf.f + "-" + bf.c);
  174. }
  175. }
  176. var segs = new Array();
  177. 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;
  178. segs = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  179. // used massive regex to get all our segment-info in one extraction
  180. var legnr = 0;
  181. var segnr = 0;
  182. for (i = 0; i < segs.length; i += 15) {
  183. const dep12 = return12htime(segs[i + 6]);
  184. const dep24 = (dep12.length == 4 ? "0" : "") + dep12;
  185. const arr12 = return12htime(segs[i + 7]);
  186. const arr24 = (arr12.length == 4 ? "0" : "") + arr12;
  187. const addinformations = parseAddInfo(segs[i + 13]);
  188. const day = parseInt(segs[i + 4]);
  189. const month = monthnameToNumber(segs[i + 3]);
  190. const year = getFlightYear(day, month);
  191. let seg = {
  192. carrier: segs[i],
  193. orig: segs[i + 1],
  194. dest: segs[i + 2],
  195. dep: {
  196. day,
  197. month,
  198. year,
  199. timeDisplay: segs[i + 6],
  200. time: dep12,
  201. time24: dep24
  202. },
  203. arr: {
  204. day: addinformations.arrDate ? addinformations.arrDate.day : day,
  205. month: addinformations.arrDate ? addinformations.arrDate.month : month,
  206. year: addinformations.arrDate ? addinformations.arrDate.year : year,
  207. timeDisplay: segs[i + 7],
  208. time: arr12,
  209. time24: arr24
  210. },
  211. fnr: segs[i + 5],
  212. duration: parseInt(segs[i + 8]) * 60 + parseInt(segs[i + 9]),
  213. aircraft: segs[i + 10],
  214. cabin: getcabincode(segs[i + 11]),
  215. bookingclass: segs[i + 12],
  216. codeshare: addinformations.codeshare,
  217. layoverduration: addinformations.layoverduration,
  218. airportchange: addinformations.airportchange,
  219. farebase: "",
  220. farecarrier: ""
  221. };
  222.  
  223. // find farecode for leg
  224. for (var j = 0; j < dirtyFare.length; j++) {
  225. if (dirtyFare[j].indexOf(seg.orig + "-" + seg.dest + "-") != -1) {
  226. //found farebase of this segment
  227. var tmp = dirtyFare[j].split("-");
  228. seg.farebase = tmp[2];
  229. seg.farecarrier = tmp[3];
  230. dirtyFare[j] = seg.farebase; // avoid reuse
  231. j = dirtyFare.length;
  232. }
  233. }
  234. if (itin[legnr] === undefined) itin[legnr] = new Object();
  235. if (itin[legnr].seg === undefined) itin[legnr].seg = new Array();
  236. itin[legnr].seg.push(seg);
  237. // push carrier
  238. if (!Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* inArray */ "f"])(seg.carrier, carrieruarray)) {
  239. carrieruarray.push(seg.carrier);
  240. }
  241. // push dates and times into leg-array
  242. if (segnr == 0) {
  243. if (itin[legnr].dep === undefined) itin[legnr].dep = new Object();
  244. itin[legnr].dep.day = seg.dep.day;
  245. itin[legnr].dep.month = seg.dep.month;
  246. itin[legnr].dep.year = seg.dep.year;
  247. itin[legnr].dep.time = seg.dep.time;
  248. }
  249. if (itin[legnr].arr === undefined) itin[legnr].arr = new Object();
  250. itin[legnr].arr.day = seg.arr.day;
  251. itin[legnr].arr.month = seg.arr.month;
  252. itin[legnr].arr.year = seg.arr.year;
  253. itin[legnr].arr.time = seg.arr.time;
  254. segnr++;
  255. // check for legchange
  256. if (segs[i + 14] == "table") {
  257. legnr++;
  258. segnr = 0;
  259. }
  260. }
  261. // We need to apply remaining fares (Not nonstop - but direct flights)
  262. for (var i = 0; i < dirtyFare.length; i++) {
  263. var curfare = dirtyFare[i].split("-");
  264. if (curfare.length > 1) {
  265. var l = 0;
  266. //currently unused so walk through itin to find flights
  267. for (var legnr = 0; legnr < itin.length; legnr++) {
  268. for (var segnr = 0; segnr < itin[legnr].seg.length; segnr++) {
  269. if (
  270. itin[legnr].seg[segnr].orig == curfare[0] &&
  271. itin[legnr].seg[segnr].dest == curfare[1] &&
  272. itin[legnr].seg[segnr].farebase == ""
  273. ) {
  274. // found seg for fare
  275. itin[legnr].seg[segnr].farebase = curfare[2];
  276. itin[legnr].seg[segnr].farecarrier = curfare[3];
  277. dirtyFare[i] = curfare[2];
  278. segnr = itin[legnr].seg.length;
  279. l = 1;
  280. } else if (
  281. itin[legnr].seg[segnr].orig == curfare[0] &&
  282. itin[legnr].seg[segnr].dest != curfare[1] &&
  283. itin[legnr].seg[segnr].farebase == ""
  284. ) {
  285. // found start but multiple segs -> find end
  286. for (var j = segnr + 1; j < itin[legnr].seg.length; j++) {
  287. if (
  288. itin[legnr].seg[j].dest == curfare[1] &&
  289. itin[legnr].seg[j].farebase == ""
  290. ) {
  291. //found end attach fares
  292. for (var k = segnr; k <= j; k++) {
  293. itin[legnr].seg[k].farebase = curfare[2];
  294. itin[legnr].seg[k].farecarrier = curfare[3];
  295. dirtyFare[i] = curfare[2];
  296. }
  297. j = itin[legnr].seg.length;
  298. segnr = itin[legnr].seg.length;
  299. l = 1;
  300. } else if (itin[legnr].seg[segnr + j].farebase != "") {
  301. //farebase attached - skip
  302. j = itin[legnr].seg.length;
  303. }
  304. }
  305. }
  306. }
  307. if (l == 1) {
  308. legnr = itin.length;
  309. }
  310. }
  311. if (l == 0) {
  312. Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "h"])("Unused fare:" + dirtyFare[i]);
  313. }
  314. }
  315. }
  316. // Combine technical stops into a single segment
  317. itin.forEach(itin => {
  318. if (itin.seg) itin.seg = combineTechnicalStops(itin.seg);
  319. });
  320. // extract mileage paxcount and total price
  321. var milepaxprice = new Array();
  322. var re = /Mileage.*?([0-9,]+)\stotal\smiles.*?Total\scost\sfor\s([0-9])\spassenger.*?<div.*?>(.*?([1-9][0-9,.]+)[^\<]*)/g;
  323. milepaxprice = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(html, re);
  324. // detect currency
  325. for (i = 0; i < matrixCurrencies.length; i++) {
  326. if (matrixCurrencies[i].p.test(milepaxprice[2]) === true) {
  327. itinCur = matrixCurrencies[i].c;
  328. i = matrixCurrencies.length;
  329. }
  330. }
  331. currentItin = {
  332. itin: itin,
  333. price: Number(milepaxprice[3].replace(/\,/, "")),
  334. numPax: Number(milepaxprice[1]),
  335. carriers: carrieruarray,
  336. cur: itinCur,
  337. farebases: farebases,
  338. dist: Number(milepaxprice[0].replace(/\,/, ""))
  339. };
  340. console.log("parsed itinerary: ", currentItin);
  341. }
  342.  
  343. function parseAddInfo(info) {
  344. var ret = {
  345. codeshare: 0,
  346. layoverduration: 0,
  347. airportchange: 0,
  348. arrDate: null
  349. };
  350. var re = /contains\s*airport\s*changes/g;
  351. if (re.test(info) === true) {
  352. ret.airportchange = 1;
  353. }
  354. var re = /OPERATED\s*BY/g;
  355. if (re.test(info) === true) {
  356. ret.codeshare = 1;
  357. }
  358. var temp = new Array();
  359. var re = /\,\s*([a-zA-Z]{3})\s*([0-9]{1,2})/g;
  360. temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re);
  361. if (temp.length == 2) {
  362. // Got datechange
  363. const month = monthnameToNumber(temp[0]);
  364. const day = parseInt(temp[1]);
  365. ret.arrDate = {
  366. month,
  367. day,
  368. year: getFlightYear(day, month)
  369. };
  370. }
  371. var temp = new Array();
  372. var re = /([0-9]{1,2})h\s([0-9]{1,2})m/g;
  373. temp = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* exRE */ "b"])(info, re);
  374. if (temp.length == 2) {
  375. // Got layover
  376. ret.layoverduration = parseInt(temp[0]) * 60 + parseInt(temp[1]);
  377. }
  378. return ret;
  379. }
  380.  
  381. function getCurrentSegs() {
  382. return currentItin.itin
  383. .map(function(p) {
  384. return p.seg;
  385. })
  386. .reduce(function(a, b) {
  387. return a.concat(b);
  388. }, []);
  389. }
  390.  
  391. function combineTechnicalStops(allSegs) {
  392. if (allSegs.length <= 1) return allSegs;
  393.  
  394. const segs = [];
  395.  
  396. for (let i = 0; i < allSegs.length; i++) {
  397. const currSeg = allSegs[i];
  398. const nextSeg = allSegs[i + 1];
  399.  
  400. if (
  401. nextSeg &&
  402. nextSeg.fnr === currSeg.fnr &&
  403. nextSeg.orig === currSeg.dest
  404. ) {
  405. segs.push({
  406. ...currSeg,
  407. dest: nextSeg.dest,
  408. arr: nextSeg.arr
  409. });
  410. i++;
  411. } else {
  412. segs.push(currSeg);
  413. }
  414. }
  415.  
  416. return segs;
  417. }
  418.  
  419. /**************************************** General Functions *****************************************/
  420. function getcabincode(cabin) {
  421. switch (cabin) {
  422. case "E":
  423. cabin = 0;
  424. break;
  425. case "P":
  426. cabin = 1;
  427. break;
  428. case "B":
  429. cabin = 2;
  430. break;
  431. case "F":
  432. cabin = 3;
  433. break;
  434. default:
  435. cabin = 0;
  436. }
  437. return cabin;
  438. }
  439.  
  440. function monthnameToNumber(month) {
  441. var monthnames = [
  442. "JAN",
  443. "FEB",
  444. "MAR",
  445. "APR",
  446. "MAY",
  447. "JUN",
  448. "JUL",
  449. "AUG",
  450. "SEP",
  451. "OCT",
  452. "NOV",
  453. "DEC"
  454. ];
  455. return monthnames.indexOf(month.toUpperCase()) + 1;
  456. }
  457.  
  458. function getFlightYear(day, month) {
  459. //Do date magic
  460. var d = new Date();
  461. var cmonth = d.getMonth();
  462. var cday = d.getDate();
  463. var cyear = d.getFullYear();
  464. // make sure to handle the 0-11 issue of getMonth()
  465. if (cmonth > month - 1 || (cmonth == month - 1 && day < cday)) {
  466. cyear += 1; // The flight is next year
  467. }
  468. return cyear;
  469. }
  470.  
  471. function return12htime(match) {
  472. var regex = /([01]?\d)(:\d{2})(AM|PM|am|pm| AM| PM| am| pm)/g;
  473. match = regex.exec(match);
  474. var offset = 0;
  475. match[3] = trimStr(match[3]);
  476. if ((match[3] == "AM" || match[3] == "am") && match[1] == "12") {
  477. offset = -12;
  478. } else if ((match[3] == "PM" || match[3] == "pm") && match[1] != "12") {
  479. offset = 12;
  480. }
  481. return +match[1] + offset + match[2];
  482. }
  483.  
  484. function trimStr(x) {
  485. return x.replace(/^\s+|\s+$/gm, "");
  486. }
  487.  
  488.  
  489.  
  490.  
  491. /***/ }),
  492. /* 1 */
  493. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  494.  
  495. "use strict";
  496. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return registeredSettings; });
  497. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerSetting; });
  498. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return saveUserSettings; });
  499. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return loadUserSettings; });
  500. /* harmony import */ var _appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  501.  
  502.  
  503. const defaultSettings = {
  504. timeformat: "12h", // replaces times on resultpage - valid: 12h / 24h
  505. language: "en", // replaces several items on resultpage - valid: en / de
  506. linkFontsize: 100, // fontsize of links - valid: 50-200
  507. showAllAirlines: 0, // shows all airline links regardless of search results
  508.  
  509. // booleans to toggle specific settings:
  510. enableDeviders: 1, // Print deviders in links after group (airlines/otas/other stuff) - valid: 0 / 1
  511. enableInlineMode: 0, // enables inline mode - valid: 0 / 1
  512. enableEditormode: 0, // prevents the script from automatically parsing the itinerary - valid: 0 / 1
  513. enableIMGautoload: 0, // enables images to auto load - valid: 0 / 1
  514. enableFarerules: 1, // enables fare rule opening in new window - valid: 0 / 1
  515. enablePricebreakdown: 1, // enables price breakdown - valid: 0 / 1
  516. enablePlanefinder: 1, // enables Planefinder - click on flight numbers to open Planefinder for this flight - valid: 0 / 1
  517. enableSeatguru: 1, // enables Seatguru - click on plane type to open Seatguru for this flight - valid: 0 / 1
  518. enableWheretocredit: 1 // enables Wheretocredit - click on booking class to open wheretocredit for this flight - valid: 0 / 1
  519. };
  520.  
  521. const registeredSettings = {};
  522.  
  523. /**
  524. * Registers a link
  525. * @param {string} name
  526. * @param {string} id
  527. * @param {{ name: string, value: string }[]} values
  528. * @param {string} defaultValue
  529. */
  530. function registerSetting(name, id, values, defaultValue) {
  531. registeredSettings[id] = { name, values };
  532. defaultSettings[id] = defaultValue;
  533. }
  534.  
  535. async function saveUserSettings(settings = defaultSettings) {
  536. switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) {
  537. case 0:
  538. localStorage.setItem("mptUserSettings", JSON.stringify(settings));
  539. break;
  540. case 1:
  541. await GM.setValue("mptUserSettings", JSON.stringify(settings));
  542. break;
  543. }
  544. }
  545.  
  546. async function loadUserSettings() {
  547. let gmSavedUserSettings;
  548. switch (_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].scriptEngine) {
  549. case 0:
  550. gmSavedUserSettings = localStorage.getItem("mptUserSettings");
  551. break;
  552. case 1:
  553. gmSavedUserSettings = await GM.getValue("mptUserSettings");
  554. break;
  555. }
  556. console.log("mptSavedUserSettings: " + gmSavedUserSettings);
  557. if (!gmSavedUserSettings || typeof gmSavedUserSettings !== "string") return;
  558.  
  559. /** @type typeof defaultSettings */
  560. const savedUserSettings = JSON.parse(gmSavedUserSettings);
  561. if (!savedUserSettings) return;
  562.  
  563. Object.assign(defaultSettings, savedUserSettings);
  564. }
  565.  
  566. /* harmony default export */ __webpack_exports__["a"] = (defaultSettings);
  567.  
  568.  
  569. /***/ }),
  570. /* 2 */
  571. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  572.  
  573. "use strict";
  574. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return findtarget; });
  575. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return findtargets; });
  576. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasClass; });
  577. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return toggleVis; });
  578. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return clearNotification; });
  579. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return printNotification; });
  580. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return exRE; });
  581. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return inArray; });
  582. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return to2digits; });
  583. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return to4digits; });
  584. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return to4digitTime; });
  585. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return monthnumberToName; });
  586. function findtarget(tclass, nth) {
  587. var elems = document.getElementsByTagName("*"),
  588. i;
  589. let j = 0;
  590. for (i in elems) {
  591. if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) {
  592. j++;
  593. if (j == nth) {
  594. return elems[i];
  595. break;
  596. }
  597. }
  598. }
  599. }
  600.  
  601. function findtargets(tclass) {
  602. var elems = document.getElementsByTagName("*"),
  603. i;
  604. var ret = new Array();
  605. for (i in elems) {
  606. if ((" " + elems[i].className + " ").indexOf(" " + tclass + " ") > -1) {
  607. ret.push(elems[i]);
  608. }
  609. }
  610. return ret;
  611. }
  612.  
  613. function hasClass(element, cls) {
  614. return (" " + element.className + " ").indexOf(" " + cls + " ") > -1;
  615. }
  616.  
  617. function toggleVis(target, blockType = "block") {
  618. if (hasClass(target, "vis")) {
  619. target.setAttribute("class", "invis");
  620. target.style.display = "none";
  621. } else {
  622. target.setAttribute("class", "vis");
  623. target.style.display = blockType;
  624. }
  625. }
  626.  
  627. function clearNotification() {
  628. var target = document.getElementById("mtpNotification");
  629. target.innerHTML = "";
  630. }
  631.  
  632. function printNotification(text) {
  633. // log the text to the browser's developer console:
  634. console.log(text);
  635. // display for user:
  636. var target = document.getElementById("mtpNotification");
  637. if (target === null) {
  638. //alert("mtp Error: Notification container not Found");
  639. console.log("mtp Error: Notification container not Found");
  640. } else {
  641. //possibility to print multiple notifications
  642. var temp = document.createElement("div");
  643. temp.appendChild(document.createTextNode(text));
  644. target.appendChild(temp);
  645. }
  646. }
  647.  
  648. //Parses all of the outputs of regexp matches into an array
  649. function exRE(str, re) {
  650. var ret = new Array();
  651. var m;
  652. var i = 0;
  653. while ((m = re.exec(str)) != null) {
  654. if (m.index === re.lastIndex) {
  655. re.lastIndex++;
  656. }
  657. for (let k = 1; k < m.length; k++) {
  658. ret[i++] = m[k];
  659. }
  660. }
  661. return ret;
  662. }
  663.  
  664. function inArray(needle, haystack) {
  665. var length = haystack.length;
  666. for (var i = 0; i < length; i++) {
  667. if (haystack[i] == needle) return true;
  668. }
  669. return false;
  670. }
  671.  
  672. function to2digits(str) {
  673. return ("00" + str).slice(-2);
  674. }
  675.  
  676. function to4digits(str) {
  677. return ("0000" + str).slice(-4);
  678. }
  679.  
  680. function to4digitTime(time) {
  681. return to4digits(time.replace(":", ""));
  682. }
  683.  
  684. function monthnumberToName(month) {
  685. var monthnames = [
  686. "JAN",
  687. "FEB",
  688. "MAR",
  689. "APR",
  690. "MAY",
  691. "JUN",
  692. "JUL",
  693. "AUG",
  694. "SEP",
  695. "OCT",
  696. "NOV",
  697. "DEC"
  698. ];
  699. return monthnames[month - 1];
  700. }
  701.  
  702.  
  703. /***/ }),
  704. /* 3 */
  705. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  706.  
  707. "use strict";
  708. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return registerLink; });
  709. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return printLinksContainer; });
  710. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return validatePaxcount; });
  711. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return printItemInline; });
  712. /* unused harmony export printImageInline */
  713. /* unused harmony export getSidebarContainer */
  714. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  715. /* harmony import */ var _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
  716. /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
  717. /* harmony import */ var _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
  718. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  719. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728. /** @type {{ [key: string]: ((itin: typeof currentItin) => { url: string, title: string, desc?: string, nth?: number, extra?: string })[]}} */
  729. const links = {
  730. airlines: [],
  731. meta: [],
  732. otas: []
  733. };
  734.  
  735. __webpack_require__(9);
  736.  
  737. /**
  738. * Registers a link
  739. * @param {keyof links} type
  740. * @param {(itin: typeof currentItin) => { url: string, title: string, desc?: string, nth?: number, extra?: string }} factory
  741. */
  742. function registerLink(type, factory) {
  743. links[type].push(factory);
  744. }
  745.  
  746. function printLinksContainer() {
  747. // do nothing if editor mode is active
  748. if (Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtargets */ "d"])("editoritem").length > 0) {
  749. return false;
  750. }
  751.  
  752. // empty outputcontainer
  753. if (document.getElementById("powertoolslinkcontainer") != undefined) {
  754. const div = document.getElementById("powertoolslinkcontainer");
  755. div.innerHTML = "";
  756. }
  757.  
  758. // S&D powertool items
  759. const elems = Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtargets */ "d"])("powertoolsitem");
  760. for (let i = elems.length - 1; i >= 1; i--) {
  761. elems[i].parentElement.removeChild(elems[i]);
  762. }
  763.  
  764. for (let group in links) {
  765. const groupLinks = links[group]
  766. .map(link => link(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"]))
  767. .sort((a, b) => {
  768. return a.title.localeCompare(b.title);
  769. });
  770. groupLinks.forEach(link => {
  771. if (!link) return;
  772.  
  773. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) {
  774. printUrlInline(link.url, link.title, link.desc, link.nth, link.extra);
  775. } else {
  776. printUrl(link.url, link.title, link.desc, link.extra);
  777. }
  778. });
  779.  
  780. _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableDeviders == 1 &&
  781. links[group].length &&
  782. printSeperator();
  783. }
  784.  
  785. printGCM();
  786. printWheretocredit();
  787. /*** attach JS events after building link container ***/
  788. bindLinkClicks();
  789. }
  790.  
  791. function printGCM() {
  792. var url = "";
  793. // Build multi-city search based on segments
  794. // Keeping continous path as long as possible
  795. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  796. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  797. url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig + "-";
  798. if (j + 1 < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length) {
  799. if (
  800. _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
  801. ) {
  802. url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ";";
  803. }
  804. } else {
  805. url += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest + ";";
  806. }
  807. }
  808. }
  809. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) {
  810. printImageInline(
  811. "http://www.gcmap.com/map?MR=900&MX=182x182&PM=*&P=" + url,
  812. "http://www.gcmap.com/mapui?P=" + url
  813. );
  814. } else {
  815. printUrl("http://www.gcmap.com/mapui?P=" + url, "GCM", "");
  816. }
  817. }
  818.  
  819. function printWheretocredit() {
  820. var extra =
  821. '<span id="wheretocredit-container" style="display: none;">&nbsp;<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>';
  822.  
  823. var container;
  824. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) {
  825. printUrlInline("javascript: void(0);", "wheretocredit.com", "", 1, extra);
  826. container = getSidebarContainer(1);
  827. } else {
  828. printUrl("javascript: void(0);", "wheretocredit.com", "", extra);
  829. container = document.getElementById("powertoolslinkcontainer");
  830. }
  831.  
  832. var links = container.getElementsByTagName("a");
  833. var link = links[links.length - 1];
  834. link.target = "_self";
  835. link.innerHTML = "Calculate miles with wheretocredit.com";
  836. }
  837.  
  838. function bindLinkClicks() {
  839. var container;
  840. var linkid = 0;
  841. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode == 1) {
  842. container = getSidebarContainer(1);
  843. } else {
  844. container = document.getElementById("powertoolslinkcontainer");
  845. }
  846. var links = container.getElementsByTagName("a");
  847. /*
  848. if (typeof(currentItin.itin[0].dep.offset)==="undefined") {
  849. links[linkid].onclick=function () {
  850. resolveTimezones();
  851. };
  852. linkid++;
  853. }
  854. */
  855. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode != 1) {
  856. linkid = links.length - 1;
  857. }
  858. links[linkid].onclick = function() {
  859. links[linkid].onclick = null;
  860. openWheretocredit(links[linkid]);
  861. };
  862. }
  863.  
  864. function openWheretocredit(link) {
  865. var container = document.getElementById("wheretocredit-container");
  866. container.style.display = "inline";
  867.  
  868. var itin = {
  869. ticketingCarrier:
  870. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers.length == 1 ? _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers[0] : null,
  871. baseFareUSD: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].basefares + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].surcharges,
  872. segments: []
  873. };
  874. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  875. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  876. itin.segments.push({
  877. origin: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig,
  878. destination: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest,
  879. departure: new Date(
  880. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year,
  881. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month,
  882. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day
  883. ),
  884. carrier: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier,
  885. bookingClass: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass,
  886. codeshare: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].codeshare,
  887. flightNumber: _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr
  888. });
  889. }
  890. }
  891.  
  892. var xhr = new XMLHttpRequest();
  893. xhr.open("POST", "https://www.wheretocredit.com/api/beta/calculate");
  894. xhr.setRequestHeader("Accept", "application/json;charset=UTF-8");
  895. xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  896. xhr.onreadystatechange = function() {
  897. if (xhr.readyState === 4) {
  898. link.href = "https://www.wheretocredit.com";
  899. link.target = "_blank";
  900. link.innerHTML = "Data provided by wheretocredit.com";
  901.  
  902. var data, result, temp;
  903. try {
  904. data = JSON.parse(xhr.responseText);
  905. } catch (e) {
  906. data = xhr.responseText;
  907. }
  908.  
  909. if (
  910. xhr.status === 200 &&
  911. data &&
  912. data.success &&
  913. data.value &&
  914. data.value.length &&
  915. data.value[0].success
  916. ) {
  917. data.value[0].value.totals.sort(function(a, b) {
  918. if (a.value === b.value) {
  919. return +(a.name > b.name) || +(a.name === b.name) - 1;
  920. }
  921. return b.value - a.value; // desc
  922. });
  923.  
  924. result = document.createElement("div");
  925. temp = data.value[0].value.totals.map(function(seg, i) {
  926. return (
  927. parseInt(seg.value)
  928. .toString()
  929. .replace(/\B(?=(\d{3})+(?!\d))/g, ",") +
  930. " " +
  931. seg.name +
  932. " miles"
  933. );
  934. });
  935. for (var i = 0; i < temp.length; i++) {
  936. result.appendChild(document.createTextNode(temp[i]));
  937. result.appendChild(document.createElement("br"));
  938. }
  939. result.removeChild(result.lastChild);
  940. } else {
  941. result = data.errorMessage || data || "API quota exceeded :-/";
  942. result = document.createTextNode(result);
  943. }
  944. container.style.display = "block";
  945. container.innerHTML = "";
  946. container.appendChild(result);
  947. }
  948. };
  949. xhr.send(JSON.stringify([itin]));
  950. }
  951.  
  952. function validatePaxcount(config) {
  953. //{maxPaxcount:7, countInf:false, childAsAdult:12, sepInfSeat:false, childMinAge:2}
  954. var tmpChildren = new Array();
  955. // push cur children
  956. for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].cAges.length; i++) {
  957. tmpChildren.push(_settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].cAges[i]);
  958. }
  959. var ret = {
  960. adults: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].adults,
  961. children: new Array(),
  962. infLap: _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsLap,
  963. infSeat: 0
  964. };
  965. if (config.sepInfSeat === true) {
  966. ret.infSeat = _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsSeat;
  967. } else {
  968. for (var i = 0; i < _settings_paxSettings__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].infantsSeat; i++) {
  969. tmpChildren.push(config.childMinAge);
  970. }
  971. }
  972. // process children
  973. for (var i = 0; i < tmpChildren.length; i++) {
  974. if (tmpChildren[i] < config.childAsAdult) {
  975. ret.children.push(tmpChildren[i]);
  976. } else {
  977. ret.adults++;
  978. }
  979. }
  980. // check Pax-Count
  981. if (config.countInf === true) {
  982. if (
  983. config.maxPaxcount <
  984. ret.adults + ret.infLap + ret.infSeat + ret.children.length
  985. ) {
  986. console.log("Too many passengers");
  987. return;
  988. }
  989. } else {
  990. if (config.maxPaxcount < ret.adults + ret.infSeat + ret.children.length) {
  991. console.log("Too many passengers");
  992. return;
  993. }
  994. }
  995. if (0 === ret.adults + ret.infSeat + ret.children.length) {
  996. console.log("No passengers");
  997. return;
  998. }
  999. return ret;
  1000. }
  1001.  
  1002. // Inline Stuff
  1003. function printUrlInline(url, text, desc, nth, extra) {
  1004. var otext = '<a href="' + url + '" target="_blank">';
  1005. var valid = false;
  1006. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language] !== undefined) {
  1007. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["openwith"] !== undefined) {
  1008. otext += _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["openwith"];
  1009. valid = true;
  1010. }
  1011. }
  1012. otext += valid === false ? "Open with" : "";
  1013. otext += " " + text + "</a>" + (extra || "");
  1014. printItemInline(otext, desc, nth);
  1015. }
  1016.  
  1017. function printItemInline(text, desc, nth) {
  1018. const div = getSidebarContainer(nth);
  1019. div.innerHTML =
  1020. div.innerHTML +
  1021. '<li class="powertoolsitem">' +
  1022. text +
  1023. (desc ? "<br/><small>(" + desc + ")</small>" : "") +
  1024. "</li>";
  1025. }
  1026.  
  1027. function printImageInline(src, url, nth) {
  1028. const div = getSidebarContainer(nth).parentElement;
  1029. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableIMGautoload == 1) {
  1030. div.innerHTML =
  1031. div.innerHTML +
  1032. (url
  1033. ? '<a href="' + url + '" target="_blank" class="powertoolsitem">'
  1034. : "") +
  1035. '<img src="' +
  1036. src +
  1037. '" style="margin-top:10px;"' +
  1038. (!url ? ' class="powertoolsitem"' : "") +
  1039. "/>" +
  1040. (url ? "</a>" : "");
  1041. } else {
  1042. var id = Math.random().toString();
  1043. div.innerHTML =
  1044. div.innerHTML +
  1045. '<div id="' +
  1046. id +
  1047. '" 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>';
  1048. document.getElementById(id).onclick = function() {
  1049. var newdiv = document.createElement("div");
  1050. newdiv.setAttribute("class", "powertoolsitem");
  1051. newdiv.innerHTML =
  1052. (url ? '<a href="' + url + '" target="_blank">' : "") +
  1053. '<img src="' +
  1054. src +
  1055. '" style="margin-top:10px;"' +
  1056. (!url ? ' class="powertoolsitem"' : "") +
  1057. "/>" +
  1058. (url ? "</a>" : "");
  1059. document
  1060. .getElementById(id)
  1061. .parentElement.replaceChild(newdiv, document.getElementById(id));
  1062. };
  1063. }
  1064. }
  1065.  
  1066. function getSidebarContainer(nth) {
  1067. var div =
  1068. !nth || nth >= 4
  1069. ? document.getElementById("powertoolslinkinlinecontainer")
  1070. : Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader, nth).nextElementSibling;
  1071. return div || createUrlContainerInline();
  1072. }
  1073.  
  1074. function createUrlContainerInline() {
  1075. var newdiv = document.createElement("div");
  1076. newdiv.setAttribute("class", _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv);
  1077. newdiv.innerHTML =
  1078. '<div class="' +
  1079. _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcHeader +
  1080. '">Powertools</div><ul id="powertoolslinkinlinecontainer" class="' +
  1081. _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcLinkList +
  1082. '"></ul>';
  1083. Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])(_settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.mcDiv, 1).parentElement.appendChild(
  1084. newdiv
  1085. );
  1086. return document.getElementById("powertoolslinkinlinecontainer");
  1087. }
  1088.  
  1089. // Printing Stuff
  1090. function printUrl(url, name, desc, extra) {
  1091. if (document.getElementById("powertoolslinkcontainer") == undefined) {
  1092. createUrlContainer();
  1093. }
  1094. var text =
  1095. '<div style="margin:5px 0px 10px 0px"><label style="font-size:' +
  1096. Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize) +
  1097. '%;font-weight:600"><a href="' +
  1098. url +
  1099. '" target=_blank>';
  1100. var valid = false;
  1101. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language] !== undefined) {
  1102. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"] !== undefined) {
  1103. text += _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language]["use"];
  1104. valid = true;
  1105. }
  1106. }
  1107. text += valid === false ? "Use " : "";
  1108. text +=
  1109. " " +
  1110. name +
  1111. "</a></label>" +
  1112. (extra || "") +
  1113. (desc
  1114. ? '<br><label style="font-size:' +
  1115. (Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].linkFontsize) - 15) +
  1116. '%">(' +
  1117. desc +
  1118. ")</label>"
  1119. : "") +
  1120. "</div>";
  1121. var target = document.getElementById("powertoolslinkcontainer");
  1122. target.innerHTML = target.innerHTML + text;
  1123. }
  1124.  
  1125. function createUrlContainer() {
  1126. var newdiv = document.createElement("div");
  1127. newdiv.setAttribute("id", "powertoolslinkcontainer");
  1128. newdiv.setAttribute("style", "margin:15px 0px 0px 10px");
  1129. Object(_utils__WEBPACK_IMPORTED_MODULE_5__[/* findtarget */ "c"])(
  1130. _settings_itaSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].resultpage.htbContainer,
  1131. 1
  1132. ).parentElement.parentElement.parentElement.appendChild(newdiv);
  1133. }
  1134.  
  1135. function printSeperator() {
  1136. var container =
  1137. document.getElementById("powertoolslinkcontainer") || getSidebarContainer();
  1138. if (container) {
  1139. container.innerHTML =
  1140. container.innerHTML +
  1141. (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].enableInlineMode
  1142. ? '<hr class="powertoolsitem"/>'
  1143. : "<hr/>");
  1144. }
  1145. }
  1146.  
  1147.  
  1148. /***/ }),
  1149. /* 4 */
  1150. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1151.  
  1152. "use strict";
  1153. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return reset; });
  1154. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCabin; });
  1155. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getForcedCabin; });
  1156. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
  1157.  
  1158.  
  1159. // General settings
  1160. const appSettings = {
  1161. scriptEngine:
  1162. typeof GM === "undefined" || typeof GM.info === "undefined" ? 0 : 1, // 0 - console mode, 1 - tamper or grease mode
  1163. itaLanguage: "en",
  1164. version: "0.42.0",
  1165. retrycount: 1,
  1166. laststatus: "",
  1167. scriptrunning: 1,
  1168. cabin: "Auto"
  1169. };
  1170.  
  1171. function reset() {
  1172. // reset Notification due to pagechange
  1173. Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* clearNotification */ "a"])();
  1174.  
  1175. // reset Editor Mode
  1176. document.getElementById("mptStartparse").setAttribute("class", "invis");
  1177. document.getElementById("mptStartparse").style.display = "none";
  1178. appSettings.itaLanguage = "en";
  1179. appSettings.retrycount = 1;
  1180. }
  1181.  
  1182. function getCabin(autoCabin) {
  1183. return appSettings.cabin === "Auto" ? autoCabin : getForcedCabin();
  1184. }
  1185.  
  1186. function getForcedCabin() {
  1187. switch (appSettings.cabin) {
  1188. case "Y":
  1189. return 0;
  1190. case "Y+":
  1191. return 1;
  1192. case "C":
  1193. return 2;
  1194. case "F":
  1195. return 3;
  1196. default:
  1197. return 0;
  1198. }
  1199. }
  1200.  
  1201. /* harmony default export */ __webpack_exports__["a"] = (appSettings);
  1202.  
  1203.  
  1204. /***/ }),
  1205. /* 5 */
  1206. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1207.  
  1208. "use strict";
  1209. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return findTargetSetVersion; });
  1210. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
  1211.  
  1212.  
  1213. // ITA Matrix CSS class definitions:
  1214. const itaSettings = [
  1215. {
  1216. startpage: {
  1217. maindiv: "KIR33AB-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice
  1218. },
  1219. resultpage: {
  1220. itin: "KIR33AB-v-d", //Container with headline: "Itinerary"
  1221. itinRow: "KIR33AB-j-i", // TR in itin with Orig, Dest and date
  1222. milagecontainer: "KIR33AB-v-e", // TD-Container on the right
  1223. rulescontainer: "KIR33AB-k-d", // First container before rulelinks (the one with Fare X:)
  1224. htbContainer: "KIR33AB-k-k", // full "how to buy"-container inner div (td=>div=>div)
  1225. htbLeft: "KIR33AB-k-g", // Left column in the "how to buy"-container
  1226. htbRight: "KIR33AB-k-f", // Class for normal right column
  1227. htbGreyBorder: "KIR33AB-k-l", // Class for right cell with light grey border (used for subtotal of passenger)
  1228. //inline
  1229. mcDiv: "KIR33AB-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info)
  1230. mcHeader: "KIR33AB-y-b", // Right menu header class ("Mileage", etc.)
  1231. mcLinkList: "KIR33AB-y-c" // Right menu ul list class (immediately following header)
  1232. }
  1233. },
  1234. {
  1235. startpage: {
  1236. maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice
  1237. },
  1238. resultpage: {
  1239. itin: "IR6M2QD-v-d", //Container with headline: "Itinerary"
  1240. itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date
  1241. milagecontainer: "IR6M2QD-v-e", // TD-Container on the right
  1242. rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X:)
  1243. htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div)
  1244. htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container
  1245. htbRight: "IR6M2QD-k-f", // Class for normal right column
  1246. htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger)
  1247. //inline
  1248. mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info)
  1249. mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.)
  1250. mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header)
  1251. }
  1252. }
  1253. ];
  1254.  
  1255. const classSettings = itaSettings[0];
  1256.  
  1257. function findTargetSetVersion(classSelector, nth) {
  1258. for (let setting of itaSettings) {
  1259. const className = classSelector(setting);
  1260. const target = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* findtarget */ "c"])(className, nth);
  1261. if (target) {
  1262. console.log(`ITA Version detected: ${className}`);
  1263. Object.assign(classSettings, setting);
  1264. return target;
  1265. }
  1266. }
  1267. }
  1268.  
  1269. /* harmony default export */ __webpack_exports__["a"] = (classSettings);
  1270.  
  1271.  
  1272. /***/ }),
  1273. /* 6 */
  1274. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1275.  
  1276. "use strict";
  1277. // initialize local storage for passenger details
  1278. /* harmony default export */ __webpack_exports__["a"] = ({
  1279. adults: 1,
  1280. infantsLap: 0,
  1281. infantsSeat: 0,
  1282. cAges: new Array()
  1283. });
  1284.  
  1285.  
  1286. /***/ }),
  1287. /* 7 */
  1288. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1289.  
  1290. "use strict";
  1291. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAmadeusUrl; });
  1292. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmadeusPax; });
  1293. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAmadeusTriptype; });
  1294. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  1295. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
  1296.  
  1297.  
  1298.  
  1299. // **** START AMADEUS ****
  1300. function getAmadeusUrl(config) {
  1301. config = config || {
  1302. sepcabin: 1,
  1303. detailed: 0,
  1304. inctimes: 1,
  1305. enablesegskip: 1,
  1306. allowpremium: 1
  1307. };
  1308. config.sepcabin = config.sepcabin === undefined ? 1 : config.sepcabin;
  1309. config.detailed = config.detailed === undefined ? 0 : config.detailed;
  1310. config.inctimes = config.inctimes === undefined ? 1 : config.inctimes;
  1311. config.enablesegskip =
  1312. config.enablesegskip === undefined ? 1 : config.enablesegskip;
  1313. config.allowpremium =
  1314. config.allowpremium === undefined ? 1 : config.allowpremium;
  1315. var curleg = 0;
  1316. var lastcabin = 0;
  1317. var curseg = 0;
  1318. var lastdest = "";
  1319. var maxcabin = 0;
  1320. var url = "";
  1321. var lastarrtime = "";
  1322. var cabins = ["E", "N", "B", "F"];
  1323. cabins[1] = config.allowpremium != 1 ? cabins[0] : cabins[1];
  1324. //Build multi-city search based on legs
  1325. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) {
  1326. curseg = 3; // need to toggle segskip on first leg
  1327. lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[0].cabin;
  1328. // walks each leg
  1329. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  1330. //walks each segment of leg
  1331. var k = 0;
  1332. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  1333. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  1334. if (
  1335. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  1336. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  1337. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440 ||
  1338. config.enablesegskip == 0
  1339. )
  1340. break;
  1341. k++;
  1342. }
  1343. curseg++;
  1344. if (
  1345. curseg > 3 ||
  1346. (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin != lastcabin && config.sepcabin == 1)
  1347. ) {
  1348. if (lastdest != "") {
  1349. //close prior flight
  1350. url += "&E_LOCATION_" + curleg + "=" + lastdest;
  1351. url += "&E_DATE_" + curleg + "=" + lastarrtime;
  1352. }
  1353. curseg = 1;
  1354. curleg++;
  1355. url += "&B_LOCATION_" + curleg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
  1356. url += "&B_ANY_TIME_" + curleg + "=FALSE";
  1357. url +=
  1358. "&B_DATE_" +
  1359. curleg +
  1360. "=" +
  1361. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  1362. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  1363. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  1364. (config.inctimes == 1
  1365. ? (
  1366. "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")
  1367. ).slice(-4)
  1368. : "0000");
  1369. url +=
  1370. "&CABIN_" + curleg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin];
  1371. url += "&ALLOW_ALTERNATE_AVAILABILITY_" + curleg + "=FALSE";
  1372. url += "&DATE_RANGE_VALUE_" + curleg + "=0";
  1373. }
  1374. lastarrtime =
  1375. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year +
  1376. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
  1377. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
  1378. (config.inctimes == 1
  1379. ? (
  1380. "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")
  1381. ).slice(-4)
  1382. : "0000");
  1383. if (config.detailed === 1) {
  1384. url +=
  1385. "&B_LOCATION_" +
  1386. curleg +
  1387. "_" +
  1388. curseg +
  1389. "=" +
  1390. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
  1391. url +=
  1392. "&B_LOCATION_CITY_" +
  1393. curleg +
  1394. "_" +
  1395. curseg +
  1396. "=" +
  1397. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].orig;
  1398. url +=
  1399. "&B_DATE_" +
  1400. curleg +
  1401. "_" +
  1402. curseg +
  1403. "=" +
  1404. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  1405. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  1406. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  1407. (config.inctimes == 1
  1408. ? (
  1409. "0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")
  1410. ).slice(-4)
  1411. : "0000");
  1412. url +=
  1413. "&E_LOCATION_" +
  1414. curleg +
  1415. "_" +
  1416. curseg +
  1417. "=" +
  1418. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  1419. url +=
  1420. "&E_LOCATION_CITY_" +
  1421. curleg +
  1422. "_" +
  1423. curseg +
  1424. "=" +
  1425. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  1426. url += "&E_DATE_" + curleg + "_" + curseg + "=" + lastarrtime;
  1427. }
  1428. url +=
  1429. "&AIRLINE_" +
  1430. curleg +
  1431. "_" +
  1432. curseg +
  1433. "=" +
  1434. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].carrier;
  1435. url +=
  1436. "&FLIGHT_NUMBER_" +
  1437. curleg +
  1438. "_" +
  1439. curseg +
  1440. "=" +
  1441. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  1442. url +=
  1443. "&RBD_" +
  1444. curleg +
  1445. "_" +
  1446. curseg +
  1447. "=" +
  1448. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  1449. url +=
  1450. "&FARE_CLASS_" +
  1451. curleg +
  1452. "_" +
  1453. curseg +
  1454. "=" +
  1455. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].farebase;
  1456. lastdest = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  1457. lastcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  1458. if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin > maxcabin)
  1459. maxcabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  1460. j += k;
  1461. }
  1462. }
  1463. url += "&E_LOCATION_" + curleg + "=" + lastdest; // push final dest
  1464. url += "&E_DATE_" + curleg + "=" + lastarrtime; // push arr time
  1465. url +=
  1466. "&CABIN=" +
  1467. cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? maxcabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] +
  1468. ""; // push cabin
  1469. return url;
  1470. }
  1471.  
  1472. function getAmadeusPax(pax, config) {
  1473. config = config || {
  1474. allowinf: 1,
  1475. youthage: 0
  1476. };
  1477. config.allowinf = config.allowinf === undefined ? 1 : config.allowinf;
  1478. config.youthage = config.sepyouth === undefined ? 0 : config.sepyouth;
  1479. var tmpPax = { c: 0, y: 0 };
  1480. var curPax = 1;
  1481. var url = "&IS_PRIMARY_TRAVELLER_1=True";
  1482. for (let i = 0; i < pax.children.length; i++) {
  1483. if (pax.children[i] >= config.youthage && config.youthage > 0) {
  1484. tmpPax.y++;
  1485. } else if (pax.children[i] >= 12) {
  1486. pax.adults++;
  1487. } else {
  1488. tmpPax.c++;
  1489. }
  1490. }
  1491. for (let i = 0; i < pax.adults; i++) {
  1492. url += "&TRAVELLER_TYPE_" + curPax + "=ADT";
  1493. url +=
  1494. "&HAS_INFANT_" +
  1495. curPax +
  1496. "=" +
  1497. (i < pax.infLap && config.allowinf == 1 ? "True" : "False");
  1498. url += "&IS_YOUTH_" + curPax + "=False";
  1499. curPax++;
  1500. }
  1501. for (let i = 0; i < tmpPax.y; i++) {
  1502. url += "&TRAVELLER_TYPE_" + curPax + "=ADT";
  1503. url += "&HAS_INFANT_" + curPax + "=False";
  1504. url += "&IS_YOUTH_" + curPax + "=True";
  1505. curPax++;
  1506. }
  1507. for (let i = 0; i < tmpPax.c; i++) {
  1508. url += "&TRAVELLER_TYPE_" + curPax + "=CHD";
  1509. url += "&HAS_INFANT_" + curPax + "=False";
  1510. url += "&IS_YOUTH_" + curPax + "=False";
  1511. curPax++;
  1512. }
  1513. return {
  1514. url: url,
  1515. adults: pax.adults,
  1516. youth: tmpPax.y,
  1517. children: tmpPax.c,
  1518. infants: pax.infLap
  1519. };
  1520. }
  1521.  
  1522. function getAmadeusTriptype() {
  1523. return _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length > 1
  1524. ? _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length == 2 &&
  1525. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].dest &&
  1526. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[1].orig
  1527. ? "R"
  1528. : "M"
  1529. : "O";
  1530. }
  1531. // **** END AMADEUS ****
  1532.  
  1533.  
  1534. /***/ }),
  1535. /* 8 */
  1536. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1537.  
  1538. "use strict";
  1539. // Supported translations for the PowerTools interface:
  1540. const de = {
  1541. use: "&Ouml;ffne ",
  1542. resultpage: {
  1543. "Dep:": "Abflug:",
  1544. "Arr:": "Ankunft:",
  1545. "Layover in": "Umst. in",
  1546. " to ": " nach ",
  1547. "Mon,": "Mo.,",
  1548. "Tue,": "Di.,",
  1549. "Wed,": "Mi.,",
  1550. "Thu,": "Do.,",
  1551. "Fri,": "Fr.,",
  1552. "Sat,": "Sa.,",
  1553. "Sun,": "So.,",
  1554. " Jan ": " Januar ",
  1555. " Feb ": " Februar ",
  1556. " Mar ": " M&auml,rz ",
  1557. " Apr ": " April ",
  1558. " May ": " Mai ",
  1559. " Jun ": " Juni ",
  1560. " Jul ": " Juli ",
  1561. " Aug ": " August ",
  1562. " Sep ": " September ",
  1563. " Oct ": " Oktober ",
  1564. " Nov ": " November ",
  1565. " Dec ": " Dezember ",
  1566. "OPERATED BY ": "Durchgef&uuml,hrt von "
  1567. }
  1568. };
  1569.  
  1570. /* harmony default export */ __webpack_exports__["a"] = ({
  1571. de
  1572. });
  1573.  
  1574.  
  1575. /***/ }),
  1576. /* 9 */
  1577. /***/ (function(module, exports, __webpack_require__) {
  1578.  
  1579. const req = __webpack_require__(10);
  1580.  
  1581. const modules = req.keys().map(req);
  1582.  
  1583. module.exports = modules;
  1584.  
  1585.  
  1586. /***/ }),
  1587. /* 10 */
  1588. /***/ (function(module, exports, __webpack_require__) {
  1589.  
  1590. var map = {
  1591. "./airlines/aa.js": 11,
  1592. "./airlines/aaC1.js": 12,
  1593. "./airlines/ac.js": 13,
  1594. "./airlines/af.js": 14,
  1595. "./airlines/as.js": 15,
  1596. "./airlines/az.js": 16,
  1597. "./airlines/ba.js": 17,
  1598. "./airlines/cz.js": 18,
  1599. "./airlines/dl.js": 19,
  1600. "./airlines/ib.js": 20,
  1601. "./airlines/kl.js": 21,
  1602. "./airlines/la.js": 22,
  1603. "./airlines/lh.js": 23,
  1604. "./airlines/lx.js": 24,
  1605. "./airlines/oa.js": 25,
  1606. "./airlines/ps.js": 26,
  1607. "./airlines/qf.js": 27,
  1608. "./airlines/tk.js": 28,
  1609. "./index.js": 9,
  1610. "./meta/kayak.js": 29,
  1611. "./meta/momondo.js": 30,
  1612. "./meta/skyscanner.js": 31,
  1613. "./otas/cheapoair.js": 32,
  1614. "./otas/etraveli.js": 33,
  1615. "./otas/expedia.js": 34,
  1616. "./otas/priceline.js": 35
  1617. };
  1618.  
  1619.  
  1620. function webpackContext(req) {
  1621. var id = webpackContextResolve(req);
  1622. return __webpack_require__(id);
  1623. }
  1624. function webpackContextResolve(req) {
  1625. if(!__webpack_require__.o(map, req)) {
  1626. var e = new Error("Cannot find module '" + req + "'");
  1627. e.code = 'MODULE_NOT_FOUND';
  1628. throw e;
  1629. }
  1630. return map[req];
  1631. }
  1632. webpackContext.keys = function webpackContextKeys() {
  1633. return Object.keys(map);
  1634. };
  1635. webpackContext.resolve = webpackContextResolve;
  1636. module.exports = webpackContext;
  1637. webpackContext.id = 10;
  1638.  
  1639. /***/ }),
  1640. /* 11 */
  1641. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1642.  
  1643. "use strict";
  1644. __webpack_require__.r(__webpack_exports__);
  1645. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  1646. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  1647. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  1648. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. const aaEditions = [
  1655. { value: "en_AU", name: "Australia" },
  1656. { value: "en_BE", name: "Belgium" },
  1657. { value: "en_CN", name: "China" },
  1658. { value: "en_DK", name: "Denmark" },
  1659. { value: "en_FI", name: "Finland" },
  1660. { value: "en_FR", name: "France / English" },
  1661. { value: "fr_FR", name: "France / French" },
  1662. { value: "en_DE", name: "Germany / English" },
  1663. { value: "de_DE", name: "Germany / Deutsch" },
  1664. { value: "en_GR", name: "Greece" },
  1665. { value: "en_HK", name: "Hong Kong" },
  1666. { value: "en_IN", name: "India" },
  1667. { value: "en_IE", name: "Ireland" },
  1668. { value: "en_IL", name: "Israel" },
  1669. { value: "en_IT", name: "Italy" },
  1670. { value: "en_JP", name: "Japan" },
  1671. { value: "en_KR", name: "Korea" },
  1672. { value: "en_NL", name: "Netherlands" },
  1673. { value: "en_NZ", name: "New Zealand" },
  1674. { value: "en_NO", name: "Norway" },
  1675. { value: "en_PT", name: "Portugal" },
  1676. { value: "en_RU", name: "Russia" },
  1677. { value: "en_ES", name: "Spain / English" },
  1678. { value: "es_ES", name: "Spain / Spanish" },
  1679. { value: "en_SE", name: "Sweden" },
  1680. { value: "en_CH", name: "Switzerland" }
  1681. ];
  1682.  
  1683. function printAA() {
  1684. var createUrl = function(edition) {
  1685. var url =
  1686. "http://i11l-services.aa.com/xaa/mseGateway/entryPoint.php?PARAM=";
  1687. var search = "1,,USD0.00," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + ",";
  1688. var legs = new Array();
  1689. var leg = "";
  1690. var segs = new Array();
  1691. var seg = "";
  1692.  
  1693. //Build multi-city search based on legs
  1694. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  1695. // walks each leg
  1696. segs = new Array();
  1697. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  1698. //walks each segment of leg
  1699. var k = 0;
  1700. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  1701. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  1702. if (
  1703. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  1704. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  1705. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  1706. )
  1707. break;
  1708. k++;
  1709. }
  1710. seg =
  1711. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year +
  1712. "-" +
  1713. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
  1714. "-" +
  1715. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
  1716. "T" +
  1717. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time).slice(-5) +
  1718. (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset == "undefined"
  1719. ? "+00:00"
  1720. : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].arr.offset) +
  1721. ",";
  1722. seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass + ",";
  1723. seg +=
  1724. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  1725. "-" +
  1726. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  1727. "-" +
  1728. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  1729. "T" +
  1730. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) +
  1731. (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset == "undefined"
  1732. ? "+00:00"
  1733. : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset) +
  1734. ",";
  1735. seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest + ",";
  1736. seg +=
  1737. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  1738. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr +
  1739. ",";
  1740. seg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig; // NO , here!
  1741. segs.push(seg);
  1742. j += k;
  1743. }
  1744. search += segs.length + "," + segs.join() + ",";
  1745. //build leg structure
  1746. leg =
  1747. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year +
  1748. "-" +
  1749. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  1750. "-" +
  1751. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) +
  1752. ",";
  1753. leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest + ",,";
  1754. leg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig + ","; // USE , here!
  1755. legs.push(leg);
  1756. }
  1757. search += "DIRECT,";
  1758. search += edition[0].toUpperCase() + ","; // Language
  1759. search += "3,";
  1760. // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  1761. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  1762. maxPaxcount: 7,
  1763. countInf: false,
  1764. childAsAdult: 12,
  1765. sepInfSeat: false,
  1766. childMinAge: 2
  1767. });
  1768. if (!pax) {
  1769. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAA");
  1770. return;
  1771. }
  1772. search += pax.adults + ","; // ADT
  1773. search += pax.children.length + ","; // Child
  1774. search += pax.infLap + ","; // Inf
  1775. search += "0,"; // Senior
  1776. search += edition[1].toUpperCase() + ","; // Country
  1777. // push outer search
  1778. search += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length + "," + legs.join();
  1779. url += encodeURIComponent(search);
  1780. return url;
  1781. };
  1782.  
  1783. // get edition
  1784. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aaEdition.split("_");
  1785. if (edition.length != 2) {
  1786. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid AA-Edition");
  1787. return;
  1788. }
  1789. var url = createUrl(edition);
  1790. if (!url) {
  1791. return;
  1792. }
  1793. var extra =
  1794. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  1795. extra += aaEditions
  1796. .map(function(obj, i) {
  1797. return (
  1798. '<a href="' +
  1799. createUrl(obj.value.split("_")) +
  1800. '" target="_blank">' +
  1801. obj.name +
  1802. "</a>"
  1803. );
  1804. })
  1805. .join("<br/>");
  1806. extra += "</span></span>";
  1807.  
  1808. return {
  1809. url,
  1810. title: "American",
  1811. desc: "Europe/Asia/Pacific",
  1812. extra
  1813. };
  1814. }
  1815.  
  1816. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAA);
  1817. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])(
  1818. "American (Europe/Asia/Pacific)",
  1819. "aaEdition",
  1820. aaEditions,
  1821. "en_DE"
  1822. );
  1823.  
  1824.  
  1825. /***/ }),
  1826. /* 12 */
  1827. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1828.  
  1829. "use strict";
  1830. __webpack_require__.r(__webpack_exports__);
  1831. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  1832. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  1833. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  1834. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840. const aac1Editions = [
  1841. { value: "CA", name: "Canada" },
  1842. { value: "US", name: "United States" },
  1843. { value: "GB", name: "United Kingdom" }
  1844. ];
  1845.  
  1846. function printAAc1() {
  1847. var dateToEpoch = function(y, m, d) {
  1848. var dateStr =
  1849. y +
  1850. "-" +
  1851. ("0" + m).slice(-2) +
  1852. "-" +
  1853. ("0" + d).slice(-2) +
  1854. "T00:00:00-06:00";
  1855. return Date.parse(dateStr);
  1856. };
  1857.  
  1858. // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  1859. var createUrl = function(edition) {
  1860. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  1861. maxPaxcount: 6,
  1862. countInf: true,
  1863. childAsAdult: 12,
  1864. sepInfSeat: false,
  1865. childMinAge: 2
  1866. });
  1867. if (!pax) {
  1868. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAAc1");
  1869. return false;
  1870. }
  1871. var url = "https://www.aa.com/goto/metasearch?ITEN=GOOGLE,,";
  1872. url += (edition || "US") + ",";
  1873. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length === 1) {
  1874. url += "oneWay";
  1875. } else {
  1876. url += "multi";
  1877. }
  1878. url +=
  1879. ",4,A" +
  1880. pax.adults +
  1881. "S0C" +
  1882. pax.children.length +
  1883. "I" +
  1884. pax.infLap +
  1885. "Y0L0,0,";
  1886. url += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig + ",0," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest;
  1887. url += ",0";
  1888.  
  1889. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  1890. url +=
  1891. ",false," +
  1892. dateToEpoch(
  1893. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.year,
  1894. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.month,
  1895. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.day
  1896. );
  1897. }
  1898.  
  1899. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) {
  1900. url += ",0,0";
  1901. }
  1902. url += "," + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + ",1,";
  1903.  
  1904. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length > 1) {
  1905. var addon = "";
  1906. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  1907. addon +=
  1908. "#" +
  1909. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig +
  1910. "|" +
  1911. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest +
  1912. "|0|0|";
  1913. addon += dateToEpoch(
  1914. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.year,
  1915. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.month,
  1916. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[0].dep.day
  1917. );
  1918. }
  1919. url += encodeURIComponent(addon) + ",";
  1920. }
  1921.  
  1922. var itinsegs = new Array();
  1923.  
  1924. //Build multi-city search based on legs
  1925. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  1926. // walks each leg
  1927. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  1928. //walks each segment of leg
  1929. var k = 0;
  1930. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  1931. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  1932. if (
  1933. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !==
  1934. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  1935. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  1936. )
  1937. break;
  1938. k++;
  1939. }
  1940. var itinseg =
  1941. "#" +
  1942. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  1943. "|" +
  1944. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr +
  1945. "|" +
  1946. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  1947. itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  1948. itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  1949. itinseg +=
  1950. "|" +
  1951. Date.parse(
  1952. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  1953. "-" +
  1954. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  1955. "-" +
  1956. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  1957. "T" +
  1958. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5) +
  1959. ":00" +
  1960. (typeof _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset === "undefined"
  1961. ? "+00:00"
  1962. : _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.offset)
  1963. );
  1964. itinseg += "|" + i;
  1965. itinsegs.push(itinseg);
  1966. j += k;
  1967. }
  1968. }
  1969. url += encodeURIComponent(itinsegs.join(""));
  1970. return url;
  1971. };
  1972. var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].aac1Edition.toUpperCase());
  1973. if (!url) {
  1974. return;
  1975. }
  1976. var extra =
  1977. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  1978. extra += aac1Editions
  1979. .map(function(edition, i) {
  1980. return (
  1981. '<a href="' +
  1982. createUrl(edition.value.toUpperCase()) +
  1983. '" target="_blank">' +
  1984. edition.name +
  1985. "</a>"
  1986. );
  1987. })
  1988. .join("<br/>");
  1989. extra += "</span></span>";
  1990.  
  1991. return {
  1992. url,
  1993. title: "American",
  1994. desc: "America & UK",
  1995. extra
  1996. };
  1997. }
  1998.  
  1999. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAAc1);
  2000. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("American (America & UK)", "aac1Edition", aac1Editions, "US");
  2001.  
  2002.  
  2003. /***/ }),
  2004. /* 13 */
  2005. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2006.  
  2007. "use strict";
  2008. __webpack_require__.r(__webpack_exports__);
  2009. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  2010. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  2011. /* harmony import */ var _settings_translations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
  2012. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
  2013. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3);
  2014. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);
  2015. /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024. const acEditions = [
  2025. { name: "Algeria", value: "dz" },
  2026. { name: "Antigua", value: "ag" },
  2027. { name: "Argentina", value: "ar" },
  2028. { name: "Australia", value: "au" },
  2029. { name: "Austria", value: "at" },
  2030. { name: "Bahamas", value: "bs" },
  2031. { name: "Bahrain", value: "bh" },
  2032. { name: "Barbados", value: "bb" },
  2033. { name: "Belgium", value: "be" },
  2034. { name: "Bermuda", value: "bm" },
  2035. { name: "Canada", value: "ca" },
  2036. { name: "Cayman Islands", value: "ky" },
  2037. { name: "Chile", value: "cl" },
  2038. { name: "China", value: "cn" },
  2039. { name: "Colombia", value: "co" },
  2040. { name: "Costa Rica", value: "cr" },
  2041. { name: "Croatia", value: "hr" },
  2042. { name: "Czech Republic", value: "cz" },
  2043. { name: "Denmark", value: "dk" },
  2044. { name: "Dominican Republic", value: "do" },
  2045. { name: "Egypt", value: "eg" },
  2046. { name: "Finland", value: "fi" },
  2047. { name: "France", value: "fr" },
  2048. { name: "Germany", value: "de" },
  2049. { name: "Greece", value: "gr" },
  2050. { name: "Haiti", value: "ht" },
  2051. { name: "Hong Kong SAR, China", value: "hk" },
  2052. { name: "Hungary", value: "hu" },
  2053. { name: "India", value: "in" },
  2054. { name: "Indonesia", value: "id" },
  2055. { name: "Ireland", value: "ie" },
  2056. { name: "Israel", value: "il" },
  2057. { name: "Italy", value: "it" },
  2058. { name: "Jamaica", value: "jm" },
  2059. { name: "Japan", value: "jp" },
  2060. { name: "Jordan", value: "jo" },
  2061. { name: "Kuwait", value: "kw" },
  2062. { name: "Malaysia", value: "my" },
  2063. { name: "Mexico", value: "mx" },
  2064. { name: "Morocco", value: "ma" },
  2065. { name: "Mozambique", value: "mz" },
  2066. { name: "Netherlands", value: "nl" },
  2067. { name: "New Zealand", value: "nz" },
  2068. { name: "Nigeria", value: "ng" },
  2069. { name: "Norway", value: "no" },
  2070. { name: "Panama", value: "pa" },
  2071. { name: "Peru", value: "pe" },
  2072. { name: "Poland", value: "pl" },
  2073. { name: "Portugal", value: "pt" },
  2074. { name: "Qatar", value: "qa" },
  2075. { name: "Russia", value: "ru" },
  2076. { name: "Romania", value: "ro" },
  2077. { name: "Saudi Arabia", value: "sa" },
  2078. { name: "Singapore", value: "sg" },
  2079. { name: "South Africa", value: "za" },
  2080. { name: "South Korea", value: "kr" },
  2081. { name: "Spain", value: "es" },
  2082. { name: "St. Lucia", value: "lc" },
  2083. { name: "Sweden", value: "se" },
  2084. { name: "Switzerland", value: "ch" },
  2085. { name: "Taiwan, China", value: "tw" },
  2086. { name: "Thailand", value: "th" },
  2087. { name: "Trinidad &amp; Tobago", value: "tt" },
  2088. { name: "Turkey", value: "tr" },
  2089. { name: "Turks and Caicos Island", value: "tc" },
  2090. { name: "Ukraine", value: "ua" },
  2091. { name: "United Arab Emirates", value: "ae" },
  2092. { name: "United Kingdom", value: "gb" },
  2093. { name: "United States", value: "us" },
  2094. { name: "Venezuela", value: "ve" },
  2095. { name: "Vietnam", value: "vn" }
  2096. ];
  2097.  
  2098. function printAC() {
  2099. var createUrl = function(edition) {
  2100. var acUrl =
  2101. "https://book.aircanada.com/pl/AConline/en/RedirectionServlet?FareRequest=YES&PRICING_MODE=0&fromThirdParty=YES";
  2102. acUrl +=
  2103. "&country=" +
  2104. edition +
  2105. "&countryOfResidence=" +
  2106. edition +
  2107. (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].itaLanguage == "de" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de"
  2108. ? "&language=de"
  2109. : "&language=en");
  2110. // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  2111. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_4__[/* validatePaxcount */ "d"])({
  2112. maxPaxcount: 9,
  2113. countInf: true,
  2114. childAsAdult: 16,
  2115. sepInfSeat: false,
  2116. childMinAge: 2
  2117. });
  2118. if (!pax) {
  2119. Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAC");
  2120. return;
  2121. }
  2122. var paxConfig = { allowinf: 0, youthage: 12 }; // AC does not allow booking of infants for int. flights
  2123. var amadeusConfig = { sepcabin: 1, detailed: 1, allowpremium: 1 };
  2124. var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  2125. acUrl += tmpPax.url;
  2126. acUrl += "&numberOfAdults=" + tmpPax.adults;
  2127. acUrl += "&numberOfInfants=" + tmpPax.infants;
  2128. acUrl += "&numberOfYouth=" + tmpPax.youth;
  2129. acUrl += "&numberOfChildren=" + tmpPax.children;
  2130. acUrl += "&tripType=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusTriptype */ "b"])();
  2131. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin.length; i++) {
  2132. acUrl +=
  2133. "&departure" +
  2134. (i + 1) +
  2135. "=" +
  2136. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) +
  2137. "/" +
  2138. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  2139. "/" +
  2140. _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dep.year +
  2141. "&org" +
  2142. (i + 1) +
  2143. "=" +
  2144. _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].orig +
  2145. "&dest" +
  2146. (i + 1) +
  2147. "=" +
  2148. _parse_itin__WEBPACK_IMPORTED_MODULE_5__[/* currentItin */ "a"].itin[i].dest;
  2149. }
  2150. acUrl += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_6__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  2151. return acUrl;
  2152. };
  2153. var acUrl = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].acEdition.toUpperCase());
  2154. if (!acUrl) {
  2155. return;
  2156. }
  2157. var extra =
  2158. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  2159. extra += acEditions
  2160. .map(function(edition, i) {
  2161. return (
  2162. '<a href="' +
  2163. createUrl(edition.value.toUpperCase()) +
  2164. '" target="_blank">' +
  2165. edition.name +
  2166. "</a>"
  2167. );
  2168. })
  2169. .join("<br/>");
  2170. extra += '<br/><a href="javascript:addACPromo();">Add Promo Code</a>';
  2171. extra += "</span></span>";
  2172. extra += addACPromoControls(acUrl);
  2173.  
  2174. return {
  2175. url: acUrl,
  2176. title: "Air Canada",
  2177. extra
  2178. };
  2179. }
  2180.  
  2181. function addACPromoControls(url) {
  2182. var script = document.createElement("script");
  2183. script.appendChild(document.createTextNode("(" + addACPromo + ")();"));
  2184. (document.body || document.head || document.documentElement).appendChild(
  2185. script
  2186. );
  2187.  
  2188. var label = "Open";
  2189. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language] !== undefined) {
  2190. if (_settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"] !== undefined) {
  2191. label = _settings_translations__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"][_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language]["open"];
  2192. }
  2193. }
  2194.  
  2195. var extra =
  2196. '<input type="input" id="ac-promo-input" size="8" style="display:none;margin:0 5px;"></input>';
  2197. extra +=
  2198. '<label style="font-size:' + Number(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].linkFontsize) + '%;">';
  2199. extra +=
  2200. '<a id="ac-promo-link" style="display:none" target="_blank" href="' +
  2201. url +
  2202. '">' +
  2203. label +
  2204. "</a></label>";
  2205. return extra;
  2206. }
  2207.  
  2208. function addACPromo() {
  2209. window.addACPromo = function() {
  2210. var input = document.getElementById("ac-promo-input");
  2211. input.style.display = "inline";
  2212. input.addEventListener("change", event => {
  2213. var replacement =
  2214. event.target.value != ""
  2215. ? "&AUTHORIZATION_ID=" + event.target.value
  2216. : "";
  2217. var link = document.getElementById("ac-promo-link");
  2218. var match = link.href.match(/(&AUTHORIZATION_ID=.*)/g);
  2219. if (match == null) {
  2220. link.href += replacement;
  2221. } else {
  2222. link.href = link.href.replace(match, replacement);
  2223. }
  2224. });
  2225.  
  2226. var link = document.getElementById("ac-promo-link");
  2227. link.style.display = "inline";
  2228. };
  2229. }
  2230.  
  2231. Object(_print_links__WEBPACK_IMPORTED_MODULE_4__[/* registerLink */ "c"])("airlines", printAC);
  2232. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air Canada", "acEdition", acEditions, "us");
  2233.  
  2234.  
  2235. /***/ }),
  2236. /* 14 */
  2237. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2238.  
  2239. "use strict";
  2240. __webpack_require__.r(__webpack_exports__);
  2241. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  2242. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  2243. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  2244. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  2245. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252. const afEditions = [
  2253. { value: "DE/de", name: "Germany / Deutsch" },
  2254. { value: "DE/en", name: "Germany / English" },
  2255. { value: "FR/en", name: "France / English" },
  2256. { value: "FI/en", name: "Finland / English" },
  2257. { value: "FR/fr", name: "France / French" },
  2258. { value: "NL/en", name: "Netherlands / English" },
  2259. { value: "GB/en", name: "United Kingdom / English" },
  2260. { value: "US/en", name: "US / English" }
  2261. ];
  2262.  
  2263. function printAF() {
  2264. var createUrl = function(edition) {
  2265. if (
  2266. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines &&
  2267. !(
  2268. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin &&
  2269. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 &&
  2270. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].dest &&
  2271. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[1].orig
  2272. )
  2273. ) {
  2274. return;
  2275. }
  2276.  
  2277. var cabins = ["Y", "W", "C", "F"];
  2278. var mincabin = 3;
  2279. var afUrl =
  2280. "https://www.airfrance.com/" +
  2281. edition +
  2282. "/local/process/standardbooking/DisplayUpsellAction.do?calendarSearch=1&subCabin=MCHER&typeTrip=2";
  2283. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  2284. if (i == 0) {
  2285. afUrl += "&from=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig;
  2286. afUrl += "&to=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest;
  2287. afUrl +=
  2288. "&outboundDate=" +
  2289. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year +
  2290. "-" +
  2291. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  2292. "-" +
  2293. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  2294. afUrl +=
  2295. "&firstOutboundHour=" +
  2296. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5);
  2297.  
  2298. let flights = "";
  2299. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  2300. if (j > 0) flights += "|";
  2301. flights +=
  2302. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  2303. ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4);
  2304. }
  2305. afUrl += "&flightOutbound=" + flights;
  2306. } else if (i == 1) {
  2307. afUrl +=
  2308. "&inboundDate=" +
  2309. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year +
  2310. "-" +
  2311. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  2312. "-" +
  2313. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  2314. afUrl +=
  2315. "&firstInboundHour=" + ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.time).slice(-5);
  2316.  
  2317. let flights = "";
  2318. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  2319. if (j > 0) flights += "|";
  2320. flights +=
  2321. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  2322. ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4);
  2323. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  2324. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  2325. }
  2326. }
  2327. afUrl += "&flightInbound=" + flights;
  2328. }
  2329. }
  2330. afUrl +=
  2331. "&cabin=" +
  2332. cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
  2333. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  2334. maxPaxcount: 9,
  2335. countInf: true,
  2336. childAsAdult: 18,
  2337. sepInfSeat: false,
  2338. childMinAge: 2
  2339. });
  2340. if (!pax) {
  2341. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAF");
  2342. return;
  2343. }
  2344. var tmpPax = { c: 0, y: 0 };
  2345. for (i = 0; i < pax.children.length; i++) {
  2346. if (pax.children[i] > 11) {
  2347. tmpPax.y++;
  2348. } else {
  2349. tmpPax.c++;
  2350. }
  2351. }
  2352. var curPax = 0;
  2353. afUrl += "&nbAdults=" + pax.adults;
  2354. for (i = 0; i < pax.adults; i++) {
  2355. afUrl += "&paxTypoList=ADT";
  2356. curPax++;
  2357. }
  2358. afUrl += "&nbEnfants=" + tmpPax.y;
  2359. for (i = 0; i < tmpPax.y; i++) {
  2360. afUrl += "&paxTypoList=YTH_MIN";
  2361. curPax++;
  2362. }
  2363. afUrl += "&nbChildren=" + tmpPax.c;
  2364. for (i = 0; i < tmpPax.y; i++) {
  2365. afUrl += "&paxTypoList=CHD";
  2366. curPax++;
  2367. }
  2368. afUrl += "&nbBebes=" + pax.infLap;
  2369. for (i = 0; i < pax.infLap; i++) {
  2370. afUrl += "&paxTypoList=INF";
  2371. curPax++;
  2372. }
  2373. afUrl += "&nbPassenger=" + curPax + "&nbPax=" + curPax;
  2374. return afUrl;
  2375. };
  2376. // get edition
  2377. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].afEdition;
  2378. var url = createUrl(edition);
  2379. if (!url) {
  2380. return;
  2381. }
  2382. var extra =
  2383. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  2384. extra += afEditions
  2385. .map(function(obj, i) {
  2386. return (
  2387. '<a href="' +
  2388. createUrl(obj.value) +
  2389. '" target="_blank">' +
  2390. obj.name +
  2391. "</a>"
  2392. );
  2393. })
  2394. .join("<br/>");
  2395. extra += "</span></span>";
  2396.  
  2397. return {
  2398. url,
  2399. title: "Air France",
  2400. extra
  2401. };
  2402. }
  2403.  
  2404. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printAF);
  2405. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Air France", "afEdition", afEditions, "US/en");
  2406.  
  2407.  
  2408. /***/ }),
  2409. /* 15 */
  2410. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2411.  
  2412. "use strict";
  2413. __webpack_require__.r(__webpack_exports__);
  2414. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  2415. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  2416. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  2417. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423. function printAS() {
  2424. if (
  2425. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  2426. !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("AS", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)
  2427. ) {
  2428. return;
  2429. }
  2430.  
  2431. // validate Passengers here: Max Paxcount = 7 (Infs not included) - >11 = Adult - InfSeat = Child
  2432. var createUrl = function() {
  2433. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  2434. maxPaxcount: 6,
  2435. countInf: true,
  2436. childAsAdult: 6,
  2437. sepInfSeat: false,
  2438. childMinAge: 2
  2439. });
  2440. if (!pax) {
  2441. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAAc1");
  2442. return;
  2443. }
  2444. var url = "https://www.alaskaair.com/planbook/shoppingstart?";
  2445. url += "A=" + pax.adults + "&C=" + pax.children.length + "&FT=";
  2446. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
  2447. url += "ow";
  2448. } else {
  2449. url += "rt";
  2450. }
  2451.  
  2452. var k = 0;
  2453. //Build multi-city search based on legs
  2454. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  2455. // walks each leg
  2456. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  2457. //walks each segment of leg
  2458. var itinseg =
  2459. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig +
  2460. "|" +
  2461. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest;
  2462. itinseg +=
  2463. "|" +
  2464. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  2465. "/" +
  2466. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
  2467. itinseg += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year;
  2468. itinseg += "|" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr + "|";
  2469. itinseg += _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin ? "f" : "c";
  2470. url += "&F" + ++k + "=" + encodeURIComponent(itinseg);
  2471. }
  2472. }
  2473. url +=
  2474. "&DEST=" +
  2475. _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;
  2476. url += "&FARE=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price + "&frm=cart&META=GOO_CS";
  2477. return url;
  2478. };
  2479. var url = createUrl();
  2480. if (!url) {
  2481. return;
  2482. }
  2483.  
  2484. return {
  2485. url,
  2486. title: "Alaska"
  2487. };
  2488. }
  2489.  
  2490. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAS);
  2491.  
  2492.  
  2493. /***/ }),
  2494. /* 16 */
  2495. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2496.  
  2497. "use strict";
  2498. __webpack_require__.r(__webpack_exports__);
  2499. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  2500. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  2501. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  2502. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508. const azEditions = [
  2509. { value: "de_de", name: "Germany / Deutsch" },
  2510. { value: "at_de", name: "Austria / Deutsch" },
  2511. { value: "ch_de", name: "Switzerland / Deutsch" },
  2512. { value: "fr_fr", name: "France / French" },
  2513. { value: "nl_nl", name: "Netherlands / Dutch" },
  2514. { value: "it_it", name: "Italy / Italian" },
  2515. { value: "ca_en", name: "Canada / Englisch" },
  2516. { value: "us_en", name: "US / Englisch" },
  2517. { value: "gb_en", name: "GB / Englisch" },
  2518. { value: "en_en", name: "International / Englisch" }
  2519. ];
  2520.  
  2521. function printAZ() {
  2522. if (
  2523. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  2524. !(_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))
  2525. ) {
  2526. return;
  2527. }
  2528.  
  2529. var createUrl = function(edition) {
  2530. var azUrl =
  2531. "https://www.alitalia.com/" +
  2532. edition +
  2533. "/home-page.metasearch.json?SearchType=BrandMetasearch";
  2534. var cabins = ["Economy", "Economy", "Business", "First"];
  2535. var seg = 0;
  2536. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  2537. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  2538. azUrl +=
  2539. "&MetaSearchDestinations[" +
  2540. seg +
  2541. "].From=" +
  2542. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  2543. azUrl +=
  2544. "&MetaSearchDestinations[" +
  2545. seg +
  2546. "].To=" +
  2547. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest;
  2548. azUrl +=
  2549. "&MetaSearchDestinations[" +
  2550. seg +
  2551. "].DepartureDate=" +
  2552. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  2553. "-" +
  2554. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  2555. "-" +
  2556. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  2557. ":" +
  2558. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.time).slice(-5);
  2559. azUrl +=
  2560. "&MetaSearchDestinations[" +
  2561. seg +
  2562. "].ArrivalDate=" +
  2563. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year +
  2564. "-" +
  2565. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month).slice(-2) +
  2566. "-" +
  2567. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day).slice(-2) +
  2568. ":" +
  2569. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.time).slice(-5);
  2570. azUrl +=
  2571. "&MetaSearchDestinations[" +
  2572. seg +
  2573. "].Flight=" +
  2574. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  2575. azUrl +=
  2576. "&MetaSearchDestinations[" +
  2577. seg +
  2578. "].code=" +
  2579. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase;
  2580. azUrl += "&MetaSearchDestinations[" + seg + "].MseType=";
  2581. azUrl +=
  2582. "&MetaSearchDestinations[" +
  2583. seg +
  2584. "].bookingClass=" +
  2585. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  2586. azUrl +=
  2587. "&MetaSearchDestinations[" +
  2588. seg +
  2589. "].cabinClass=" +
  2590. cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
  2591. azUrl += "&MetaSearchDestinations[" + seg + "].slices=" + i;
  2592. seg++;
  2593. }
  2594. }
  2595. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  2596. maxPaxcount: 7,
  2597. countInf: false,
  2598. childAsAdult: 12,
  2599. sepInfSeat: false,
  2600. childMinAge: 2
  2601. });
  2602. if (!pax) {
  2603. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printAZ");
  2604. return false;
  2605. }
  2606. azUrl +=
  2607. "&children_number=" +
  2608. pax.children.length +
  2609. "&newborn_number=" +
  2610. pax.infLap +
  2611. "&adult_number=" +
  2612. pax.adults;
  2613. return azUrl;
  2614. };
  2615. // get edition
  2616. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].azEdition;
  2617. var azUrl = createUrl(edition);
  2618. if (!azUrl) {
  2619. return;
  2620. }
  2621. var extra =
  2622. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  2623. extra += azEditions
  2624. .map(function(obj, i) {
  2625. return (
  2626. '<a href="' +
  2627. createUrl(obj.value) +
  2628. '" target="_blank">' +
  2629. obj.name +
  2630. "</a>"
  2631. );
  2632. })
  2633. .join("<br/>");
  2634. extra += "</span></span>";
  2635.  
  2636. return {
  2637. url: azUrl,
  2638. title: "Alitalia",
  2639. extra
  2640. };
  2641. }
  2642.  
  2643. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printAZ);
  2644. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Alitalia", "azEdition", azEditions, "us_en");
  2645.  
  2646.  
  2647. /***/ }),
  2648. /* 17 */
  2649. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2650.  
  2651. "use strict";
  2652. __webpack_require__.r(__webpack_exports__);
  2653. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  2654. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  2655. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  2656. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  2657. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664. const baEditions = [
  2665. { value: "AF", name: "Afghanistan" },
  2666. { value: "AL", name: "Albania" },
  2667. { value: "DZ", name: "Algeria" },
  2668. { value: "AS", name: "American Samoa" },
  2669. { value: "AD", name: "Andorra" },
  2670. { value: "AO", name: "Angola" },
  2671. { value: "AI", name: "Anguilla" },
  2672. { value: "AG", name: "Antigua" },
  2673. { value: "AR", name: "Argentina" },
  2674. { value: "AM", name: "Armenia" },
  2675. { value: "AW", name: "Aruba" },
  2676. { value: "AU", name: "Australia" },
  2677. { value: "AT", name: "Austria" },
  2678. { value: "AZ", name: "Azerbaijan" },
  2679. { value: "BS", name: "Bahamas" },
  2680. { value: "BH", name: "Bahrain" },
  2681. { value: "BD", name: "Bangladesh" },
  2682. { value: "BB", name: "Barbados" },
  2683. { value: "BY", name: "Belarus" },
  2684. { value: "BE", name: "Belgium" },
  2685. { value: "BZ", name: "Belize" },
  2686. { value: "BJ", name: "Benin Republic" },
  2687. { value: "BM", name: "Bermuda" },
  2688. { value: "BT", name: "Bhutan" },
  2689. { value: "BO", name: "Bolivia" },
  2690. { value: "BA", name: "Bosnia-Herzegovina" },
  2691. { value: "BW", name: "Botswana" },
  2692. { value: "BR", name: "Brazil" },
  2693. { value: "VG", name: "British Virgin Islands" },
  2694. { value: "BN", name: "Brunei" },
  2695. { value: "BG", name: "Bulgaria" },
  2696. { value: "BF", name: "Burkina Faso" },
  2697. { value: "BI", name: "Burundi" },
  2698. { value: "KH", name: "Cambodia" },
  2699. { value: "CA", name: "Canada" },
  2700. { value: "CV", name: "Cape Verde" },
  2701. { value: "KY", name: "Cayman Islands" },
  2702. { value: "CF", name: "Central African Rep" },
  2703. { value: "TD", name: "Chad" },
  2704. { value: "CL", name: "Chile" },
  2705. { value: "CN", name: "China" },
  2706. { value: "CX", name: "Christmas Island" },
  2707. { value: "CC", name: "Cocos Islands" },
  2708. { value: "CO", name: "Colombia" },
  2709. { value: "CG", name: "Congo" },
  2710. { value: "CK", name: "Cook Islands" },
  2711. { value: "CR", name: "Costa Rica" },
  2712. { value: "HR", name: "Croatia" },
  2713. { value: "CU", name: "Cuba" },
  2714. { value: "CY", name: "Cyprus" },
  2715. { value: "CZ", name: "Czech Republic" },
  2716. { value: "DK", name: "Denmark" },
  2717. { value: "DJ", name: "Djibouti" },
  2718. { value: "DM", name: "Dominica" },
  2719. { value: "DO", name: "Dominican Rep" },
  2720. { value: "EC", name: "Ecuador" },
  2721. { value: "EG", name: "Egypt" },
  2722. { value: "SV", name: "El Salvador" },
  2723. { value: "GQ", name: "Equatorial Guinea" },
  2724. { value: "ER", name: "Eritrea" },
  2725. { value: "EE", name: "Estonia" },
  2726. { value: "ET", name: "Ethiopia" },
  2727. { value: "FO", name: "Faeroe Is" },
  2728. { value: "FK", name: "Falkland Is" },
  2729. { value: "FJ", name: "Fiji" },
  2730. { value: "FI", name: "Finland" },
  2731. { value: "FR", name: "France" },
  2732. { value: "GF", name: "French Guyana" },
  2733. { value: "PF", name: "French Polynesia" },
  2734. { value: "GA", name: "Gabon" },
  2735. { value: "GM", name: "Gambia" },
  2736. { value: "GE", name: "Georgia" },
  2737. { value: "DE", name: "Germany" },
  2738. { value: "GH", name: "Ghana" },
  2739. { value: "GI", name: "Gibraltar (UK)" },
  2740. { value: "GR", name: "Greece" },
  2741. { value: "GL", name: "Greenland" },
  2742. { value: "GD", name: "Grenada" },
  2743. { value: "GP", name: "Guadeloupe" },
  2744. { value: "GU", name: "Guam" },
  2745. { value: "GT", name: "Guatemala" },
  2746. { value: "GN", name: "Guinea" },
  2747. { value: "GW", name: "Guinea Bissau" },
  2748. { value: "GY", name: "Guyana" },
  2749. { value: "HT", name: "Haiti" },
  2750. { value: "HN", name: "Honduras" },
  2751. { value: "HK", name: "Hong Kong" },
  2752. { value: "HU", name: "Hungary" },
  2753. { value: "IS", name: "Iceland" },
  2754. { value: "IN", name: "India" },
  2755. { value: "ID", name: "Indonesia" },
  2756. { value: "IR", name: "Iran" },
  2757. { value: "IQ", name: "Iraq" },
  2758. { value: "IE", name: "Ireland" },
  2759. { value: "IL", name: "Israel" },
  2760. { value: "IT", name: "Italy" },
  2761. { value: "CI", name: "Ivory Coast" },
  2762. { value: "JM", name: "Jamaica" },
  2763. { value: "JP", name: "Japan" },
  2764. { value: "JO", name: "Jordan" },
  2765. { value: "KZ", name: "Kazakhstan" },
  2766. { value: "KE", name: "Kenya" },
  2767. { value: "KI", name: "Kiribati" },
  2768. { value: "XK", name: "Kosovo" },
  2769. { value: "KW", name: "Kuwait" },
  2770. { value: "KG", name: "Kyrgyzstan" },
  2771. { value: "LA", name: "Laos" },
  2772. { value: "LV", name: "Latvia" },
  2773. { value: "LB", name: "Lebanon" },
  2774. { value: "LS", name: "Lesotho" },
  2775. { value: "LR", name: "Liberia" },
  2776. { value: "LY", name: "Libya" },
  2777. { value: "LI", name: "Liechtenstein" },
  2778. { value: "LT", name: "Lithuania" },
  2779. { value: "LU", name: "Luxembourg" },
  2780. { value: "MO", name: "Macau" },
  2781. { value: "MK", name: "Macedonia" },
  2782. { value: "MG", name: "Madagascar" },
  2783. { value: "MW", name: "Malawi" },
  2784. { value: "MY", name: "Malaysia" },
  2785. { value: "MV", name: "Maldives" },
  2786. { value: "ML", name: "Mali" },
  2787. { value: "MT", name: "Malta" },
  2788. { value: "MP", name: "Mariana Islands" },
  2789. { value: "MH", name: "Marshall Islands" },
  2790. { value: "MQ", name: "Martinique" },
  2791. { value: "MR", name: "Mauritania" },
  2792. { value: "MU", name: "Mauritius" },
  2793. { value: "MX", name: "Mexico" },
  2794. { value: "FM", name: "Micronesia" },
  2795. { value: "UM", name: "Minor Island" },
  2796. { value: "MD", name: "Moldova" },
  2797. { value: "MC", name: "Monaco" },
  2798. { value: "ME", name: "Montenegro" },
  2799. { value: "MS", name: "Montserrat" },
  2800. { value: "MA", name: "Morocco" },
  2801. { value: "MZ", name: "Mozambique" },
  2802. { value: "MM", name: "Myanmar" },
  2803. { value: "NA", name: "Namibia" },
  2804. { value: "NR", name: "Nauru" },
  2805. { value: "NP", name: "Nepal" },
  2806. { value: "AN", name: "Netherland Antilles" },
  2807. { value: "NL", name: "Netherlands" },
  2808. { value: "NC", name: "New Caledonia" },
  2809. { value: "NZ", name: "New Zealand" },
  2810. { value: "NI", name: "Nicaragua" },
  2811. { value: "NE", name: "Niger" },
  2812. { value: "NG", name: "Nigeria" },
  2813. { value: "NU", name: "Niue" },
  2814. { value: "NF", name: "Norfolk Island" },
  2815. { value: "NO", name: "Norway" },
  2816. { value: "OM", name: "Oman" },
  2817. { value: "PK", name: "Pakistan" },
  2818. { value: "PA", name: "Panama" },
  2819. { value: "PG", name: "Papua New Guinea" },
  2820. { value: "PY", name: "Paraguay" },
  2821. { value: "KP", name: "Peoples Rep Korea" },
  2822. { value: "PE", name: "Peru" },
  2823. { value: "PH", name: "Philippines" },
  2824. { value: "PL", name: "Poland" },
  2825. { value: "PT", name: "Portugal" },
  2826. { value: "PR", name: "Puerto Rico" },
  2827. { value: "QA", name: "Qatar" },
  2828. { value: "CM", name: "Republic Cameroon" },
  2829. { value: "RE", name: "Reunion" },
  2830. { value: "RO", name: "Romania" },
  2831. { value: "RU", name: "Russia" },
  2832. { value: "RW", name: "Rwanda" },
  2833. { value: "SM", name: "San Marino" },
  2834. { value: "SA", name: "Saudi Arabia" },
  2835. { value: "SN", name: "Senegal" },
  2836. { value: "RS", name: "Serbia" },
  2837. { value: "SC", name: "Seychelles" },
  2838. { value: "SL", name: "Sierra Leone" },
  2839. { value: "SG", name: "Singapore" },
  2840. { value: "SK", name: "Slovakia" },
  2841. { value: "SI", name: "Slovenia" },
  2842. { value: "SB", name: "Solomon Island" },
  2843. { value: "SO", name: "Somalia" },
  2844. { value: "ZA", name: "South Africa" },
  2845. { value: "KR", name: "South Korea" },
  2846. { value: "ES", name: "Spain" },
  2847. { value: "LK", name: "Sri Lanka" },
  2848. { value: "KN", name: "St Kitts and Nevis" },
  2849. { value: "LC", name: "St Lucia" },
  2850. { value: "VC", name: "St Vincent" },
  2851. { value: "SD", name: "Sudan" },
  2852. { value: "SR", name: "Suriname" },
  2853. { value: "SZ", name: "Swaziland" },
  2854. { value: "SE", name: "Sweden" },
  2855. { value: "CH", name: "Switzerland" },
  2856. { value: "SY", name: "Syria" },
  2857. { value: "TW", name: "Taiwan" },
  2858. { value: "TJ", name: "Tajikistan" },
  2859. { value: "TZ", name: "Tanzania" },
  2860. { value: "TH", name: "Thailand" },
  2861. { value: "TL", name: "Timor - Leste" },
  2862. { value: "TG", name: "Togo" },
  2863. { value: "TO", name: "Tonga" },
  2864. { value: "TT", name: "Trinidad and Tobago" },
  2865. { value: "TN", name: "Tunisia" },
  2866. { value: "TR", name: "Turkey" },
  2867. { value: "TM", name: "Turkmenistan" },
  2868. { value: "TC", name: "Turks Caicos" },
  2869. { value: "TV", name: "Tuvalu" },
  2870. { value: "VI", name: "US Virgin Islands" },
  2871. { value: "US", name: "USA" },
  2872. { value: "UG", name: "Uganda" },
  2873. { value: "UA", name: "Ukraine" },
  2874. { value: "AE", name: "United Arab Emirates" },
  2875. { value: "GB", name: "United Kingdom" },
  2876. { value: "UY", name: "Uruguay" },
  2877. { value: "UZ", name: "Uzbekistan" },
  2878. { value: "VU", name: "Vanuatu" },
  2879. { value: "VE", name: "Venezuela" },
  2880. { value: "VN", name: "Vietnam" },
  2881. { value: "WS", name: "Western Samoa" },
  2882. { value: "YE", name: "Yemen Republic" },
  2883. { value: "ZM", name: "Zambia" },
  2884. { value: "ZW", name: "Zimbabwe" }
  2885. ];
  2886.  
  2887. function printBA() {
  2888. if (
  2889. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines &&
  2890. !(
  2891. 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)
  2892. )
  2893. ) {
  2894. return;
  2895. }
  2896.  
  2897. var createUrl = function(edition, language) {
  2898. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  2899. var cabins = ["M", "W", "C", "F"];
  2900. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  2901. maxPaxcount: 9,
  2902. countInf: false,
  2903. childAsAdult: 16,
  2904. sepInfSeat: false,
  2905. childMinAge: 2
  2906. });
  2907. if (!pax) {
  2908. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printBA");
  2909. return false;
  2910. }
  2911. var tmpPax = { c: 0, y: 0 };
  2912. for (i = 0; i < pax.children.length; i++) {
  2913. if (pax.children[i] > 11) {
  2914. tmpPax.y++;
  2915. } else {
  2916. tmpPax.c++;
  2917. }
  2918. }
  2919. var url =
  2920. "https://www.britishairways.com/travel/fx/public/" +
  2921. language +
  2922. "_" +
  2923. edition +
  2924. "?eId=111054&data=F" +
  2925. pax.adults +
  2926. tmpPax.y +
  2927. tmpPax.c +
  2928. pax.infLap +
  2929. "LF";
  2930. var mincabin = 3;
  2931. //Build multi-city search based on legs
  2932. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  2933. // walks each leg
  2934. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  2935. //walks each segment of leg
  2936. var k = 0;
  2937. // lets have a look if we need to skip segments - fnr has to be the same and it must be just a layover
  2938. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  2939. if (
  2940. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  2941. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  2942. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  2943. )
  2944. break;
  2945. k++;
  2946. }
  2947. url +=
  2948. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  2949. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  2950. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  2951. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(
  2952. -4
  2953. );
  2954. url +=
  2955. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  2956. ("000" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr).slice(-4);
  2957. url += cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin];
  2958. url +=
  2959. _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;
  2960. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length == 2 && i == 1) {
  2961. url += "F";
  2962. } else {
  2963. url += "T";
  2964. }
  2965. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  2966. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  2967. }
  2968. j += k;
  2969. }
  2970. }
  2971. url +=
  2972. "&p=EUR6666.66&e=FP&c=" +
  2973. cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()] +
  2974. "&source=FareQuoteEmail&isEmailHBOFareQuote=false";
  2975. return url;
  2976. };
  2977. // get edition
  2978. var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage);
  2979. if (!url) {
  2980. return;
  2981. }
  2982. var extra =
  2983. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  2984. extra += baEditions
  2985. .map(function(obj, i) {
  2986. return (
  2987. '<a href="' +
  2988. createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].baLanguage) +
  2989. '" target="_blank">' +
  2990. obj.name +
  2991. "</a>"
  2992. );
  2993. })
  2994. .join("<br/>");
  2995. extra += "</span></span>";
  2996.  
  2997. return {
  2998. url,
  2999. title: "British Airways",
  3000. extra
  3001. };
  3002. }
  3003.  
  3004. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printBA);
  3005. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("British Airways", "baEdition", baEditions, "US");
  3006.  
  3007.  
  3008. /***/ }),
  3009. /* 18 */
  3010. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3011.  
  3012. "use strict";
  3013. __webpack_require__.r(__webpack_exports__);
  3014. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  3015. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  3016. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  3017. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  3018. /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025. const czEditions = [
  3026. { value: "AR-GB", name: "Argentina / English" },
  3027. { value: "AU-GB", name: "Australia / English" },
  3028. { value: "AZ-GB", name: "Azerbaijan / English" },
  3029. { value: "BD-GB", name: "Bangladesh / English" },
  3030. { value: "BE-GB", name: "Belgium / English" },
  3031. { value: "BR-GB", name: "Brazil / English" },
  3032. { value: "KH-GB", name: "Cambodia / English" },
  3033. { value: "CA-GB", name: "Canada / English" },
  3034. { value: "CA-FR", name: "Canada / French" },
  3035. { value: "CN-GB", name: "China / English" },
  3036. { value: "DK-GB", name: "Denmark / English" },
  3037. { value: "FI-GB", name: "Finland / English" },
  3038. { value: "FR-GB", name: "France / English" },
  3039. { value: "FR-FR", name: "France / French" },
  3040. { value: "GE-GB", name: "Georgia / English" },
  3041. { value: "DE-GB", name: "Germany / English" },
  3042. { value: "DE-DE", name: "Germany / German" },
  3043. { value: "GR-GB", name: "Greece / English" },
  3044. { value: "HK-GB", name: "Hong Kong / English" },
  3045. { value: "IN-GB", name: "India / English" },
  3046. { value: "ID-GB", name: "Indonesia / English" },
  3047. { value: "IR-GB", name: "Iran / English" },
  3048. { value: "IE-GB", name: "Ireland / English" },
  3049. { value: "IT-GB", name: "Italy / English" },
  3050. { value: "JP-GB", name: "Japan / English" },
  3051. { value: "JO-GB", name: "Jordan / English" },
  3052. { value: "KZ-GB", name: "Kazakhstan / English" },
  3053. { value: "KE-GB", name: "Kenya / English" },
  3054. { value: "KG-GB", name: "Kyrgyzstan / English" },
  3055. { value: "MY-GB", name: "Malaysia / English" },
  3056. { value: "MV-GB", name: "Maldives / English" },
  3057. { value: "MO-GB", name: "Macau / English" },
  3058. { value: "MM-GB", name: "Myanmar / English" },
  3059. { value: "NP-GB", name: "Nepal / English" },
  3060. { value: "NL-GB", name: "Netherlands / English" },
  3061. { value: "NZ-GB", name: "New Zealand / English" },
  3062. { value: "NO-GB", name: "Norway / English" },
  3063. { value: "PK-GB", name: "Pakistan / English" },
  3064. { value: "PA-GB", name: "Panama / English" },
  3065. { value: "PE-GB", name: "Peru / English" },
  3066. { value: "PH-GB", name: "Philippines / English" },
  3067. { value: "PT-GB", name: "Portugal / English" },
  3068. { value: "RU-GB", name: "Russia / English" },
  3069. { value: "SA-GB", name: "Saudi Arabia / English" },
  3070. { value: "SG-GB", name: "Singapore / English" },
  3071. { value: "ZA-GB", name: "South Africa / English" },
  3072. { value: "KR-GB", name: "South Korea / English" },
  3073. { value: "ES-GB", name: "Spain / English" },
  3074. { value: "SE-GB", name: "Sweden / English" },
  3075. { value: "CH-GB", name: "Switzerland / English" },
  3076. { value: "TW-GB", name: "Taiwan / English" },
  3077. { value: "TJ-GB", name: "Tajikistan / English" },
  3078. { value: "TZ-GB", name: "Tanzania / English" },
  3079. { value: "TH-GB", name: "Thailand / English" },
  3080. { value: "TR-GB", name: "Turkey / English" },
  3081. { value: "TM-GB", name: "Turkmenistan / English" },
  3082. { value: "UA-GB", name: "Ukraine / English" },
  3083. { value: "GB-GB", name: "United Kingdom / English" },
  3084. { value: "AE-GB", name: "United Arab Emirates / English" },
  3085. { value: "UG-GB", name: "Uganda / English" },
  3086. { value: "US-GB", name: "United States / English" },
  3087. { value: "UZ-GB", name: "Uzbekistan / English" },
  3088. { value: "VE-GB", name: "Venezuela / English" },
  3089. { value: "VN-GB", name: "Vietnam / English" }
  3090. ];
  3091.  
  3092. function printCZ() {
  3093. if (
  3094. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  3095. !(_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))
  3096. ) {
  3097. return;
  3098. }
  3099.  
  3100. var createUrl = function(edition) {
  3101. var paxConfig = { allowinf: 1, youthage: 0 };
  3102. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  3103. maxPaxcount: 9,
  3104. countInf: false,
  3105. childAsAdult: 12,
  3106. sepInfSeat: false,
  3107. childMinAge: 2
  3108. });
  3109. if (!pax) {
  3110. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printCZ");
  3111. return;
  3112. }
  3113. var amadeusConfig = {
  3114. sepcabin: 0,
  3115. detailed: 0,
  3116. allowpremium: 0,
  3117. inctimes: 0
  3118. };
  3119. var url =
  3120. "http://global.csair.com/CZPortal/dyn/portal/doEnc?SITE=J00YJ00Y&BOOKING_FLOW=REVENUE&IS_FLEXIBLE=FALSE&LANGUAGE=" +
  3121. edition[1] +
  3122. "&PRICING_TYPE=O&COUNTRY_SITE=" +
  3123. edition[0] +
  3124. "&DISPLAY_TYPE=1";
  3125. var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  3126. url += tmpPax.url;
  3127. url += "&NB_ADT=" + tmpPax.adults;
  3128. url += "&NB_INF=" + tmpPax.infants;
  3129. url += "&NB_CHD=" + tmpPax.children;
  3130. url += "&TRIP_TYPE=M";
  3131. url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  3132. return url;
  3133. };
  3134. // get edition
  3135. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].czEdition.split("-");
  3136. if (edition.length != 2) {
  3137. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid CZ-Edition");
  3138. return;
  3139. }
  3140. var url = createUrl(edition);
  3141. if (!url) {
  3142. return;
  3143. }
  3144. var extra =
  3145. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  3146. extra += czEditions
  3147. .map(function(obj, i) {
  3148. return (
  3149. '<a href="' +
  3150. createUrl(obj.value.split("-")) +
  3151. '" target="_blank">' +
  3152. obj.name +
  3153. "</a>"
  3154. );
  3155. })
  3156. .join("<br/>");
  3157. extra += "</span></span>";
  3158.  
  3159. return {
  3160. url,
  3161. title: "China Southern",
  3162. extra
  3163. };
  3164. }
  3165.  
  3166. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printCZ);
  3167. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("China Southern", "czEdition", czEditions, "US-GB");
  3168.  
  3169.  
  3170. /***/ }),
  3171. /* 19 */
  3172. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3173.  
  3174. "use strict";
  3175. __webpack_require__.r(__webpack_exports__);
  3176. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  3177. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  3178. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  3179. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  3180. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187. const dlEditions = [
  3188. { value: "de_de", name: "Germany" },
  3189. { value: "www_us", name: "US" }
  3190. ];
  3191.  
  3192. function printDL() {
  3193. /* Steppo: What about farebasis?
  3194. * What about segmentskipping? */
  3195. var createUrl = function(edition) {
  3196. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  3197. // Defaults for cabin identifiers for DL pricing engine; exceptions handled later
  3198. var cabins = ["MAIN", "DPPS", "BU", "FIRST"];
  3199. var mincabin = 3;
  3200. var farebases = new Array();
  3201. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  3202. maxPaxcount: 9,
  3203. countInf: true,
  3204. childAsAdult: 12,
  3205. sepInfSeat: false,
  3206. childMinAge: 2
  3207. });
  3208. if (!pax) {
  3209. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printDL");
  3210. return;
  3211. }
  3212.  
  3213. var deltaURL =
  3214. "http://" +
  3215. edition[0] +
  3216. ".delta.com/air-shopping/priceTripAction.action?ftw_reroute=true&tripType=multiCity";
  3217. deltaURL += "&currencyCd=" + (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].cur == "EUR" ? "EUR" : "USD");
  3218. deltaURL += "&exitCountry=" + edition[1];
  3219. var segcounter = 0;
  3220. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  3221. // walks each leg
  3222. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  3223. //walks each segment of leg
  3224. deltaURL +=
  3225. "&itinSegment[" +
  3226. segcounter.toString() +
  3227. "]=" +
  3228. i.toString() +
  3229. ":" +
  3230. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  3231. deltaURL +=
  3232. ":" +
  3233. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig +
  3234. ":" +
  3235. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest +
  3236. ":" +
  3237. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  3238. ":" +
  3239. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  3240. deltaURL +=
  3241. ":" +
  3242. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* monthnumberToName */ "g"])(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.month) +
  3243. ":" +
  3244. (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day < 10 ? "0" : "") +
  3245. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.day +
  3246. ":" +
  3247. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  3248. ":0";
  3249. farebases.push(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].farebase);
  3250. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  3251. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  3252. }
  3253. // Exceptions to cabin identifiers for pricing
  3254. switch (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass) {
  3255. // Basic Economy fares
  3256. case "E":
  3257. cabins[0] = "BASIC-ECONOMY";
  3258. break;
  3259. // Comfort+ fares
  3260. case "W":
  3261. cabins[1] = "DCP";
  3262. break;
  3263. default:
  3264. }
  3265. segcounter++;
  3266. }
  3267. }
  3268. deltaURL +=
  3269. "&cabin=" +
  3270. cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
  3271. deltaURL += "&fareBasis=" + farebases.join(":");
  3272. //deltaURL += "&price=0";
  3273. deltaURL +=
  3274. "&numOfSegments=" +
  3275. segcounter.toString() +
  3276. "&paxCount=" +
  3277. (pax.adults + pax.children.length + pax.infLap);
  3278. deltaURL += "&vendorRedirectFlag=true&vendorID=Google";
  3279. return deltaURL;
  3280. };
  3281. // get edition
  3282. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].dlEdition.split("_");
  3283. if (edition.length != 2) {
  3284. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid Delta-Edition");
  3285. return;
  3286. }
  3287. var url = createUrl(edition);
  3288. if (!url) {
  3289. return;
  3290. }
  3291. var extra =
  3292. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  3293. extra += dlEditions
  3294. .map(function(obj, i) {
  3295. return (
  3296. '<a href="' +
  3297. createUrl(obj.value.split("_")) +
  3298. '" target="_blank">' +
  3299. obj.name +
  3300. "</a>"
  3301. );
  3302. })
  3303. .join("<br/>");
  3304. extra += "</span></span>";
  3305.  
  3306. return {
  3307. url,
  3308. title: "Delta",
  3309. extra
  3310. };
  3311. }
  3312.  
  3313. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printDL);
  3314. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Delta", "dlEdition", dlEditions, "www_us");
  3315.  
  3316.  
  3317. /***/ }),
  3318. /* 20 */
  3319. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3320.  
  3321. "use strict";
  3322. __webpack_require__.r(__webpack_exports__);
  3323. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  3324. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  3325. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  3326. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332. const ibEditions = [
  3333. { value: "es-AO", name: "Angola - Español" },
  3334. { value: "pt-AO", name: "Angola - Português" },
  3335. { value: "es-DZ", name: "Argelia - Español" },
  3336. { value: "fr-DZ", name: "Algérie - Français" },
  3337. { value: "en-AR", name: "Argentina - English" },
  3338. { value: "es-AR", name: "Argentina - Español" },
  3339. { value: "en-BE", name: "Belgium - English" },
  3340. { value: "es-BE", name: "Bélgica - Español" },
  3341. { value: "fr-BE", name: "Belgique - Français" },
  3342. { value: "es-BR", name: "Brasil - Español" },
  3343. { value: "pt-BR", name: "Brasil - Português" },
  3344. { value: "en-CL", name: "Chile - English" },
  3345. { value: "es-CL", name: "Chile - Español" },
  3346. { value: "en-CO", name: "Colombia - English" },
  3347. { value: "es-CO", name: "Colombia - Español" },
  3348. { value: "en-CR", name: "Costa Rica - English" },
  3349. { value: "es-CR", name: "Costa Rica - Español" },
  3350. { value: "en-HR", name: "Croatia - English" },
  3351. { value: "es-HR", name: "Croacia - Español" },
  3352. { value: "it-HR", name: "Croazia - Italiano" },
  3353. { value: "en-CU", name: "Cuba - English" },
  3354. { value: "es-CU", name: "Cuba - Español" },
  3355. { value: "en-CZ", name: "Czech Republic - English" },
  3356. { value: "es-CZ", name: "República Checa - Español" },
  3357. { value: "en-DK", name: "Denmark - English" },
  3358. { value: "es-DK", name: "Dinamarca - Español" },
  3359. { value: "de-DE", name: "Deutschland - Deutsch" },
  3360. { value: "es-DE", name: "Alemania - Español" },
  3361. { value: "en-DO", name: "Dominican Republic - English" },
  3362. { value: "es-DO", name: "República Dominicana - Español" },
  3363. { value: "en-EC", name: "Ecuador - English" },
  3364. { value: "es-EC", name: "Ecuador - Español" },
  3365. { value: "en-SV", name: "El Salvador - English" },
  3366. { value: "es-SV", name: "El Salvador - Español" },
  3367. { value: "en-GQ", name: "Equatorial Guinea - English" },
  3368. { value: "es-GQ", name: "Guinea Ecuatorial - Español" },
  3369. { value: "ca-ES", name: "Espanya - Català" },
  3370. { value: "en-ES", name: "Spain - English" },
  3371. { value: "es-ES", name: "España - Español" },
  3372. { value: "es-FR", name: "Francia - Español" },
  3373. { value: "fr-FR", name: "France - Français" },
  3374. { value: "en-GH", name: "Ghana - English" },
  3375. { value: "es-GH", name: "Ghana - Español" },
  3376. { value: "en-GR", name: "Greece - English" },
  3377. { value: "es-GR", name: "Grecia - Español" },
  3378. { value: "en-GT", name: "Guatemala - English" },
  3379. { value: "es-GT", name: "Guatemala - Español" },
  3380. { value: "en-HN", name: "Honduras - English" },
  3381. { value: "es-HN", name: "Honduras - Español" },
  3382. { value: "en-IE", name: "Ireland - English" },
  3383. { value: "es-IE", name: "Irlanda - Español" },
  3384. { value: "en-IL", name: "Israel - English" },
  3385. { value: "es-IL", name: "Israel - Español" },
  3386. { value: "en-IT", name: "Italy - English" },
  3387. { value: "es-IT", name: "Italia - Español" },
  3388. { value: "it-IT", name: "Italia - Italiano" },
  3389. { value: "en-JP", name: "Japan - English" },
  3390. { value: "es-JP", name: "Japón - Español" },
  3391. { value: "ja-JP", name: "日本 - 日本語" },
  3392. { value: "en-MT", name: "Malta - English" },
  3393. { value: "es-MT", name: "Malta - Español" },
  3394. { value: "it-MT", name: "Malta - Italiano" },
  3395. { value: "es-MA", name: "Marruecos - Español" },
  3396. { value: "fr-MA", name: "Maroc - Français" },
  3397. { value: "es-MR", name: "Mauritania - Español" },
  3398. { value: "fr-MR", name: "Mauritanie - Français" },
  3399. { value: "en-MX", name: "Mexico - English" },
  3400. { value: "es-MX", name: "México - Español" },
  3401. { value: "en-NL", name: "Netherlands - English" },
  3402. { value: "es-NL", name: "Holanda - Español" },
  3403. { value: "nl-NL", name: "Nederland - Nederlands" },
  3404. { value: "en-NI", name: "Nicaragua - English" },
  3405. { value: "es-NI", name: "Nicaragua - Español" },
  3406. { value: "en-NG", name: "Nigeria - English" },
  3407. { value: "es-NG", name: "Nigeria - Español" },
  3408. { value: "en-PA", name: "Panama - English" },
  3409. { value: "es-PA", name: "Panamá - Español" },
  3410. { value: "en-PE", name: "Peru - English" },
  3411. { value: "es-PE", name: "Perú - Español" },
  3412. { value: "es-PT", name: "Portugal - Español" },
  3413. { value: "pt-PT", name: "Portugal - Português" },
  3414. { value: "en-PR", name: "Puerto Rico - English" },
  3415. { value: "es-PR", name: "Puerto Rico - Español" },
  3416. { value: "en-RU", name: "Russian Federation - English" },
  3417. { value: "es-RU", name: "Rusia - Español" },
  3418. { value: "ru-RU", name: "Rossiya - Русский" },
  3419. { value: "de-CH", name: "Schweiz - Deutsch" },
  3420. { value: "es-CH", name: "Suiza - Español" },
  3421. { value: "fr-CH", name: "Suisse - Français" },
  3422. { value: "es-SN", name: "Senegal - Español" },
  3423. { value: "fr-SN", name: "Sénégal - Français" },
  3424. { value: "en-ZA", name: "South Africa - English" },
  3425. { value: "es-ZA", name: "Sudáfrica - Español" },
  3426. { value: "en-SE", name: "Sweden - English" },
  3427. { value: "es-SE", name: "Suecia - Español" },
  3428. { value: "en-TR", name: "Turkey - English" },
  3429. { value: "es-TR", name: "Turquía - Español" },
  3430. { value: "en-US", name: "USA - English" },
  3431. { value: "es-US", name: "USA - Español" },
  3432. { value: "en-GB", name: "United Kingdom - English" },
  3433. { value: "es-GB", name: "Reino Unido - Español" },
  3434. { value: "en-UY", name: "Uruguay - English" },
  3435. { value: "es-UY", name: "Uruguay - Español" },
  3436. { value: "en-VE", name: "Venezuela - English" },
  3437. { value: "es-VE", name: "Venezuela - Español" }
  3438. ];
  3439.  
  3440. function printIB() {
  3441. if (
  3442. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  3443. !(
  3444. 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)
  3445. )
  3446. ) {
  3447. return;
  3448. }
  3449.  
  3450. var createUrl = function(edition, currency) {
  3451. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  3452. var cabins = ["Economy", "Economy", "Business", "First"];
  3453. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  3454. maxPaxcount: 9,
  3455. countInf: false,
  3456. childAsAdult: 12,
  3457. sepInfSeat: false,
  3458. childMinAge: 2
  3459. });
  3460. if (!pax) {
  3461. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printIB");
  3462. return;
  3463. }
  3464. var url =
  3465. "http://www.iberia.com/web/partnerLink.do?Adult=" +
  3466. pax.adults +
  3467. "&Child=" +
  3468. pax.children.length +
  3469. "&Infant=0&InfantLap=" +
  3470. pax.infLap +
  3471. "&PointOfSaleCountry=" +
  3472. edition[1] +
  3473. "&UserCurrency=" +
  3474. currency +
  3475. "&UserLanguage=" +
  3476. edition[0] +
  3477. "&TripType=";
  3478. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
  3479. url += "OneWay";
  3480. } else if (
  3481. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
  3482. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
  3483. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
  3484. ) {
  3485. url += "RoundTrip";
  3486. } else {
  3487. url += "MultiCity";
  3488. }
  3489.  
  3490. var seg = 0;
  3491. var slice = 1;
  3492. var slicestr = "";
  3493. //Build multi-city search based on legs
  3494. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  3495. // walks each leg
  3496. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  3497. seg++;
  3498. //walks each segment of leg
  3499. var k = 0;
  3500. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  3501. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  3502. if (
  3503. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  3504. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  3505. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  3506. )
  3507. break;
  3508. k++;
  3509. }
  3510. url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  3511. url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  3512. url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
  3513. url +=
  3514. "&DepartureDate" +
  3515. seg +
  3516. "=" +
  3517. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  3518. "-" +
  3519. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  3520. "-" +
  3521. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
  3522. url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  3523. url +=
  3524. "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  3525. url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
  3526. slicestr += (slicestr === "" ? "" : "%2C") + seg;
  3527. j += k;
  3528. }
  3529. url += "&Slice" + slice + "=" + slicestr;
  3530. slice++;
  3531. slicestr = "";
  3532. }
  3533. return url;
  3534. };
  3535. // get edition
  3536. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ibEdition.split("-");
  3537. var url = createUrl(edition, "USD");
  3538. if (!url) {
  3539. return;
  3540. }
  3541. var extra =
  3542. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  3543. extra += ibEditions
  3544. .map(function(obj, i) {
  3545. return (
  3546. '<a href="' +
  3547. createUrl(obj.value.split("-"), "USD") +
  3548. '" target="_blank">' +
  3549. obj.name +
  3550. "</a>"
  3551. );
  3552. })
  3553. .join("<br/>");
  3554. extra += "</span></span>";
  3555.  
  3556. return {
  3557. url,
  3558. title: "Iberia",
  3559. extra
  3560. };
  3561. }
  3562.  
  3563. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printIB);
  3564. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Iberia", "ibEdition", ibEditions, "en-US");
  3565.  
  3566.  
  3567. /***/ }),
  3568. /* 21 */
  3569. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3570.  
  3571. "use strict";
  3572. __webpack_require__.r(__webpack_exports__);
  3573. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  3574. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  3575. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  3576. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  3577. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584. const klEditions = [
  3585. { value: "de_de", name: "Germany / Deutsch" },
  3586. { value: "de_en", name: "Germany / English" },
  3587. { value: "fr_en", name: "France / English" },
  3588. { value: "fr_fr", name: "France / French" },
  3589. { value: "nl_en", name: "Netherlands / English" },
  3590. { value: "gb_en", name: "United Kingdom / English" },
  3591. { value: "us_en", name: "US / English" }
  3592. ];
  3593.  
  3594. const cabins = ["M", "W", "C", "F"];
  3595.  
  3596. function printKL() {
  3597. if (
  3598. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines &&
  3599. !Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("KL", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers)
  3600. ) {
  3601. return;
  3602. }
  3603.  
  3604. var createUrl = function(edition) {
  3605. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  3606. maxPaxcount: 9,
  3607. countInf: false,
  3608. childAsAdult: 12,
  3609. sepInfSeat: false,
  3610. childMinAge: 2
  3611. });
  3612. if (!pax) {
  3613. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printKL");
  3614. return;
  3615. }
  3616.  
  3617. const segs = Object(_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* getCurrentSegs */ "b"])();
  3618.  
  3619. let url =
  3620. "https://www.klm.com/ams/search-web/api/metasearch?application=EBT7";
  3621. url +=
  3622. "&trip=" +
  3623. segs
  3624. .map(
  3625. seg =>
  3626. `${seg.orig}:${seg.dep.year}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "i"])(seg.dep.month)}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to2digits */ "i"])(
  3627. seg.dep.day
  3628. )}@${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digitTime */ "j"])(seg.dep.time)}:${seg.carrier}${Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* to4digits */ "k"])(
  3629. seg.fnr
  3630. )}:${seg.bookingclass}>${seg.dest}`
  3631. )
  3632. .join("-");
  3633. url += "&ref=MS,fb=" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].farebases.join(".");
  3634. url += "&numberOfAdults=" + pax.adults;
  3635. url += "&numberOfChildren=" + pax.children.length;
  3636. url += "&numberOfInfants=" + pax.infLap;
  3637. url +=
  3638. "&cabinClass=" +
  3639. cabins[Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getCabin */ "b"])(Math.min(...segs.map(seg => seg.cabin)))];
  3640. url += "&country=" + edition[0];
  3641. url += "&language=" + edition[1];
  3642.  
  3643. return url;
  3644. };
  3645.  
  3646. // get edition
  3647. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].klEdition.split("_");
  3648. if (edition.length != 2) {
  3649. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid KLM-Edition");
  3650. return;
  3651. }
  3652. var url = createUrl(edition);
  3653. if (!url) {
  3654. return;
  3655. }
  3656. var extra =
  3657. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  3658. extra += klEditions
  3659. .map(function(obj, i) {
  3660. return (
  3661. '<a href="' +
  3662. createUrl(obj.value.split("_")) +
  3663. '" target="_blank">' +
  3664. obj.name +
  3665. "</a>"
  3666. );
  3667. })
  3668. .join("<br/>");
  3669. extra += "</span></span>";
  3670.  
  3671. return {
  3672. url,
  3673. title: "KLM",
  3674. extra
  3675. };
  3676. }
  3677.  
  3678. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printKL);
  3679. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("KLM", "klEdition", klEditions, "us_en");
  3680.  
  3681.  
  3682. /***/ }),
  3683. /* 22 */
  3684. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3685.  
  3686. "use strict";
  3687. __webpack_require__.r(__webpack_exports__);
  3688. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  3689. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  3690. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  3691. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697. const laEditions = [
  3698. { value: "es/ar", name: "Argentina / Spanish" },
  3699. { value: "pt/br", name: "Brasil / Portuguese" },
  3700. { value: "es/cl", name: "Chile / Spanish" },
  3701. { value: "es/co", name: "Colombia / Spanish" },
  3702. { value: "es/ec", name: "Ecuador / Spanish" },
  3703. { value: "es/pe", name: "Peru / Spanish" },
  3704. { value: "es/uy", name: "Uruguay / Spanish" },
  3705. { value: "en/us", name: "US / English" },
  3706. { value: "es/mx", name: "Mexico / Spanish" },
  3707. { value: "en/ca", name: "Canada / English" },
  3708. { value: "de/de", name: "Germany / German" },
  3709. { value: "es/es", name: "Spain / Spanish" },
  3710. { value: "fr/fr", name: "France / French" },
  3711. { value: "en/it", name: "Italy / English" },
  3712. { value: "en/uk", name: "UK / English" },
  3713. { value: "en/ue", name: "Rest of Europe / English" },
  3714. { value: "en/au", name: "Australia / English" },
  3715. { value: "en/nz", name: "New Zealand / English" },
  3716. { value: "es/un", name: "Other Countries / Spanish" },
  3717. { value: "en/un", name: "Other Countries / English" }
  3718. ];
  3719.  
  3720. function printLA() {
  3721. if (
  3722. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  3723. !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("LA", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)
  3724. ) {
  3725. return;
  3726. }
  3727.  
  3728. // NOTE: currency will be determined by the locale; the deeplink does not support manually specifying the currency
  3729. var createUrl = function(edition) {
  3730. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  3731. maxPaxcount: 9,
  3732. countInf: false,
  3733. childAsAdult: 12,
  3734. sepInfSeat: false,
  3735. childMinAge: 2
  3736. });
  3737. if (!pax) {
  3738. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLA");
  3739. return;
  3740. }
  3741. var laUrl = '"trip":{"flights":[';
  3742. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  3743. // amount and currency required for each segment:
  3744. laUrl +=
  3745. '{"amount":"' +
  3746. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].price +
  3747. '","currency":"' +
  3748. "USD" +
  3749. '","segments":[';
  3750. var mincabin = 3;
  3751. // walks each leg
  3752. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  3753. //walks each segment of leg
  3754. var k = 0;
  3755. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  3756. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  3757. if (
  3758. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  3759. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  3760. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  3761. )
  3762. break;
  3763. k++;
  3764. }
  3765. laUrl +=
  3766. '{"departure_airport":"' +
  3767. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig +
  3768. '","flight_number":"' +
  3769. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr +
  3770. '","departure_date":"' +
  3771. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() +
  3772. "-" +
  3773. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month.toString()).slice(-2) +
  3774. "-" +
  3775. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day.toString()).slice(-2) +
  3776. '","arrival_airport":"' +
  3777. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest +
  3778. '","farebasis":"' +
  3779. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].farebase +
  3780. '","marketing_airline":"' +
  3781. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  3782. '","class":"' +
  3783. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass +
  3784. '","arrival_date":"' +
  3785. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.year.toString() +
  3786. "-" +
  3787. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.month.toString()).slice(-2) +
  3788. "-" +
  3789. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].arr.day.toString()).slice(-2) +
  3790. '"},';
  3791. // check the minimum cabin:
  3792. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  3793. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  3794. }
  3795. j += k;
  3796. }
  3797. laUrl = laUrl.substring(0, laUrl.length - 1) + "]},";
  3798. }
  3799. // Build passengers info:
  3800. var laPassengers =
  3801. '"passengers":{"numberAdults":"' +
  3802. pax.adults +
  3803. '","numberInfants":"' +
  3804. pax.infLap +
  3805. '","numberChildren":"' +
  3806. pax.children.length +
  3807. '"},';
  3808. // Compile the final URL (and encode it):
  3809. laUrl =
  3810. "https://ssl.lan.com/cgi-bin/compra/paso4.cgi?forced_home=" +
  3811. edition +
  3812. "&sessionParameters=%7B" +
  3813. encodeURIComponent(laPassengers) +
  3814. encodeURIComponent(laUrl.substring(0, laUrl.length - 1)) +
  3815. "]}}&utm_medium=metasearch&utm_source=gfs&utm_campaign=US_deeplink_s4&gclsrc=gf";
  3816. return laUrl;
  3817. };
  3818. var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].laEdition);
  3819. if (!url) {
  3820. return;
  3821. }
  3822. var extra =
  3823. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  3824. extra += laEditions
  3825. .map(function(obj, i) {
  3826. return (
  3827. '<a href="' +
  3828. createUrl(obj.value) +
  3829. '" target="_blank">' +
  3830. obj.name +
  3831. "</a>"
  3832. );
  3833. })
  3834. .join("<br/>");
  3835. extra += "</span></span>";
  3836. return {
  3837. url,
  3838. title: "LATAM",
  3839. extra
  3840. };
  3841. }
  3842.  
  3843. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printLA);
  3844. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("LATAM", "laEdition", laEditions, "en/us");
  3845.  
  3846.  
  3847. /***/ }),
  3848. /* 23 */
  3849. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3850.  
  3851. "use strict";
  3852. __webpack_require__.r(__webpack_exports__);
  3853. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  3854. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  3855. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  3856. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  3857. /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864. const lhEditions = [
  3865. { value: "AL-gb", name: "Albania / English" },
  3866. { value: "DZ-fr", name: "Algeria / Français" },
  3867. { value: "AO-gb", name: "Angola / English" },
  3868. { value: "AR-es", name: "Argentina / Español" },
  3869. { value: "AM-gb", name: "Armenia / English" },
  3870. { value: "AU-gb", name: "Australia / English" },
  3871. { value: "AT-de", name: "Austria / Deutsch" },
  3872. { value: "AT-gb", name: "Austria / English" },
  3873. { value: "AZ-gb", name: "Azerbaijan / English" },
  3874. { value: "BH-gb", name: "Bahrain / English" },
  3875. { value: "BY-gb", name: "Belarus / English" },
  3876. { value: "BE-gb", name: "Belgium / English" },
  3877. { value: "BA-gb", name: "Bosnia/Hercegovina / English" },
  3878. { value: "BR-pt", name: "Brazil / Português" },
  3879. { value: "BG-gb", name: "Bulgaria / English" },
  3880. { value: "CA-gb", name: "Canada / English" },
  3881. { value: "CA-fr", name: "Canada / Français" },
  3882. { value: "CL-es", name: "Chile / Español" },
  3883. { value: "CN-gb", name: "China / English" },
  3884. { value: "CO-es", name: "Colombia / Español" },
  3885. { value: "HR-gb", name: "Croatia / English" },
  3886. { value: "CY-gb", name: "Cyprus / English" },
  3887. { value: "CZ-gb", name: "Czech Republic / English" },
  3888. { value: "DK-gb", name: "Denmark / English" },
  3889. { value: "EG-gb", name: "Egypt / English" },
  3890. { value: "GQ-gb", name: "Equatorial Guinea / English" },
  3891. { value: "ER-gb", name: "Eritrea / English" },
  3892. { value: "EE-gb", name: "Estonia / English" },
  3893. { value: "ET-gb", name: "Ethiopia / English" },
  3894. { value: "FI-gb", name: "Finland / English" },
  3895. { value: "FR-gb", name: "France / English" },
  3896. { value: "FR-fr", name: "France / Français" },
  3897. { value: "GA-gb", name: "Gabon / English" },
  3898. { value: "GE-gb", name: "Georgia / English" },
  3899. { value: "DE-de", name: "Germany / Deutsch" },
  3900. { value: "DE-gb", name: "Germany / English" },
  3901. { value: "GH-gb", name: "Ghana / English" },
  3902. { value: "GR-gb", name: "Greece / English" },
  3903. { value: "HK-gb", name: "Hong Kong / English" },
  3904. { value: "HU-gb", name: "Hungary / English" },
  3905. { value: "IS-gb", name: "Iceland / English" },
  3906. { value: "IN-gb", name: "India / English" },
  3907. { value: "ID-gb", name: "Indonesia / English" },
  3908. { value: "IR-gb", name: "Iran / English" },
  3909. { value: "IQ-gb", name: "Iraq / English" },
  3910. { value: "IE-gb", name: "Ireland / English" },
  3911. { value: "IL-gb", name: "Israel / English" },
  3912. { value: "IT-it", name: "Italy / Italiano" },
  3913. { value: "IT-gb", name: "Italy / English" },
  3914. { value: "JP-gb", name: "Japan / English" },
  3915. { value: "JO-gb", name: "Jordan / English" },
  3916. { value: "KZ-gb", name: "Kazakhstan / English" },
  3917. { value: "KE-gb", name: "Kenya / English" },
  3918. { value: "KR-gb", name: "Republic of Korea / English" },
  3919. { value: "KW-gb", name: "Kuwait / English" },
  3920. { value: "LV-gb", name: "Latvia / English" },
  3921. { value: "LB-gb", name: "Lebanon / English" },
  3922. { value: "LY-gb", name: "Libya / English" },
  3923. { value: "LT-gb", name: "Lithuania / English" },
  3924. { value: "LU-gb", name: "Luxembourg / English" },
  3925. { value: "MY-gb", name: "Malaysia / English" },
  3926. { value: "MV-gb", name: "Maldives / English" },
  3927. { value: "MT-gb", name: "Malta / English" },
  3928. { value: "MU-gb", name: "Mauritius / English" },
  3929. { value: "MX-es", name: "Mexico / Español" },
  3930. { value: "MD-gb", name: "Moldova / English" },
  3931. { value: "MA-fr", name: "Morocco / Français" },
  3932. { value: "NL-gb", name: "Netherlands / English" },
  3933. { value: "NZ-gb", name: "New Zealand / English" },
  3934. { value: "NG-gb", name: "Nigeria / English" },
  3935. { value: "NO-gb", name: "Norway / English" },
  3936. { value: "OM-gb", name: "Oman / English" },
  3937. { value: "PK-gb", name: "Pakistan / English" },
  3938. { value: "PA-es", name: "Panama / Español" },
  3939. { value: "PH-gb", name: "Philippines / English" },
  3940. { value: "PL-gb", name: "Poland / English" },
  3941. { value: "PL-pl", name: "Poland / Polski" },
  3942. { value: "PT-gb", name: "Portugal / English" },
  3943. { value: "PT-pt", name: "Portugal / Português" },
  3944. { value: "QA-gb", name: "Qatar / English" },
  3945. { value: "CD-gb", name: "Republic of the Congo / English" },
  3946. { value: "RO-gb", name: "Romania / English" },
  3947. { value: "RU-gb", name: "Russia / English" },
  3948. { value: "RU-ru", name: "Russia / Русский" },
  3949. { value: "SA-gb", name: "Saudi Arabia / English" },
  3950. { value: "RS-gb", name: "Serbia / English" },
  3951. { value: "SG-gb", name: "Singapore / English" },
  3952. { value: "SK-gb", name: "Slovakia / English" },
  3953. { value: "SI-gb", name: "Slovenia / English" },
  3954. { value: "ZA-gb", name: "South Africa / English" },
  3955. { value: "ES-gb", name: "Spain / English" },
  3956. { value: "ES-es", name: "Spain / Español" },
  3957. { value: "SD-gb", name: "Sudan / English" },
  3958. { value: "SE-gb", name: "Sweden / English" },
  3959. { value: "CH-de", name: "Switzerland / Deutsch" },
  3960. { value: "CH-gb", name: "Switzerland / English" },
  3961. { value: "CH-fr", name: "Switzerland / Français" },
  3962. { value: "TW-gb", name: "Taiwan / English " },
  3963. { value: "TH-gb", name: "Thailand / English" },
  3964. { value: "TN-fr", name: "Tunisia / Français" },
  3965. { value: "TR-gb", name: "Turkey / English" },
  3966. { value: "TM-gb", name: "Turkmenistan / English" },
  3967. { value: "UA-gb", name: "Ukraine / English" },
  3968. { value: "AE-gb", name: "United Arab Emirates / English" },
  3969. { value: "UK-gb", name: "United Kingdom / English" },
  3970. { value: "US-gb", name: "United States / English" },
  3971. { value: "VE-es", name: "Venezuela / Español" },
  3972. { value: "VN-gb", name: "Vietnam / English" },
  3973. { value: "XX-gb", name: "Other countries / English" }
  3974. ];
  3975.  
  3976. function printLH() {
  3977. if (
  3978. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  3979. !(
  3980. 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)
  3981. )
  3982. ) {
  3983. return;
  3984. }
  3985.  
  3986. var createUrl = function(edition) {
  3987. var style = 0; // 0 is direct booking - 1 is pre selected
  3988. var paxConfig = { allowinf: 1, youthage: 0 };
  3989. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  3990. maxPaxcount: 9,
  3991. countInf: false,
  3992. childAsAdult: 12,
  3993. sepInfSeat: false,
  3994. childMinAge: 2
  3995. });
  3996. if (!pax) {
  3997. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLH");
  3998. return false;
  3999. }
  4000. var amadeusConfig = {
  4001. sepcabin: 0,
  4002. detailed: 0,
  4003. allowpremium: 1,
  4004. inctimes: 0
  4005. };
  4006. if (style == 0) {
  4007. var url =
  4008. "https://book.lufthansa.com/lh/dyn/air-lh/revenue/availThenFare?";
  4009. url += "WDS_MSE_PRICE_CURRENCY=EUR&WDS_MSE_TOTAL_PRICE=1.00&";
  4010. } else {
  4011. var url = "https://book.lufthansa.com/lh/dyn/air-lh/revenue/viewFlights?";
  4012. }
  4013. url +=
  4014. "PORTAL=LH&COUNTRY_SITE=" +
  4015. edition[0].toUpperCase() +
  4016. "&POS=" +
  4017. edition[0].toUpperCase() +
  4018. "&LANGUAGE=" +
  4019. edition[1].toUpperCase() +
  4020. "&SECURE=TRUE&SITE=LUFTLUFT&SO_SITE_LH_FRONTEND_URL=www.lufthansa.com&WDS_WR_CHANNEL=LHCOM";
  4021. var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  4022. url += tmpPax.url;
  4023. url += "&NB_ADT=" + tmpPax.adults;
  4024. url += "&NB_INF=" + tmpPax.infants;
  4025. url += "&NB_CHD=" + tmpPax.children;
  4026. url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])();
  4027. url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  4028.  
  4029. return url;
  4030. };
  4031. // get edition
  4032. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].lhEdition.split("-");
  4033. if (edition.length != 2) {
  4034. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error:Invalid Lufthansa-Edition");
  4035. return;
  4036. }
  4037. var url = createUrl(edition);
  4038. if (!url) {
  4039. return;
  4040. }
  4041. var extra =
  4042. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4043. extra += lhEditions
  4044. .map(function(obj, i) {
  4045. return (
  4046. '<a href="' +
  4047. createUrl(obj.value.split("-")) +
  4048. '" target="_blank">' +
  4049. obj.name +
  4050. "</a>"
  4051. );
  4052. })
  4053. .join("<br/>");
  4054. extra += "</span></span>";
  4055.  
  4056. return {
  4057. url,
  4058. title: "Lufthansa",
  4059. extra
  4060. };
  4061. }
  4062.  
  4063. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printLH);
  4064. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* registerSetting */ "c"])("Lufthansa", "lhEdition", lhEditions, "US-gb");
  4065.  
  4066.  
  4067. /***/ }),
  4068. /* 24 */
  4069. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4070.  
  4071. "use strict";
  4072. __webpack_require__.r(__webpack_exports__);
  4073. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  4074. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  4075. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  4076. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  4077. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084. const lxEditions = [
  4085. { value: "de_de", name: "Germany" },
  4086. { value: "us_en", name: "US" }
  4087. ];
  4088.  
  4089. function printLX() {
  4090. if (
  4091. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines &&
  4092. !(_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))
  4093. ) {
  4094. return;
  4095. }
  4096.  
  4097. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  4098. var cabins = ["", "", "/class-business", "/class-first"];
  4099. var mincabin = 3;
  4100. var createUrl = function(edition) {
  4101. var url =
  4102. "https://www.swiss.com/" +
  4103. edition[0] +
  4104. "/" +
  4105. edition[1] +
  4106. "/Book/Combined";
  4107. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  4108. maxPaxcount: 9,
  4109. countInf: false,
  4110. childAsAdult: 12,
  4111. sepInfSeat: false,
  4112. childMinAge: 2
  4113. });
  4114. if (!pax) {
  4115. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printLX");
  4116. return;
  4117. }
  4118. //Build multi-city search based on legs
  4119. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  4120. // walks each leg
  4121. url +=
  4122. "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig + "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest + "/";
  4123. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4124. //walks each segment of leg
  4125. var k = 0;
  4126. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  4127. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  4128. if (
  4129. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  4130. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  4131. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  4132. )
  4133. break;
  4134. k++;
  4135. }
  4136. url +=
  4137. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  4138. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr +
  4139. "-";
  4140. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  4141. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  4142. }
  4143. j += k;
  4144. }
  4145. url = url.substring(0, url.length - 1);
  4146. url +=
  4147. "/" +
  4148. (i > 0 ? "to" : "from") +
  4149. "-" +
  4150. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year +
  4151. "-" +
  4152. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  4153. "-" +
  4154. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  4155. }
  4156. url +=
  4157. "/adults-" +
  4158. pax.adults +
  4159. "/children-" +
  4160. pax.children.length +
  4161. "/infants-" +
  4162. pax.infLap;
  4163. url += cabins[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
  4164. return url;
  4165. };
  4166. // get edition
  4167. var edition = _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].lxEdition.split("_");
  4168. if (edition.length != 2) {
  4169. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error:Invalid Swiss-Edition");
  4170. return;
  4171. }
  4172. var url = createUrl(edition);
  4173. if (!url) {
  4174. return;
  4175. }
  4176. var extra =
  4177. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4178. extra += lxEditions
  4179. .map(function(obj, i) {
  4180. return (
  4181. '<a href="' +
  4182. createUrl(obj.value.split("_")) +
  4183. '" target="_blank">' +
  4184. obj.name +
  4185. "</a>"
  4186. );
  4187. })
  4188. .join("<br/>");
  4189. extra += "</span></span>";
  4190.  
  4191. return {
  4192. url,
  4193. title: "Swiss",
  4194. extra
  4195. };
  4196. }
  4197.  
  4198. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printLX);
  4199. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Swiss", "lxEdition", lxEditions, "us_en");
  4200.  
  4201.  
  4202. /***/ }),
  4203. /* 25 */
  4204. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4205.  
  4206. "use strict";
  4207. __webpack_require__.r(__webpack_exports__);
  4208. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  4209. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  4210. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  4211. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  4212. /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219. function printOA() {
  4220. if (
  4221. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  4222. !(
  4223. 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)
  4224. )
  4225. ) {
  4226. return;
  4227. }
  4228.  
  4229. var url =
  4230. "https://e-ticket.olympicair.com/A3Responsive/dyn/air/booking/?BOOKING_FLOW=REVENUE&FLEXIBILITY=3&DISPLAY_TYPE=2&FORCE_OVERRIDE=TRUE&PRICING_TYPE=O";
  4231. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  4232. maxPaxcount: 9,
  4233. countInf: false,
  4234. childAsAdult: 12,
  4235. sepInfSeat: false,
  4236. childMinAge: 2
  4237. });
  4238. if (!pax) {
  4239. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printOA");
  4240. return;
  4241. }
  4242. var paxConfig = { allowinf: 1, youthage: 0 };
  4243. var amadeusConfig = {
  4244. sepcabin: 0,
  4245. detailed: 0,
  4246. allowpremium: 1,
  4247. inctimes: 1
  4248. };
  4249. var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  4250. url += "&TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])();
  4251. url += tmpPax.url;
  4252. url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  4253. url +=
  4254. "&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";
  4255. url +=
  4256. "&LANGUAGE=" +
  4257. (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "oa" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de"
  4258. ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase()
  4259. : "GB");
  4260. url +=
  4261. "&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&WDS_CALLCENTER_EMAIL=res1@aegeanair.com&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&WDS_SMS_PROVIDER_EMAIL=aegean_bc@mpassltd.eu&WDS_SMS_SENDER_EMAIL=defineOA@amadeus.com&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";
  4262.  
  4263. return {
  4264. url,
  4265. title: "Olympic Air"
  4266. };
  4267. }
  4268.  
  4269. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printOA);
  4270.  
  4271.  
  4272. /***/ }),
  4273. /* 26 */
  4274. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4275.  
  4276. "use strict";
  4277. __webpack_require__.r(__webpack_exports__);
  4278. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  4279. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  4280. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  4281. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287. function printPS() {
  4288. if (
  4289. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  4290. !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("PS", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)
  4291. ) {
  4292. return;
  4293. }
  4294.  
  4295. var createUrl = function(edition, currency) {
  4296. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  4297. var cabins = ["Economy", "Economy", "Business", "First"];
  4298. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  4299. maxPaxcount: 9,
  4300. countInf: false,
  4301. childAsAdult: 12,
  4302. sepInfSeat: false,
  4303. childMinAge: 2
  4304. });
  4305. if (!pax) {
  4306. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printPS");
  4307. return false;
  4308. }
  4309. var url =
  4310. "https://bookapi.flyuia.com/flights/metaSearchQuery?Adult=" +
  4311. pax.adults +
  4312. "&Child=" +
  4313. pax.children.length +
  4314. "&Infant=" +
  4315. pax.infLap +
  4316. "&PointOfSaleCountry=" +
  4317. edition[1] +
  4318. "&UserCurrency=" +
  4319. currency +
  4320. "&UserLanguage=" +
  4321. edition[0] +
  4322. "&TripType=";
  4323. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
  4324. url += "OneWay";
  4325. } else if (
  4326. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
  4327. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
  4328. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
  4329. ) {
  4330. url += "RoundTrip";
  4331. } else {
  4332. url += "MultiCity";
  4333. }
  4334.  
  4335. var seg = 0;
  4336. var slice = 1;
  4337. var slicestr = "";
  4338. //Build multi-city search based on legs
  4339. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  4340. // walks each leg
  4341. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4342. seg++;
  4343. //walks each segment of leg
  4344. var k = 0;
  4345. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  4346. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  4347. if (
  4348. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  4349. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  4350. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  4351. )
  4352. break;
  4353. k++;
  4354. }
  4355. url += "&Origin" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  4356. url += "&Destination" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  4357. url += "&Carrier" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
  4358. url +=
  4359. "&DepartureDate" +
  4360. seg +
  4361. "=" +
  4362. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  4363. "-" +
  4364. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  4365. "-" +
  4366. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
  4367. url += "&FlightNumber" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  4368. url +=
  4369. "&BookingCode" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  4370. url += "&Cabin" + seg + "=" + cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin];
  4371. slicestr += (slicestr === "" ? "" : "%2C") + seg;
  4372. j += k;
  4373. }
  4374. url += "&Slice" + slice + "=" + slicestr;
  4375. slice++;
  4376. slicestr = "";
  4377. }
  4378. return url;
  4379. };
  4380. var url = createUrl(["EN", "US"], "USD");
  4381. if (!url) {
  4382. return;
  4383. }
  4384.  
  4385. return {
  4386. url,
  4387. title: "UIA"
  4388. };
  4389. }
  4390.  
  4391. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printPS);
  4392.  
  4393.  
  4394. /***/ }),
  4395. /* 27 */
  4396. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4397.  
  4398. "use strict";
  4399. __webpack_require__.r(__webpack_exports__);
  4400. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  4401. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  4402. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  4403. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
  4404. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(0);
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411. const qfEditions = [
  4412. { value: "EN_AU", name: "Australia" },
  4413. { value: "EN_NZ", name: "New Zealand" },
  4414. { value: "EN_US", name: "United States" }
  4415. ];
  4416.  
  4417. const qfCurrencies = [
  4418. { value: "AUD", name: "AUD" },
  4419. { value: "NZD", name: "NZD" },
  4420. { value: "USD", name: "USD" }
  4421. ];
  4422.  
  4423. function printQF() {
  4424. if (
  4425. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].showAllAirlines &&
  4426. !(
  4427. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("QF", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) ||
  4428. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("JQ", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers) ||
  4429. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* inArray */ "f"])("NZ", _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].carriers)
  4430. )
  4431. ) {
  4432. return;
  4433. }
  4434.  
  4435. /* Qantas partner deep-link */
  4436. var createUrl = function(edition, currency) {
  4437. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  4438. var travelClass = ["ECO", "PRM", "BUS", "FIR"];
  4439. // Start the minimum cabin at highest possible (it will drop as we check each leg):
  4440. var mincabin = 3;
  4441. // Validate the passenger totals first:
  4442. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* validatePaxcount */ "d"])({
  4443. maxPaxcount: 9,
  4444. countInf: false,
  4445. childAsAdult: 16,
  4446. sepInfSeat: false,
  4447. childMinAge: 2
  4448. });
  4449. if (!pax) {
  4450. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printQF");
  4451. return false;
  4452. }
  4453. var nbrChildren = pax.children.length;
  4454. if (!nbrChildren || typeof nbrChildren === "undefined") {
  4455. // default to 0 children if undefined:
  4456. nbrChildren = 0;
  4457. }
  4458.  
  4459. // Build search based on legs:
  4460. console.log("printQF: begin leg traversal...");
  4461. var url = "";
  4462. var prefixFltNbr = "sdcFlightNumber";
  4463. var prefixSegRbd = "sdcSegmentRbd";
  4464. var depAirports = "&depAirports=";
  4465. var destAirports = "&destAirports=";
  4466. var segDepAirports = "&depAirports=";
  4467. var segDestAirports = "&destAirports=";
  4468. var tmpTravelDates = "";
  4469. var finalDest = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[0].seg[0].dest;
  4470.  
  4471. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin.length; i++) {
  4472. // walks each parent "leg" of the itinerary (a leg can have multiple flight segments)
  4473.  
  4474. // Record the travel date for each leg:
  4475. if (tmpTravelDates === "" || !tmpTravelDates) {
  4476. tmpTravelDates +=
  4477. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() +
  4478. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() +
  4479. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() +
  4480. "0000";
  4481. } else {
  4482. tmpTravelDates +=
  4483. "%2C" +
  4484. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.year.toString() +
  4485. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.month).slice(-2).toString() +
  4486. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dep.day).slice(-2).toString() +
  4487. "0000";
  4488. }
  4489.  
  4490. // Grab the origin airport of each leg:
  4491. if (segDepAirports.length > 13) segDepAirports += "%2C";
  4492. segDepAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].orig.toString();
  4493. // Grab the destination airport of each leg:
  4494. if (segDestAirports.length > 14) segDestAirports += "%2C";
  4495. segDestAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].dest.toString();
  4496.  
  4497. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4498. // walks each flight segment of the parent leg
  4499. var k = 0;
  4500. // Do we need to skip segments? fnr has to be the same and it must be just a layover:
  4501. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  4502. if (
  4503. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  4504. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  4505. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  4506. ) {
  4507. break;
  4508. }
  4509. k++;
  4510. }
  4511. // Construct URL for this leg:
  4512. url +=
  4513. "&" +
  4514. prefixFltNbr +
  4515. (i + 1) +
  4516. (j + 1) +
  4517. "=" +
  4518. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  4519. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  4520. url +=
  4521. "&" +
  4522. prefixSegRbd +
  4523. (i + 1) +
  4524. (j + 1) +
  4525. "=" +
  4526. _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  4527.  
  4528. // record the departing and destination airports for this leg:
  4529. // all departing airports:
  4530. if (depAirports.length > 13) depAirports += "%2C";
  4531. depAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].orig.toString();
  4532. // all destination airports:
  4533. if (destAirports.length > 14) destAirports += "%2C";
  4534. destAirports += _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].dest.toString();
  4535.  
  4536. if (_parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  4537. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_4__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  4538. }
  4539. j += k;
  4540. }
  4541. }
  4542.  
  4543. // Add airports:
  4544. // url += depAirports + destAirports;
  4545. url += segDepAirports + segDestAirports;
  4546. // Add travel dates:
  4547. url += "&travelDates=" + tmpTravelDates;
  4548. // Add price info:
  4549. url += "&sdcTripPriceAmount=0.00";
  4550. // Add device type:
  4551. url += "&QFdeviceType=desktop";
  4552.  
  4553. // Begin final deeplink URL construction:
  4554. var urlBase =
  4555. "https://book.qantas.com/qf-booking/dyn/air/tripflow.redirect?APPLICATION_NAME=SDC";
  4556. // Add edition / locale:
  4557. urlBase += "&USER_LANG=EN&USER_LOCALE=" + edition;
  4558. // Add class(es) of service:
  4559. urlBase +=
  4560. "&travelClass=" +
  4561. travelClass[_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()];
  4562. // Add passenger info:
  4563. urlBase +=
  4564. "&numberOfAdults=" +
  4565. pax.adults +
  4566. "&numberOfChildren=" +
  4567. nbrChildren.toString() +
  4568. "&numberOfInfants=" +
  4569. pax.infLap;
  4570. // Add currency:
  4571. urlBase += "&sdcPriceCurrency=" + currency;
  4572.  
  4573. return urlBase + url;
  4574. };
  4575. // get edition
  4576. var url = createUrl(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfEdition, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency);
  4577. if (!url) {
  4578. return;
  4579. }
  4580.  
  4581. var extra =
  4582. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4583. extra += qfEditions
  4584. .map(function(obj, i) {
  4585. return (
  4586. '<a href="' +
  4587. createUrl(obj.value, _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].qfCurrency) +
  4588. '" target="_blank">' +
  4589. obj.name +
  4590. "</a>"
  4591. );
  4592. })
  4593. .join("<br/>");
  4594. extra += "</span></span>";
  4595.  
  4596. return {
  4597. url,
  4598. title: "Qantas",
  4599. extra
  4600. };
  4601. }
  4602.  
  4603. Object(_print_links__WEBPACK_IMPORTED_MODULE_3__[/* registerLink */ "c"])("airlines", printQF);
  4604. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfEdition", qfEditions, "EN_US");
  4605. Object(_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* registerSetting */ "c"])("Qantas", "qfCurrency", qfCurrencies, "USD");
  4606.  
  4607.  
  4608. /***/ }),
  4609. /* 28 */
  4610. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4611.  
  4612. "use strict";
  4613. __webpack_require__.r(__webpack_exports__);
  4614. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
  4615. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  4616. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  4617. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  4618. /* harmony import */ var _print_amadeus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625. function printTK() {
  4626. if (
  4627. !_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].showAllAirlines &&
  4628. !Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* inArray */ "f"])("TK", _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].carriers)
  4629. ) {
  4630. return;
  4631. }
  4632.  
  4633. var url =
  4634. "https://book.eu2.amadeus.com/plnext/turkishairlines/Override.action?";
  4635. var paxConfig = { allowinf: 1, youthage: 0 };
  4636. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  4637. maxPaxcount: 9,
  4638. countInf: false,
  4639. childAsAdult: 12,
  4640. sepInfSeat: false,
  4641. childMinAge: 2
  4642. });
  4643. if (!pax) {
  4644. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printTK");
  4645. return;
  4646. }
  4647. var amadeusConfig = {
  4648. sepcabin: 0,
  4649. detailed: 0,
  4650. allowpremium: 1,
  4651. inctimes: 1
  4652. };
  4653. var tmpPax = Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusPax */ "a"])(pax, paxConfig);
  4654. url += "TRIP_TYPE=" + Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusTriptype */ "b"])();
  4655. url += tmpPax.url;
  4656. url += Object(_print_amadeus__WEBPACK_IMPORTED_MODULE_4__[/* getAmadeusUrl */ "c"])(amadeusConfig);
  4657. url +=
  4658. "&PORT_TSC=FALSE&SO_SITE_ALLOW_SERVICE_FEE=0&SO_SITE_SERVICE_FEE_MODE=AIR&SITE=BBAHBBAH";
  4659. url +=
  4660. "&LANGUAGE=" +
  4661. (_settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "tk" || _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language == "de"
  4662. ? _settings_userSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language.toUpperCase()
  4663. : "GB");
  4664. url += "&EMBEDDED_TRANSACTION=AirComplexAvailability&TRIPFLOW=YES";
  4665. url +=
  4666. "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";
  4667.  
  4668. return {
  4669. url,
  4670. title: "Turkish"
  4671. };
  4672. }
  4673.  
  4674. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("airlines", printTK);
  4675.  
  4676.  
  4677. /***/ }),
  4678. /* 29 */
  4679. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4680.  
  4681. "use strict";
  4682. __webpack_require__.r(__webpack_exports__);
  4683. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  4684. /* harmony import */ var _settings_userSettings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
  4685. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  4686. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692. const KayakEditions = [
  4693. { name: "Kayak.com", host: "Kayak.com" },
  4694. { name: "Kayak.de", host: "Kayak.de" },
  4695. { name: "Kayak.it", host: "Kayak.it" },
  4696. { name: "Kayak.es", host: "Kayak.es" },
  4697. { name: "Kayak.co.uk", host: "Kayak.co.uk" },
  4698. { name: "Kayak.dk", host: "Kayak.dk" },
  4699. { name: "Kayak.mx", host: "Kayak.mx" },
  4700. { name: "Kayak.fi", host: "Kayak.fi" },
  4701. { name: "Kayak.fr", host: "Kayak.fr" },
  4702. { name: "Kayak.no", host: "Kayak.no" },
  4703. { name: "Kayak.nl", host: "Kayak.nl" },
  4704. { name: "Kayak.pt", host: "Kayak.pt" },
  4705. { name: "Kayak.se", host: "Kayak.se" },
  4706. { name: "Kayak.ru", host: "Kayak.ru" }
  4707. ];
  4708.  
  4709. function printKayak(method) {
  4710. //example https://www.Kayak.ru/flights/MOW-CPH...OW/2016-05-20/
  4711. // pax: #adults
  4712. // method: 0 = based on leg; 1 = based on segment
  4713. let desc;
  4714. var KayakCreateUrl = function(host) {
  4715. var KayakUrl = "https://www." + host + "/flights";
  4716. var segsize = 0;
  4717. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  4718. if (method != 1) {
  4719. KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig;
  4720. KayakUrl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest;
  4721. KayakUrl +=
  4722. "/" +
  4723. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.year +
  4724. "-" +
  4725. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  4726. "-" +
  4727. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  4728. segsize++;
  4729. }
  4730. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4731. if (method == 1) {
  4732. var k = 0;
  4733. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  4734. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  4735. if (
  4736. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  4737. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  4738. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  4739. )
  4740. break;
  4741. k++;
  4742. }
  4743. KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  4744. KayakUrl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  4745. KayakUrl +=
  4746. "/" +
  4747. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  4748. "-" +
  4749. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  4750. "-" +
  4751. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
  4752. j += k;
  4753. segsize++;
  4754. }
  4755. }
  4756. }
  4757. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax > 1) {
  4758. KayakUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].numPax + "adults";
  4759. }
  4760.  
  4761. KayakUrl += getKayakCabin();
  4762.  
  4763. if (method == 1) {
  4764. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de") {
  4765. desc = "Benutze " + segsize + " Segment(e)";
  4766. } else {
  4767. desc = "Based on " + segsize + " segment(s)";
  4768. }
  4769. } else {
  4770. if (segsize == 1) {
  4771. return false;
  4772. }
  4773. if (_settings_userSettings__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language == "de") {
  4774. desc = "Benutze " + segsize + " Abschnitt(e)";
  4775. } else {
  4776. desc = "Based on " + segsize + " segment(s)";
  4777. }
  4778. }
  4779. return KayakUrl;
  4780. };
  4781. var KayakUrl = KayakCreateUrl("Kayak.com");
  4782. if (!KayakUrl) {
  4783. return;
  4784. }
  4785. var KayakExtra =
  4786. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4787. KayakExtra += KayakEditions.map(function(obj, i) {
  4788. return (
  4789. '<a href="' +
  4790. KayakCreateUrl(obj.host) +
  4791. '" target="_blank">' +
  4792. obj.name +
  4793. "</a>"
  4794. );
  4795. }).join("<br/>");
  4796. KayakExtra += "</span></span>";
  4797.  
  4798. return {
  4799. url: KayakUrl,
  4800. title: "Kayak",
  4801. desc,
  4802. extra: KayakExtra
  4803. };
  4804. }
  4805.  
  4806. function getKayakCabin() {
  4807. switch (_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin) {
  4808. case "Y+":
  4809. return "/premium";
  4810. case "C":
  4811. return "/business";
  4812. case "F":
  4813. return "/first";
  4814. default:
  4815. return "/economy";
  4816. }
  4817. }
  4818.  
  4819. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", () => printKayak(0));
  4820. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", () => printKayak(1));
  4821.  
  4822.  
  4823. /***/ }),
  4824. /* 30 */
  4825. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4826.  
  4827. "use strict";
  4828. __webpack_require__.r(__webpack_exports__);
  4829. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  4830. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);
  4831. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  4832.  
  4833.  
  4834.  
  4835.  
  4836. const MomondoEditions = [
  4837. { name: "Momondo.com", host: "Momondo.com" },
  4838. { name: "Momondo.de", host: "Momondo.de" },
  4839. { name: "Momondo.it", host: "Momondo.it" },
  4840. { name: "Momondo.es", host: "Momondo.es" },
  4841. { name: "Momondo.co.uk", host: "Momondo.co.uk" },
  4842. { name: "Momondo.dk", host: "Momondo.dk" },
  4843. { name: "Momondo.mx", host: "Momondo.mx" },
  4844. { name: "Momondo.fi", host: "Momondo.fi" },
  4845. { name: "Momondo.fr", host: "Momondo.fr" },
  4846. { name: "Momondo.no", host: "Momondo.no" },
  4847. { name: "Momondo.nl", host: "Momondo.nl" },
  4848. { name: "Momondo.pt", host: "Momondo.pt" },
  4849. { name: "Momondo.se", host: "Momondo.se" },
  4850. { name: "Momondo.ru", host: "Momondo.ru" }
  4851. ];
  4852.  
  4853. function printMomondo() {
  4854. //example https://www.Momondo.ru/flightsearch/?...false&NA=false
  4855. //pax # &AD=2&CA=0,8 – not working with children (total amount of adults + kids goes to adult)
  4856.  
  4857. var momondoTravelClass = ["economy", "premium", "business", "first"];
  4858. var mincabin = 3;
  4859.  
  4860. var MomondoCreateUrl = function(host) {
  4861. var MomondoUrl = "https://www." + host + "/flight-search/";
  4862. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin.length; i++) {
  4863. MomondoUrl +=
  4864. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].orig +
  4865. "-" +
  4866. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dest +
  4867. "/" +
  4868. _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.year +
  4869. "-" +
  4870. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  4871. "-" +
  4872. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].dep.day).slice(-2) +
  4873. "/";
  4874.  
  4875. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4876. // check the min cabin:
  4877. if (_parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  4878. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  4879. }
  4880. }
  4881. }
  4882.  
  4883. // Add travel class to URL:
  4884. MomondoUrl +=
  4885. momondoTravelClass[
  4886. _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
  4887. ] + "/";
  4888. // Add passenger info to URL:
  4889. MomondoUrl += _parse_itin__WEBPACK_IMPORTED_MODULE_1__[/* currentItin */ "a"].numPax + "adults";
  4890. return MomondoUrl;
  4891. };
  4892.  
  4893. var MomondoUrl = MomondoCreateUrl("Momondo.com");
  4894. var MomondoExtra =
  4895. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4896. MomondoExtra += MomondoEditions.map(function(obj, i) {
  4897. return (
  4898. '<a href="' +
  4899. MomondoCreateUrl(obj.host) +
  4900. '" target="_blank">' +
  4901. obj.name +
  4902. "</a>"
  4903. );
  4904. }).join("<br/>");
  4905. MomondoExtra += "</span></span>";
  4906.  
  4907. return {
  4908. url: MomondoUrl,
  4909. title: "Momondo",
  4910. extra: MomondoExtra
  4911. };
  4912. }
  4913.  
  4914. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("meta", printMomondo);
  4915.  
  4916.  
  4917. /***/ }),
  4918. /* 31 */
  4919. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4920.  
  4921. "use strict";
  4922. __webpack_require__.r(__webpack_exports__);
  4923. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  4924. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  4925. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
  4926.  
  4927.  
  4928.  
  4929.  
  4930. const SkyscannerEditions = [
  4931. { name: "Skyscanner.com", market: "US" },
  4932. { name: "Skyscanner.de", market: "DE" },
  4933. { name: "Skyscanner.it", market: "IT" },
  4934. { name: "Skyscanner.es", market: "ES" },
  4935. { name: "Skyscanner.co.uk", market: "UK" },
  4936. { name: "Skyscanner.dk", market: "DK" },
  4937. { name: "Skyscanner.mx", market: "MX" },
  4938. { name: "Skyscanner.fi", market: "FI" },
  4939. { name: "Skyscanner.fr", market: "FR" },
  4940. { name: "Skyscanner.no", market: "NO" },
  4941. { name: "Skyscanner.nl", market: "NL" },
  4942. { name: "Skyscanner.pt", market: "PT" },
  4943. { name: "Skyscanner.se", market: "SE" },
  4944. { name: "Skyscanner.ru", market: "RU" }
  4945. ];
  4946.  
  4947. function printSkyscanner() {
  4948. //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
  4949. var skyscannerTravelClass = ["", "premiumeconomy", "business", "first"];
  4950. var SkyscannerCreateUrl = function(market) {
  4951. var skyscannerUrl = "http://www.skyscanner.com/transport/d";
  4952. var seg = 0;
  4953. var mincabin = 3;
  4954. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) {
  4955. skyscannerUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig;
  4956. // Add the segments:
  4957. skyscannerUrl +=
  4958. "/" +
  4959. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.year +
  4960. "-" +
  4961. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  4962. "-" +
  4963. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  4964. skyscannerUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest;
  4965.  
  4966. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  4967. // check the min cabin:
  4968. if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin < mincabin) {
  4969. mincabin = _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  4970. }
  4971. }
  4972.  
  4973. seg++;
  4974. }
  4975.  
  4976. // Add passenger info:
  4977. skyscannerUrl +=
  4978. "?adults=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax + "adultsv2=" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax;
  4979. // Add cabin / class of service:
  4980. skyscannerUrl +=
  4981. "&cabinclass=" +
  4982. skyscannerTravelClass[
  4983. _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? mincabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
  4984. ];
  4985. // Add locale ("market"):
  4986. skyscannerUrl += "&ref=day-view&market=" + market;
  4987.  
  4988. return skyscannerUrl;
  4989. };
  4990. var skyscannerUrl = SkyscannerCreateUrl("Skyscanner.com");
  4991. var SkyscannerExtra =
  4992. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  4993. SkyscannerExtra += SkyscannerEditions.map(function(obj, i) {
  4994. return (
  4995. '<a href="' +
  4996. SkyscannerCreateUrl(obj.market) +
  4997. '" target="_blank">' +
  4998. obj.name +
  4999. "</a>"
  5000. );
  5001. }).join("<br/>");
  5002. SkyscannerExtra += "</span></span>";
  5003.  
  5004. return {
  5005. url: skyscannerUrl,
  5006. title: "Skyscanner",
  5007. extra: SkyscannerExtra
  5008. };
  5009. }
  5010.  
  5011. Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("meta", printSkyscanner);
  5012.  
  5013.  
  5014. /***/ }),
  5015. /* 32 */
  5016. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5017.  
  5018. "use strict";
  5019. __webpack_require__.r(__webpack_exports__);
  5020. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  5021. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  5022. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2);
  5023. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029. function printCheapOair() {
  5030. // 0 = Economy; 1=Premium Economy; 2=Business; 3=First
  5031. var cabins = ["Economy", "PremiumEconomy", "Business", "First"];
  5032. var coaUrl = "http://www.cheapoair.com/default.aspx?tabid=1832&ulang=en";
  5033. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* validatePaxcount */ "d"])({
  5034. maxPaxcount: 9,
  5035. countInf: true,
  5036. childAsAdult: 12,
  5037. sepInfSeat: true,
  5038. childMinAge: 2
  5039. });
  5040. if (!pax) {
  5041. Object(_utils__WEBPACK_IMPORTED_MODULE_2__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printCheapOair");
  5042. return;
  5043. }
  5044. coaUrl +=
  5045. "&ad=" +
  5046. pax.adults +
  5047. "&ch=" +
  5048. pax.children.length +
  5049. "&il=" +
  5050. pax.infLap +
  5051. "&is=" +
  5052. pax.infSeat;
  5053. var seg = 0;
  5054. var slices = {};
  5055. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  5056. slices[i] = "";
  5057. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  5058. seg++;
  5059. if (slices[i]) slices[i] += ",";
  5060. slices[i] += seg;
  5061.  
  5062. coaUrl +=
  5063. "&cbn" +
  5064. seg +
  5065. "=" +
  5066. cabins[
  5067. _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto"
  5068. ? cabins[_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin]
  5069. : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
  5070. ];
  5071. coaUrl += "&carr" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier;
  5072. coaUrl +=
  5073. "&dd" +
  5074. seg +
  5075. "=" +
  5076. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year +
  5077. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  5078. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2);
  5079. coaUrl += "&og" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig;
  5080. coaUrl += "&dt" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest;
  5081. coaUrl += "&fbc" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].bookingclass;
  5082. coaUrl += "&fnum" + seg + "=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  5083. }
  5084. coaUrl += "&Slice" + (i + 1) + "=" + slices[i];
  5085. }
  5086.  
  5087. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 1) {
  5088. coaUrl += "&tt=OneWay";
  5089. } else if (
  5090. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length == 2 &&
  5091. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].dest &&
  5092. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[1].orig
  5093. ) {
  5094. coaUrl += "&tt=RoundTrip";
  5095. } else {
  5096. coaUrl += "&tt=MultiCity";
  5097. }
  5098.  
  5099. return {
  5100. url: coaUrl,
  5101. title: "CheapOair"
  5102. };
  5103. }
  5104.  
  5105. Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printCheapOair);
  5106.  
  5107.  
  5108. /***/ }),
  5109. /* 33 */
  5110. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5111.  
  5112. "use strict";
  5113. __webpack_require__.r(__webpack_exports__);
  5114. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
  5115. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  5116. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
  5117.  
  5118.  
  5119.  
  5120.  
  5121. const editions = [
  5122. { name: "Seat24.se", host: "www.seat24.se" },
  5123. { name: "Seat24.de", host: "www.seat24.de" },
  5124. { name: "Seat24.dk", host: "www.seat24.dk" },
  5125. { name: "Seat24.fi", host: "www.seat24.fi" },
  5126. { name: "Seat24.no", host: "www.seat24.no" },
  5127. { name: "Flygvaruhuset.se", host: "www.flygvaruhuset.se" },
  5128. { name: "Travelpartner.se", host: "www.travelpartner.se" },
  5129. { name: "Travelpartner.fi", host: "www.travelpartner.fi" },
  5130. { name: "Travelpartner.no", host: "www.travelpartner.no" },
  5131. { name: "Budjet.se", host: "www.budjet.se" },
  5132. { name: "Budjet.fi", host: "www.budjet.fi" },
  5133. { name: "Budjet.no", host: "www.budjet.no" },
  5134. { name: "Budjet.dk", host: "www.budjet.dk" },
  5135. { name: "Goleif.dk", host: "www.goleif.dk" },
  5136. { name: "Travelfinder.se", host: "www.travelfinder.se" },
  5137. { name: "Gotogate.no", host: "www.gotogate.no" },
  5138. { name: "Gotogate.at", host: "www.gotogate.at" },
  5139. { name: "Gotogate.be", host: "be.gotogate.com" },
  5140. { name: "Gotogate.bg", host: "bg.gotogate.com" },
  5141. { name: "Gotogate.ch", host: "www.gotogate.ch" },
  5142. { name: "Gotogate.cz", host: "cz.gotogate.com" },
  5143. { name: "Gotogate.es", host: "www.gotogate.es" },
  5144. { name: "Gotogate.fr", host: "www.gotogate.fr" },
  5145. { name: "Gotogate.gr", host: "www.gotogate.gr" },
  5146. { name: "Gotogate.hu", host: "hu.gotogate.com" },
  5147. { name: "Gotogate.ie", host: "ie.gotogate.com" },
  5148. { name: "Gotogate.it", host: "www.gotogate.it" },
  5149. { name: "Gotogate.pl", host: "www.gotogate.pl" },
  5150. { name: "Gotogate.pt", host: "www.gotogate.pt" },
  5151. { name: "Gotogate.ro", host: "ro.gotogate.com" },
  5152. { name: "Gotogate.sk", host: "www.gotogate.sk" },
  5153. { name: "Gotogate.tr", host: "tr.gotogate.com" },
  5154. { name: "Gotogate.com.ua", host: "www.gotogate.com.ua" },
  5155. { name: "Gotogate.co.uk", host: "www.gotogate.co.uk" },
  5156. { name: "Flybillet.dk", host: "www.flybillet.dk" },
  5157. { name: "Travelstart.se", host: "www.travelstart.se" },
  5158. { name: "Travelstart.de", host: "www.travelstart.de" },
  5159. { name: "Travelstart.dk", host: "www.travelstart.dk" },
  5160. { name: "Travelstart.fi", host: "www.travelstart.fi" },
  5161. { name: "Travelstart.no", host: "www.travelstart.no" },
  5162. { name: "Supersaver.se", host: "www.supersavertravel.se" },
  5163. { name: "Supersaver.dk", host: "www.supersaver.dk" },
  5164. { name: "Supersaver.fi", host: "www.supersaver.fi" },
  5165. { name: "Supersaver.nl", host: "www.supersaver.nl" },
  5166. { name: "Supersaver.no", host: "www.supersaver.no" },
  5167. { name: "Supersaver.ru", host: "www.supersaver.ru" }
  5168. ];
  5169.  
  5170. function printEtraveli() {
  5171. if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 2) return; // no multi segments
  5172. if (
  5173. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length == 2 &&
  5174. !(
  5175. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dest &&
  5176. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest == _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].orig
  5177. )
  5178. )
  5179. return; // no open jaws
  5180.  
  5181. var convertDate = function(date, withYear) {
  5182. return (
  5183. ("0" + date.day).slice(-2) +
  5184. Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* monthnumberToName */ "g"])(date.month) +
  5185. (withYear ? date.year.toString().slice(-2) : "")
  5186. );
  5187. };
  5188. var createUrl = function(host) {
  5189. var ggUrl = "http://" + host + "/air/";
  5190. ggUrl +=
  5191. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].orig +
  5192. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dest +
  5193. convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[0].dep, false);
  5194. if (_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length > 1)
  5195. ggUrl += convertDate(_parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[1].dep, false);
  5196. ggUrl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].numPax;
  5197. ggUrl +=
  5198. "?selectionKey=" +
  5199. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin
  5200. .map(function(itin) {
  5201. return itin.seg
  5202. .map(function(seg) {
  5203. return (
  5204. seg.carrier +
  5205. seg.fnr +
  5206. "-" +
  5207. convertDate(seg.dep, true) +
  5208. "-" +
  5209. seg.bookingclass
  5210. );
  5211. })
  5212. .join("_");
  5213. })
  5214. .join("_");
  5215.  
  5216. return ggUrl;
  5217. };
  5218. // picked seat24 as main one, but could be any of them
  5219. var ggUrl = createUrl("www.seat24.de");
  5220. var extra =
  5221. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  5222. extra += editions
  5223. .map(function(obj, i) {
  5224. return (
  5225. '<a href="' +
  5226. createUrl(obj.host) +
  5227. '" target="_blank">' +
  5228. obj.name +
  5229. "</a>"
  5230. );
  5231. })
  5232. .join("<br/>");
  5233. extra += "</span></span>";
  5234.  
  5235. return {
  5236. url: ggUrl,
  5237. title: "Seat24.de",
  5238. extra
  5239. };
  5240. }
  5241.  
  5242. Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printEtraveli);
  5243.  
  5244.  
  5245. /***/ }),
  5246. /* 34 */
  5247. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5248.  
  5249. "use strict";
  5250. __webpack_require__.r(__webpack_exports__);
  5251. /* harmony import */ var _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
  5252. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
  5253. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  5254. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260. const editions = [
  5261. { name: "expedia.com", host: "expedia.com" },
  5262. { name: "orbitz.com", host: "orbitz.com" },
  5263. { name: "expedia.ca", host: "expedia.ca" },
  5264. { name: "expedia.de", host: "expedia.de" },
  5265. { name: "expedia.it", host: "expedia.it" },
  5266. { name: "expedia.es", host: "expedia.es" },
  5267. { name: "expedia.co.uk", host: "expedia.co.uk" },
  5268. { name: "expedia.dk", host: "expedia.dk" },
  5269. { name: "expedia.mx", host: "expedia.mx" },
  5270. { name: "expedia.fi", host: "expedia.fi" },
  5271. { name: "expedia.fr", host: "expedia.fr" },
  5272. { name: "expedia.no", host: "expedia.no" },
  5273. { name: "expedia.nl", host: "expedia.nl" },
  5274. { name: "expedia.ch", host: "expedia.ch" },
  5275. { name: "expedia.se", host: "expedia.se" },
  5276. { name: "expedia.at", host: "expedia.at" },
  5277. { name: "expedia.co.jp", host: "expedia.co.jp" }
  5278. ];
  5279.  
  5280. function printExpedia() {
  5281. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* validatePaxcount */ "d"])({
  5282. maxPaxcount: 9,
  5283. countInf: true,
  5284. childAsAdult: 18,
  5285. sepInfSeat: false,
  5286. childMinAge: 2
  5287. });
  5288. if (!pax) {
  5289. Object(_utils__WEBPACK_IMPORTED_MODULE_1__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printExpedia");
  5290. return;
  5291. }
  5292. let expediaClasses = ["coach", "premium", "business", "first"];
  5293. let minCabin = 3;
  5294. let ExpediaCreateUrl = function(expediaBase) {
  5295. let segUrl = "";
  5296. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin.length; i++) {
  5297. segUrl +=
  5298. "&legs%5B" + i + "%5D.departureAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].orig;
  5299. segUrl +=
  5300. "&legs%5B" + i + "%5D.arrivalAirport=" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dest;
  5301. segUrl +=
  5302. "&legs%5B" +
  5303. i +
  5304. "%5D.departureDate=" +
  5305. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].arr.year.toString() +
  5306. "-" +
  5307. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  5308. "-" +
  5309. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  5310. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  5311. segUrl += (
  5312. "&legs%5B" +
  5313. i +
  5314. "%5D.segments%5B" +
  5315. j +
  5316. "%5D=" +
  5317. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() +
  5318. "-" +
  5319. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  5320. "-" +
  5321. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  5322. "-" +
  5323. expediaClasses[
  5324. _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
  5325. ] +
  5326. "-" +
  5327. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].orig +
  5328. "-" +
  5329. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].dest +
  5330. "-" +
  5331. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  5332. "-" +
  5333. _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].fnr
  5334. ).toLowerCase();
  5335.  
  5336. // check the min cabin:
  5337. if (_parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin < minCabin) {
  5338. minCabin = _parse_itin__WEBPACK_IMPORTED_MODULE_3__[/* currentItin */ "a"].itin[i].seg[j].cabin;
  5339. }
  5340. }
  5341. }
  5342. // Build the URL:
  5343. let baseUrl =
  5344. "https://www." +
  5345. expediaBase +
  5346. "/Flight-Search-Details?action=dl&trip=MultipleDestination";
  5347. // Add travel class to URL:
  5348. baseUrl +=
  5349. "&cabinClass=" +
  5350. expediaClasses[
  5351. _settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].cabin === "Auto" ? minCabin : Object(_settings_appSettings__WEBPACK_IMPORTED_MODULE_0__[/* getForcedCabin */ "c"])()
  5352. ];
  5353. // Add passenger info to URL:
  5354. baseUrl += "&adults=" + pax.adults;
  5355. return baseUrl + segUrl;
  5356. };
  5357. var ExpediaUrl = ExpediaCreateUrl("expedia.com");
  5358. var container =
  5359. ' <span class="pt-hover-container">[+]<span class="pt-hover-menu">';
  5360. container += editions
  5361. .map(function(obj, i) {
  5362. return (
  5363. '<a href="' +
  5364. ExpediaCreateUrl(obj.host) +
  5365. '" target="_blank">' +
  5366. obj.name +
  5367. "</a>"
  5368. );
  5369. })
  5370. .join("<br/>");
  5371. container += "</span></span>";
  5372.  
  5373. return {
  5374. url: ExpediaUrl,
  5375. title: "Expedia",
  5376. extra: container
  5377. };
  5378. }
  5379.  
  5380. Object(_print_links__WEBPACK_IMPORTED_MODULE_2__[/* registerLink */ "c"])("otas", printExpedia);
  5381.  
  5382.  
  5383. /***/ }),
  5384. /* 35 */
  5385. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5386.  
  5387. "use strict";
  5388. __webpack_require__.r(__webpack_exports__);
  5389. /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
  5390. /* harmony import */ var _print_links__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  5391. /* harmony import */ var _parse_itin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
  5392.  
  5393.  
  5394.  
  5395.  
  5396. function printPriceline() {
  5397. var pricelineurl = "https://www.priceline.com/m/fly/search";
  5398. var searchparam = "~";
  5399. for (var i = 0; i < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin.length; i++) {
  5400. // walks each leg
  5401. searchparam = searchparam.substring(0, searchparam.length - 1) + "-";
  5402. pricelineurl += "/" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].orig;
  5403. pricelineurl += "-" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dest;
  5404. pricelineurl +=
  5405. "-" +
  5406. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].arr.year.toString() +
  5407. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.month).slice(-2) +
  5408. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].dep.day).slice(-2);
  5409. for (var j = 0; j < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length; j++) {
  5410. //walks each segment of leg
  5411. var k = 0;
  5412. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  5413. while (j + k < _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg.length - 1) {
  5414. if (
  5415. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].fnr !=
  5416. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k + 1].fnr ||
  5417. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].layoverduration >= 1440
  5418. )
  5419. break;
  5420. k++;
  5421. }
  5422. searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].orig;
  5423. searchparam +=
  5424. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.year.toString() +
  5425. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.month).slice(-2) +
  5426. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.day).slice(-2) +
  5427. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].dep.time.replace(":", "")).slice(-4);
  5428. searchparam += _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].dest;
  5429. searchparam +=
  5430. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.year.toString() +
  5431. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.month).slice(-2) +
  5432. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.day).slice(-2) +
  5433. ("0" + _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j + k].arr.time.replace(":", "")).slice(
  5434. -4
  5435. );
  5436. searchparam +=
  5437. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].bookingclass +
  5438. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].carrier +
  5439. _parse_itin__WEBPACK_IMPORTED_MODULE_2__[/* currentItin */ "a"].itin[i].seg[j].fnr;
  5440. searchparam += "~";
  5441. j += k;
  5442. }
  5443. }
  5444. searchparam = searchparam.substring(1, searchparam.length - 1);
  5445. var pax = Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* validatePaxcount */ "d"])({
  5446. maxPaxcount: 9,
  5447. countInf: true,
  5448. childAsAdult: 18,
  5449. sepInfSeat: false,
  5450. childMinAge: 2
  5451. });
  5452. if (!pax) {
  5453. Object(_utils__WEBPACK_IMPORTED_MODULE_0__[/* printNotification */ "h"])("Error: Failed to validate Passengers in printPriceline");
  5454. return;
  5455. }
  5456. pricelineurl +=
  5457. "/desktop/details/R_" +
  5458. searchparam +
  5459. "_" +
  5460. (pax.adults + pax.children.length + pax.infLap) +
  5461. "_USD0.00_1-1-1?num-adults=" +
  5462. pax.adults +
  5463. "&num-children=" +
  5464. pax.children.length +
  5465. "&num-infants=" +
  5466. pax.infLap +
  5467. "&num-youths=0";
  5468.  
  5469. return {
  5470. url: pricelineurl,
  5471. title: "Priceline"
  5472. };
  5473. }
  5474.  
  5475. Object(_print_links__WEBPACK_IMPORTED_MODULE_1__[/* registerLink */ "c"])("otas", printPriceline);
  5476.  
  5477.  
  5478. /***/ }),
  5479. /* 36 */
  5480. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5481.  
  5482. "use strict";
  5483. __webpack_require__.r(__webpack_exports__);
  5484.  
  5485. // EXTERNAL MODULE: ./src/settings/appSettings.js
  5486. var appSettings = __webpack_require__(4);
  5487.  
  5488. // EXTERNAL MODULE: ./src/settings/userSettings.js
  5489. var userSettings = __webpack_require__(1);
  5490.  
  5491. // EXTERNAL MODULE: ./src/settings/itaSettings.js
  5492. var itaSettings = __webpack_require__(5);
  5493.  
  5494. // EXTERNAL MODULE: ./src/utils.js
  5495. var utils = __webpack_require__(2);
  5496.  
  5497. // EXTERNAL MODULE: ./src/parse/itin.js
  5498. var parse_itin = __webpack_require__(0);
  5499.  
  5500. // EXTERNAL MODULE: ./src/settings/translations.js
  5501. var translations = __webpack_require__(8);
  5502.  
  5503. // EXTERNAL MODULE: ./src/print/links.js
  5504. var links = __webpack_require__(3);
  5505.  
  5506. // CONCATENATED MODULE: ./src/print/index.js
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514. function render() {
  5515. // Editor mode?
  5516. if (
  5517. userSettings["a" /* default */].enableEditormode == 1 &&
  5518. Object(utils["d" /* findtargets */])("editoritem").length === 0
  5519. ) {
  5520. Object(utils["l" /* toggleVis */])(document.getElementById("mptStartparse"), "inline-block");
  5521. addEditor();
  5522. return;
  5523. } else if (Object(utils["d" /* findtargets */])("editoritem").length > 0) {
  5524. Object(utils["l" /* toggleVis */])(document.getElementById("mptStartparse"));
  5525. removeEditor();
  5526. Object(parse_itin["c" /* readItinerary */])();
  5527. }
  5528.  
  5529. bindPageLayout();
  5530.  
  5531. if (userSettings["a" /* default */].enableFarerules == 1) bindRulelinks();
  5532.  
  5533. if (userSettings["a" /* default */].timeformat == "24h") bind24HourTime();
  5534.  
  5535. if (
  5536. userSettings["a" /* default */].language !== "en" &&
  5537. translations["a" /* default */][userSettings["a" /* default */].language].resultpage !== undefined
  5538. )
  5539. bindTranslations(
  5540. "resultpage",
  5541. userSettings["a" /* default */].language,
  5542. Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1).nextElementSibling
  5543. );
  5544.  
  5545. if (userSettings["a" /* default */].enablePricebreakdown == 1) bindPriceBreakdown();
  5546.  
  5547. if (userSettings["a" /* default */].enableInlineMode == 1) printCPM();
  5548.  
  5549. Object(links["b" /* printLinksContainer */])();
  5550.  
  5551. if (userSettings["a" /* default */].enableSeatguru == 1) bindSeatguru();
  5552. if (userSettings["a" /* default */].enablePlanefinder == 1) bindPlanefinder();
  5553. if (userSettings["a" /* default */].enableWheretocredit == 1) bindWheretocredit();
  5554. }
  5555.  
  5556. function cleanUp() {
  5557. // empty outputcontainer
  5558. if (document.getElementById("powertoolslinkcontainer") != undefined) {
  5559. var div = document.getElementById("powertoolslinkcontainer");
  5560. div.innerHTML = "";
  5561. }
  5562. // S&D powertool items
  5563. var elems = Object(utils["d" /* findtargets */])("powertoolsitem");
  5564. for (var i = elems.length - 1; i >= 0; i--) {
  5565. elems[i].parentElement.removeChild(elems[i]);
  5566. }
  5567. // S&D price breakdown
  5568. var pbd = Object(utils["c" /* findtarget */])("pricebreakdown", 1);
  5569. if (pbd != undefined) pbd.parentElement.removeChild(pbd);
  5570. }
  5571.  
  5572. function addEditor() {
  5573. for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
  5574. for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
  5575. var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild;
  5576. var tmp = target.innerHTML;
  5577. var bc = tmp.substr(tmp.length - 2, 1);
  5578. var cabin = tmp.substr(0, tmp.length - 4);
  5579. var cabins = [
  5580. ["Economy", "Y"],
  5581. ["Premium Economy", "Y+"],
  5582. ["Business", "C"],
  5583. ["First", "F"]
  5584. ];
  5585. var str = '<select style="width:40px" class="editoritem">';
  5586. for (var k = 0; k < cabins.length; k++) {
  5587. str +=
  5588. '<option value="' +
  5589. cabins[k][0] +
  5590. '"' +
  5591. (cabins[k][0] === cabin ? ' selected="selected"' : "") +
  5592. ">" +
  5593. cabins[k][1] +
  5594. "</option>";
  5595. }
  5596. str += "</select>";
  5597. str +=
  5598. ' (<input type="text" class="editoritem" value="' +
  5599. bc +
  5600. '" style="width:20px;text-align:center">)';
  5601. target.innerHTML = str;
  5602. }
  5603. }
  5604. }
  5605.  
  5606. function removeEditor() {
  5607. for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
  5608. for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
  5609. var target = findItinTarget(i + 1, j + 1, "cabin").firstElementChild;
  5610. var cabin =
  5611. target.firstElementChild.options[target.firstElementChild.selectedIndex]
  5612. .value;
  5613. var bc = target.firstElementChild.nextElementSibling.value;
  5614. var str = cabin + " (" + bc + ")";
  5615. target.innerHTML = str;
  5616. }
  5617. }
  5618. }
  5619.  
  5620. function bindPageLayout() {
  5621. if (userSettings["a" /* default */].enableInlineMode == 1) {
  5622. Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute(
  5623. "rowspan",
  5624. "10"
  5625. );
  5626. } else if (
  5627. userSettings["a" /* default */].enableInlineMode == 0 &&
  5628. userSettings["a" /* default */].enablePricebreakdown == 1
  5629. ) {
  5630. Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute(
  5631. "rowspan",
  5632. "3"
  5633. );
  5634. } else {
  5635. Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.milagecontainer, 1).setAttribute(
  5636. "rowspan",
  5637. "2"
  5638. );
  5639. }
  5640. }
  5641.  
  5642. function bind24HourTime() {
  5643. // lets do the time-replacement
  5644. const segs = Object(parse_itin["b" /* getCurrentSegs */])();
  5645. if (segs.length > 0) {
  5646. const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1)
  5647. .nextElementSibling;
  5648. for (let i = 0; i < segs.length; i++) {
  5649. target.innerHTML = target.innerHTML.replace(
  5650. new RegExp(segs[i].dep.timeDisplay, "g"),
  5651. segs[i].dep.time24
  5652. );
  5653. target.innerHTML = target.innerHTML.replace(
  5654. new RegExp(segs[i].arr.timeDisplay, "g"),
  5655. segs[i].arr.time24
  5656. );
  5657. }
  5658. }
  5659. }
  5660.  
  5661. function bindRulelinks() {
  5662. var i = 0;
  5663. var j = 0;
  5664. var t = 1;
  5665. let target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t);
  5666. if (target != undefined) {
  5667. do {
  5668. var current = Number(
  5669. target.firstElementChild.innerHTML.replace(/[^\d]/gi, "")
  5670. );
  5671. if (i > current) {
  5672. j++;
  5673. i = 0;
  5674. }
  5675. target = target.nextElementSibling.nextElementSibling.nextElementSibling;
  5676. var targeturl =
  5677. window.location.href.replace(/view-details/, "view-rules") +
  5678. ";fare-key=" +
  5679. j +
  5680. "/" +
  5681. i;
  5682. var newlink = document.createElement("a");
  5683. newlink.setAttribute("class", "gwt-Anchor");
  5684. newlink.setAttribute("href", targeturl);
  5685. newlink.setAttribute("target", "_blank");
  5686. var linkText = document.createTextNode("rules");
  5687. newlink.appendChild(linkText);
  5688. target.parentElement.replaceChild(newlink, target);
  5689. i++;
  5690. t++;
  5691. target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.rulescontainer, t);
  5692. } while (target != undefined);
  5693. }
  5694. }
  5695.  
  5696. function bindPriceBreakdown() {
  5697. var basefares = 0;
  5698. var taxes = 0;
  5699. var surcharges = 0;
  5700. var basefound = 0;
  5701. var cur = "";
  5702. // define searchpattern to detect carrier imposed surcharges
  5703. var searchpatt = new RegExp("((YQ|YR))");
  5704. var t = 1;
  5705. var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t);
  5706. if (userSettings["a" /* default */].enableInlineMode == 0) {
  5707. var output = "";
  5708. var count = 0;
  5709. }
  5710. if (target != undefined) {
  5711. do {
  5712. var type = target.firstChild.firstChild.nodeType;
  5713. if (type == 1) {
  5714. basefound = 1;
  5715. //it's a basefare
  5716. var price = Number(
  5717. target.nextElementSibling.firstElementChild.innerHTML.replace(
  5718. /[^\d]/gi,
  5719. ""
  5720. )
  5721. );
  5722. if (cur == "")
  5723. cur = target.nextElementSibling.firstElementChild.innerHTML.replace(
  5724. /[\d,.]/g,
  5725. ""
  5726. );
  5727. basefares += price;
  5728. } else if (basefound == 1 && type == 3) {
  5729. //its a pricenode
  5730. var name = target.firstElementChild.innerHTML;
  5731. var price = Number(
  5732. target.nextElementSibling.firstElementChild.innerHTML.replace(
  5733. /[^\d]/gi,
  5734. ""
  5735. )
  5736. );
  5737. if (
  5738. Object(utils["e" /* hasClass */])(
  5739. target.nextElementSibling,
  5740. itaSettings["a" /* default */].resultpage.htbGreyBorder
  5741. )
  5742. ) {
  5743. //we are done for this container
  5744. var sum = basefares + taxes + surcharges;
  5745. if (userSettings["a" /* default */].enableInlineMode == 1) {
  5746. var newtr = document.createElement("tr");
  5747. newtr.innerHTML =
  5748. '<td class="' +
  5749. itaSettings["a" /* default */].resultpage.htbLeft +
  5750. '"><div class="gwt-Label">Basefare per passenger (' +
  5751. ((basefares / sum) * 100).toFixed(2).toString() +
  5752. '%)</div></td><td class="' +
  5753. itaSettings["a" /* default */].resultpage.htbGreyBorder +
  5754. '"><div class="gwt-Label">' +
  5755. cur +
  5756. (basefares / 100)
  5757. .toFixed(2)
  5758. .toString()
  5759. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5760. "</div></td>";
  5761. target.parentElement.parentElement.insertBefore(
  5762. newtr,
  5763. target.parentElement
  5764. );
  5765. var newtr = document.createElement("tr");
  5766. newtr.innerHTML =
  5767. '<td class="' +
  5768. itaSettings["a" /* default */].resultpage.htbLeft +
  5769. '"><div class="gwt-Label">Taxes per passenger (' +
  5770. ((taxes / sum) * 100).toFixed(2).toString() +
  5771. '%)</div></td><td class="' +
  5772. itaSettings["a" /* default */].resultpage.htbRight +
  5773. '"><div class="gwt-Label">' +
  5774. cur +
  5775. (taxes / 100)
  5776. .toFixed(2)
  5777. .toString()
  5778. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5779. "</div></td>";
  5780. target.parentElement.parentElement.insertBefore(
  5781. newtr,
  5782. target.parentElement
  5783. );
  5784. var newtr = document.createElement("tr");
  5785. newtr.innerHTML =
  5786. '<td class="' +
  5787. itaSettings["a" /* default */].resultpage.htbLeft +
  5788. '"><div class="gwt-Label">Surcharges per passenger (' +
  5789. ((surcharges / sum) * 100).toFixed(2).toString() +
  5790. '%)</div></td><td class="' +
  5791. itaSettings["a" /* default */].resultpage.htbRight +
  5792. '"><div class="gwt-Label">' +
  5793. cur +
  5794. (surcharges / 100)
  5795. .toFixed(2)
  5796. .toString()
  5797. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5798. "</div></td>";
  5799. target.parentElement.parentElement.insertBefore(
  5800. newtr,
  5801. target.parentElement
  5802. );
  5803. var newtr = document.createElement("tr");
  5804. newtr.innerHTML =
  5805. '<td class="' +
  5806. itaSettings["a" /* default */].resultpage.htbLeft +
  5807. '"><div class="gwt-Label">Basefare + Taxes per passenger (' +
  5808. (((basefares + taxes) / sum) * 100).toFixed(2).toString() +
  5809. '%)</div></td><td class="' +
  5810. itaSettings["a" /* default */].resultpage.htbGreyBorder +
  5811. '"><div class="gwt-Label">' +
  5812. cur +
  5813. ((basefares + taxes) / 100)
  5814. .toFixed(2)
  5815. .toString()
  5816. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5817. "</div></td>";
  5818. target.parentElement.parentElement.insertBefore(
  5819. newtr,
  5820. target.parentElement
  5821. );
  5822. } else {
  5823. count++;
  5824. output += '<table style="float:left; margin-right:15px;"><tbody>';
  5825. output +=
  5826. '<tr><td colspan=3 style="text-align:center;">Price breakdown ' +
  5827. count +
  5828. ": </td></tr>";
  5829. output +=
  5830. "<tr><td>" +
  5831. cur +
  5832. ' per mile</td><td colspan=2 style="text-align:center;">' +
  5833. (sum / parse_itin["a" /* currentItin */].dist / 100).toFixed(4).toString() +
  5834. "</td></tr>";
  5835. output +=
  5836. '<tr><td>Basefare</td><td style="padding:0px 3px;text-align:right;">' +
  5837. ((basefares / sum) * 100).toFixed(1).toString() +
  5838. '%</td><td style="text-align:right;">' +
  5839. cur +
  5840. (basefares / 100)
  5841. .toFixed(2)
  5842. .toString()
  5843. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5844. "</td></tr>";
  5845. output +=
  5846. '<tr><td>Tax</td><td style="padding:0px 3px;text-align:right;">' +
  5847. ((taxes / sum) * 100).toFixed(1).toString() +
  5848. '%</td><td style="text-align:right;">' +
  5849. cur +
  5850. (taxes / 100)
  5851. .toFixed(2)
  5852. .toString()
  5853. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5854. "</td></tr>";
  5855. output +=
  5856. '<tr><td>Surcharges</td><td style="padding:0px 3px;text-align:right;">' +
  5857. ((surcharges / sum) * 100).toFixed(1).toString() +
  5858. '%</td><td style="text-align:right;">' +
  5859. cur +
  5860. (surcharges / 100)
  5861. .toFixed(2)
  5862. .toString()
  5863. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5864. "</td></tr>";
  5865. output +=
  5866. '<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;">' +
  5867. (((basefares + taxes) / sum) * 100).toFixed(1).toString() +
  5868. '%</td><td style="border-top: 1px solid #878787;padding:2px 0; text-align:right;">' +
  5869. cur +
  5870. ((basefares + taxes) / 100)
  5871. .toFixed(2)
  5872. .toString()
  5873. .replace(/\d(?=(\d{3})+\.)/g, "$&,") +
  5874. "</td></tr>";
  5875. output += "</tbody></table>";
  5876. }
  5877. parse_itin["a" /* currentItin */].basefares = +(basefares / 100).toFixed(2);
  5878. parse_itin["a" /* currentItin */].taxes = +(taxes / 100).toFixed(2);
  5879. parse_itin["a" /* currentItin */].surcharges = +(surcharges / 100).toFixed(2);
  5880.  
  5881. // reset var
  5882. basefound = 0;
  5883. basefares = 0;
  5884. taxes = 0;
  5885. surcharges = 0;
  5886. } else {
  5887. //Carrier surcharge?
  5888. if (searchpatt.test(name) === true) {
  5889. surcharges += price;
  5890. } else {
  5891. taxes += price;
  5892. }
  5893. }
  5894. }
  5895. t++;
  5896. target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbLeft, t);
  5897. } while (target != undefined);
  5898. }
  5899. if (userSettings["a" /* default */].enableInlineMode == 0) {
  5900. var printtarget = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.htbContainer, 1)
  5901. .parentElement.parentElement.parentElement;
  5902. var newtr = document.createElement("tr");
  5903. newtr.setAttribute("class", "pricebreakdown");
  5904. newtr.innerHTML = "<td><div>" + output + "</div></td>";
  5905. printtarget.parentElement.insertBefore(newtr, printtarget);
  5906. }
  5907. }
  5908.  
  5909. function bindTranslations(page, lang, target) {
  5910. if (translations["a" /* default */][lang] === undefined) {
  5911. Object(utils["h" /* printNotification */])("Error: Translation " + lang + " not found");
  5912. return false;
  5913. }
  5914. if (translations["a" /* default */][lang][page] === undefined) {
  5915. Object(utils["h" /* printNotification */])(
  5916. "Error: Translation " + lang + " not found for page " + page
  5917. );
  5918. return false;
  5919. }
  5920. for (let i in translations["a" /* default */][lang][page]) {
  5921. const re = new RegExp(i, "g");
  5922. target.innerHTML = target.innerHTML.replace(
  5923. re,
  5924. translations["a" /* default */][lang][page][i]
  5925. );
  5926. }
  5927. }
  5928.  
  5929. function printCPM() {
  5930. Object(links["a" /* printItemInline */])(
  5931. (Number(parse_itin["a" /* currentItin */].price) / Number(parse_itin["a" /* currentItin */].dist)).toFixed(4) + " cpm",
  5932. "",
  5933. 1
  5934. );
  5935. }
  5936.  
  5937. function bindSeatguru() {
  5938. for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
  5939. // walks each leg
  5940. for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
  5941. //walks each segment of leg
  5942. var k = 0;
  5943. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  5944. while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) {
  5945. if (
  5946. parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr !=
  5947. parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr ||
  5948. parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440
  5949. )
  5950. break;
  5951. k++;
  5952. }
  5953. // build the search to identify flight:
  5954. var target = findItinTarget(i + 1, j + 1, "plane");
  5955. if (!target) {
  5956. Object(utils["h" /* printNotification */])("Error: Could not find target in bindSeatguru");
  5957. return false;
  5958. } else {
  5959. var url =
  5960. "http://www.seatguru.com/findseatmap/findseatmap.php?carrier=" +
  5961. parse_itin["a" /* currentItin */].itin[i].seg[j].carrier +
  5962. "&flightno=" +
  5963. parse_itin["a" /* currentItin */].itin[i].seg[j].fnr +
  5964. "&date=" +
  5965. ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.month).slice(-2) +
  5966. "%2F" +
  5967. ("0" + parse_itin["a" /* currentItin */].itin[i].seg[j].dep.day).slice(-2) +
  5968. "%2F" +
  5969. parse_itin["a" /* currentItin */].itin[i].seg[j].dep.year +
  5970. "&to=&from=" +
  5971. parse_itin["a" /* currentItin */].itin[i].seg[j].orig;
  5972. target.children[0].innerHTML =
  5973. '<a href="' +
  5974. url +
  5975. '" target="_blank" style="text-decoration:none;color:black">' +
  5976. target.children[0].innerHTML +
  5977. "</a>";
  5978. }
  5979. j += k;
  5980. }
  5981. }
  5982. }
  5983.  
  5984. function bindPlanefinder() {
  5985. for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
  5986. // walks each leg
  5987. for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
  5988. //walks each segment of leg
  5989. var k = 0;
  5990. // lets have a look if we need to skip segments - Flightnumber has to be the same and it must be just a layover
  5991. while (j + k < parse_itin["a" /* currentItin */].itin[i].seg.length - 1) {
  5992. if (
  5993. parse_itin["a" /* currentItin */].itin[i].seg[j + k].fnr !=
  5994. parse_itin["a" /* currentItin */].itin[i].seg[j + k + 1].fnr ||
  5995. parse_itin["a" /* currentItin */].itin[i].seg[j + k].layoverduration >= 1440
  5996. )
  5997. break;
  5998. k++;
  5999. }
  6000. // build the search to identify flight:
  6001. var target = findItinTarget(i + 1, j + 1, "flight");
  6002. if (!target) {
  6003. Object(utils["h" /* printNotification */])("Error: Could not find target in bindPlanefinder");
  6004. return false;
  6005. } else {
  6006. var url =
  6007. "http://www.planefinder.net/data/flight/" +
  6008. parse_itin["a" /* currentItin */].itin[i].seg[j].carrier +
  6009. parse_itin["a" /* currentItin */].itin[i].seg[j].fnr;
  6010. target.children[0].innerHTML =
  6011. '<a href="' +
  6012. url +
  6013. '" target="_blank" style="text-decoration:none;color:black">' +
  6014. target.children[0].innerHTML +
  6015. "</a>";
  6016. }
  6017. j += k;
  6018. }
  6019. }
  6020. }
  6021.  
  6022. function bindWheretocredit() {
  6023. for (var i = 0; i < parse_itin["a" /* currentItin */].itin.length; i++) {
  6024. // walks each leg
  6025. for (var j = 0; j < parse_itin["a" /* currentItin */].itin[i].seg.length; j++) {
  6026. //walks each segment of leg
  6027. var target = findItinTarget(i + 1, j + 1, "cabin");
  6028. if (!target) {
  6029. Object(utils["h" /* printNotification */])("Error: Could not find target in bindWheretocredit");
  6030. return false;
  6031. } else {
  6032. var url =
  6033. "http://www.wheretocredit.com/" +
  6034. parse_itin["a" /* currentItin */].itin[i].seg[j].carrier.toLowerCase() +
  6035. "/" +
  6036. parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass.toLowerCase();
  6037. target.children[0].innerHTML = target.children[0].innerHTML
  6038. .replace(
  6039. /<a.*?\/a>/,
  6040. "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")"
  6041. )
  6042. .replace(
  6043. "(" + parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass + ")",
  6044. '<a href="' +
  6045. url +
  6046. '" target="_blank" style="text-decoration:none;color:black">(' +
  6047. parse_itin["a" /* currentItin */].itin[i].seg[j].bookingclass +
  6048. ")</a>"
  6049. );
  6050. }
  6051. }
  6052. }
  6053. }
  6054.  
  6055. function findItinTarget(leg, seg, tcell) {
  6056. var target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage.itin, 1);
  6057. if (!target) {
  6058. Object(utils["h" /* printNotification */])("Error: Itin not found in findItinTarget-function");
  6059. return;
  6060. }
  6061.  
  6062. // go to leg
  6063. var targetLeg = target.nextElementSibling.children[leg - 1];
  6064. if (targetLeg === undefined) {
  6065. Object(utils["h" /* printNotification */])("Error: Leg not found in findItinTarget-function");
  6066. return;
  6067. }
  6068. // go to segments of leg
  6069. var targetSeg = targetLeg.children[1].children;
  6070. if (targetSeg.length >= 2) {
  6071. // go to desired segment
  6072. var index = 0;
  6073. var j = 0;
  6074. let i = 0;
  6075. for (i = 0; i < targetSeg.length; i++) {
  6076. if (Object(utils["e" /* hasClass */])(targetSeg[i], itaSettings["a" /* default */].resultpage.itinRow)) {
  6077. j++;
  6078. if (j >= seg) {
  6079. index = i;
  6080. //special handling for one-seg-legs here
  6081. if (targetSeg.length === 2 || targetSeg.length === 3) {
  6082. // 1. Headline 2. Flight-details 3. arrival next day..
  6083. index--;
  6084. }
  6085. break;
  6086. }
  6087. }
  6088. } // end-for
  6089. if (i == targetSeg.length) {
  6090. //target not found
  6091. Object(utils["h" /* printNotification */])(
  6092. "Error: Call to unreachable Segment in Leg " +
  6093. leg +
  6094. " in findItinTarget-function"
  6095. );
  6096. return;
  6097. }
  6098. var rowoffset = 0;
  6099. var columnoffset = 0;
  6100.  
  6101. switch (tcell) {
  6102. case "headline":
  6103. // special case here allways first row... even in one-seg-legs
  6104. rowoffset = index * -1;
  6105. columnoffset = 1;
  6106. break;
  6107. case "logo":
  6108. rowoffset = 0;
  6109. columnoffset = 0;
  6110. break;
  6111. case "airportsdate":
  6112. rowoffset = 0;
  6113. columnoffset = 1;
  6114. break;
  6115. case "flight":
  6116. rowoffset = 1;
  6117. columnoffset = 0;
  6118. break;
  6119. case "deptime":
  6120. rowoffset = 1;
  6121. columnoffset = 1;
  6122. break;
  6123. case "arrtime":
  6124. rowoffset = 1;
  6125. columnoffset = 2;
  6126. break;
  6127. case "duration":
  6128. rowoffset = 1;
  6129. columnoffset = 2;
  6130. break;
  6131. case "plane":
  6132. rowoffset = 1;
  6133. columnoffset = 4;
  6134. break;
  6135. case "cabin":
  6136. rowoffset = 1;
  6137. columnoffset = 5;
  6138. break;
  6139. default:
  6140. Object(utils["h" /* printNotification */])("Error: Unknown Target in findItinTarget-function");
  6141. return;
  6142. }
  6143. return targetSeg[index + rowoffset].children[columnoffset];
  6144. } else {
  6145. Object(utils["h" /* printNotification */])("Error: Unknown error in findItinTarget-function");
  6146. return;
  6147. }
  6148. }
  6149.  
  6150. // EXTERNAL MODULE: ./src/settings/paxSettings.js
  6151. var paxSettings = __webpack_require__(6);
  6152.  
  6153. // CONCATENATED MODULE: ./src/print/settings.js
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162. /**************************************** Settings Stuff *****************************************/
  6163. function createUsersettings() {
  6164. var str = "";
  6165. var settingscontainer = document.createElement("div");
  6166. settingscontainer.setAttribute("id", "mptSettingsContainer");
  6167. settingscontainer.setAttribute("style", "border-bottom: 1px dashed grey;");
  6168. settingscontainer.innerHTML =
  6169. '<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' +
  6170. appSettings["a" /* default */].version +
  6171. ') <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>';
  6172. var target = document.getElementById("contentwrapper");
  6173. target.parentElement.insertBefore(settingscontainer, target);
  6174. document.getElementById("settingsVisToggler").onclick = function() {
  6175. Object(utils["l" /* toggleVis */])(document.getElementById("mptSettings"));
  6176. };
  6177. document.getElementById("passengerVisToggler").onclick = function() {
  6178. Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers"));
  6179. };
  6180.  
  6181. // Build settings
  6182. target = document.getElementById("mptSettings");
  6183. str =
  6184. '<div id="mptrestoredefault" style="text-align:right;font-weight:bold;text-decoration:underline;">Restore Defaults</div>';
  6185. str +=
  6186. '<div style="text-align:center;font-weight:bold">**** Display Settings: ****</div>';
  6187. str += '<div style="margin:5px 0;"><div style="float:left;width:25%">';
  6188. str +=
  6189. '<div id="mpttimeformat">Time Format: <label style="cursor:pointer;">' +
  6190. printSettingsvalue("timeformat") +
  6191. "</label></div>";
  6192. str +=
  6193. '<div id="mptlanguage">Language: <label style="cursor:pointer;">' +
  6194. printSettingsvalue("language") +
  6195. "</label></div>";
  6196. str += '</div><div style="float:left;width:25%">';
  6197. str +=
  6198. '<div id="mptenableDeviders">Enable dividers: <label style="cursor:pointer;">' +
  6199. printSettingsvalue("enableDeviders") +
  6200. "</label></div>";
  6201. str +=
  6202. '<div id="mptenableInlineMode">Inline Mode: <label style="cursor:pointer;">' +
  6203. printSettingsvalue("enableInlineMode") +
  6204. "</label></div>";
  6205. str += '</div><div style="float:left;width:25%">';
  6206. str +=
  6207. '<div id="mptenableFarerules">Open fare-rules in new window: <label style="cursor:pointer;">' +
  6208. printSettingsvalue("enableFarerules") +
  6209. "</label></div>";
  6210. str +=
  6211. '<div id="mptenablePricebreakdown">Price breakdown: <label style="cursor:pointer;">' +
  6212. printSettingsvalue("enablePricebreakdown") +
  6213. "</label></div>";
  6214. str += '</div><div style="float:left;width:25%">';
  6215. str +=
  6216. '<div id="mptlinkFontsize">Link font size: <label style="cursor:pointer;">' +
  6217. printSettingsvalue("linkFontsize") +
  6218. "</label>%</div>";
  6219. str +=
  6220. '<div id="mptshowAllAirlines">All airlines: <label style="cursor:pointer;">' +
  6221. printSettingsvalue("showAllAirlines") +
  6222. "</label></div>";
  6223. str += '</div><div style="clear:both"></div></div>';
  6224. str +=
  6225. '<div style="text-align:center;font-weight:bold">**** Feature Settings: ****</div>';
  6226. str += '<div style="margin:5px 0"><div style="float:left;width:25%">';
  6227. str +=
  6228. '<div id="mptenableEditormode">Editor mode: <label style="cursor:pointer;">' +
  6229. printSettingsvalue("enableEditormode") +
  6230. "</label></div>";
  6231. str += '</div><div style="float:left;width:33%">';
  6232. str += '</div><div style="float:left;width:33%">';
  6233. str +=
  6234. '<div id="mptenableIMGautoload">Images autoload: <label style="cursor:pointer;">' +
  6235. printSettingsvalue("enableIMGautoload") +
  6236. "</label></div>";
  6237. str += '</div><div style="float:left;width:33%">';
  6238. str +=
  6239. '<div id="mptenableWheretocredit">Enable WhereToCredit: <label style="cursor:pointer;">' +
  6240. printSettingsvalue("enableWheretocredit") +
  6241. "</label></div>";
  6242. str +=
  6243. '<div id="mptenablePlanefinder">Enable Planefinder: <label style="cursor:pointer;">' +
  6244. printSettingsvalue("enablePlanefinder") +
  6245. "</label></div>";
  6246. str +=
  6247. '<div id="mptenableSeatguru">Enable Seatguru: <label style="cursor:pointer;">' +
  6248. printSettingsvalue("enableSeatguru") +
  6249. "</label></div>";
  6250. str += '</div><div style="clear:both"></div></div>';
  6251. str +=
  6252. '<div style="text-align:center;font-weight:bold">**** Link Settings: ****</div>';
  6253. str += '<div style="margin:5px 0">';
  6254.  
  6255. Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => {
  6256. str += `<div id="mpt${setting}" style="width:33%;float:left;">${
  6257. userSettings["d" /* registeredSettings */][setting].name
  6258. }: <label style="cursor:pointer;">${printSettingsvalue(
  6259. setting
  6260. )}</label></div>`;
  6261. });
  6262. str += '<div style="clear:both"></div></div>';
  6263. str +=
  6264. '<div style="text-align:center;font-weight:bold"><label id="configcloser" style="cursor:pointer;text-decoration:underline;">Close</label><div>';
  6265. target.innerHTML = str;
  6266.  
  6267. // these onClick event handlers need only be added once:
  6268. document.getElementById("mptrestoredefault").onclick = function() {
  6269. restoreDefaultSettings();
  6270. };
  6271. document.getElementById("mpttimeformat").onclick = function() {
  6272. toggleSettings("timeformat");
  6273. };
  6274. document.getElementById("mptlanguage").onclick = function() {
  6275. toggleSettings("language");
  6276. };
  6277. document.getElementById("mptenableDeviders").onclick = function() {
  6278. toggleSettings("enableDeviders");
  6279. };
  6280. document.getElementById("mptenableInlineMode").onclick = function() {
  6281. toggleSettings("enableInlineMode");
  6282. };
  6283. document.getElementById("mptenableEditormode").onclick = function() {
  6284. toggleSettings("enableEditormode");
  6285. };
  6286. document.getElementById("mptenableIMGautoload").onclick = function() {
  6287. toggleSettings("enableIMGautoload");
  6288. };
  6289. document.getElementById("mptenableFarerules").onclick = function() {
  6290. toggleSettings("enableFarerules");
  6291. };
  6292. document.getElementById("mptenablePricebreakdown").onclick = function() {
  6293. toggleSettings("enablePricebreakdown");
  6294. };
  6295. document.getElementById("mptlinkFontsize").onclick = function() {
  6296. toggleSettings("linkFontsize");
  6297. };
  6298. document.getElementById("mptshowAllAirlines").onclick = function() {
  6299. toggleSettings("showAllAirlines");
  6300. };
  6301. document.getElementById("mptenablePlanefinder").onclick = function() {
  6302. toggleSettings("enablePlanefinder");
  6303. };
  6304. document.getElementById("mptenableSeatguru").onclick = function() {
  6305. toggleSettings("enableSeatguru");
  6306. };
  6307. document.getElementById("mptenableWheretocredit").onclick = function() {
  6308. toggleSettings("enableWheretocredit");
  6309. };
  6310. document.getElementById("mptCabintoggler").onclick = function() {
  6311. toggleSettings("cabin");
  6312. };
  6313. document.getElementById("configcloser").onclick = function() {
  6314. Object(utils["l" /* toggleVis */])(document.getElementById("mptSettings"));
  6315. };
  6316. document.getElementById("mptStartparse").onclick = function() {
  6317. setTimeout(function() {
  6318. render();
  6319. }, 50);
  6320. };
  6321.  
  6322. Object.keys(userSettings["d" /* registeredSettings */]).forEach(setting => {
  6323. document.getElementById("mpt" + setting).onclick = function() {
  6324. toggleSettings(setting);
  6325. };
  6326. });
  6327.  
  6328. // Build passengers
  6329. target = document.getElementById("mptPassengers");
  6330. str = '<div style="float:left;width:25%">';
  6331. str +=
  6332. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Adults: </label> <select name="numAdults" id="numAdults" style="width:50px">';
  6333. for (var i = 1; i <= 9; i++) {
  6334. str += "<option>" + i + "</option>";
  6335. }
  6336. str += "</select></div>";
  6337. str +=
  6338. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Lap): </label> <select name="numInfantsLap" id="numInfantsLap" style="width:50px">';
  6339. for (var i = 0; i <= 9; i++) {
  6340. str += "<option>" + i + "</option>";
  6341. }
  6342. str += "</select></div>";
  6343. str +=
  6344. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Infants (Seat): </label> <select name="numInfantsSeat" id="numInfantsSeat" style="width:50px">';
  6345. for (var i = 0; i <= 9; i++) {
  6346. str += "<option>" + i + "</option>";
  6347. }
  6348. str += "</select></div>";
  6349. str += '</div><div style="float:left;width:25%">';
  6350. for (var k = 1; k <= 3; k++) {
  6351. str +=
  6352. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
  6353. k +
  6354. ' - Age: </label> <select name="child' +
  6355. k +
  6356. 'age" id="child' +
  6357. k +
  6358. 'age" style="width:50px">';
  6359. str += '<option value="-1">-</option>';
  6360. for (var i = 2; i <= 17; i++) {
  6361. str += '<option value="' + i + '">' + i + "</option>";
  6362. }
  6363. str += "</select></div>";
  6364. }
  6365. str += '</div><div style="float:left;width:25%">';
  6366. for (var k = 4; k <= 6; k++) {
  6367. str +=
  6368. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
  6369. k +
  6370. ' - Age: </label> <select name="child' +
  6371. k +
  6372. 'age" id="child' +
  6373. k +
  6374. 'age" style="width:50px">';
  6375. str += '<option value="-1">-</option>';
  6376. for (var i = 2; i <= 17; i++) {
  6377. str += '<option value="' + i + '">' + i + "</option>";
  6378. }
  6379. str += "</select></div>";
  6380. }
  6381. str += '</div><div style="float:left;width:25%">';
  6382. for (var k = 7; k <= 8; k++) {
  6383. str +=
  6384. '<div style="margin:2px 0"><label style="width:100px;display:inline-block">Child ' +
  6385. k +
  6386. ' - Age: </label> <select name="child' +
  6387. k +
  6388. 'age" id="child' +
  6389. k +
  6390. 'age" style="width:50px">';
  6391. str += '<option value="-1">-</option>';
  6392. for (var i = 2; i <= 17; i++) {
  6393. str += '<option value="' + i + '">' + i + "</option>";
  6394. }
  6395. str += "</select></div>";
  6396. }
  6397. str +=
  6398. '<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>';
  6399. str += '</div><div style="clear:both;"></div>';
  6400. target.innerHTML = str;
  6401. document.getElementById("mtpCancelPax").onclick = function() {
  6402. Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers"));
  6403. };
  6404. document.getElementById("mtpConfirmPax").onclick = function() {
  6405. processPassengers();
  6406. };
  6407. }
  6408.  
  6409. function restoreDefaultSettings() {
  6410. // this function will remove any saved settings and restore default values
  6411. if (
  6412. window.confirm(
  6413. "Are you sure you want to reset any saved settings to the default values? The page will automatically reload to complete the reset."
  6414. )
  6415. ) {
  6416. (async () => {
  6417. if (typeof GM === "undefined" || typeof GM.info != "undefined") {
  6418. await Object(userSettings["e" /* saveUserSettings */])(null);
  6419. }
  6420. // Reload the current page:
  6421. window.location.reload();
  6422. })(); // end async for GM4
  6423. }
  6424. }
  6425.  
  6426. function toggleSettings(target) {
  6427. console.log("toggleSettings called. target=" + target);
  6428.  
  6429. if (userSettings["d" /* registeredSettings */][target] && userSettings["d" /* registeredSettings */][target].values) {
  6430. const pos = findPositionForValue(
  6431. userSettings["a" /* default */][target],
  6432. userSettings["d" /* registeredSettings */][target].values
  6433. );
  6434. if (pos >= userSettings["d" /* registeredSettings */][target].values.length - 1 || pos === -1) {
  6435. userSettings["a" /* default */][target] = userSettings["d" /* registeredSettings */][target].values[0].value;
  6436. } else {
  6437. userSettings["a" /* default */][target] =
  6438. userSettings["d" /* registeredSettings */][target].values[pos + 1].value;
  6439. }
  6440. } else {
  6441. switch (target) {
  6442. case "timeformat":
  6443. if (userSettings["a" /* default */].timeformat == "12h") {
  6444. userSettings["a" /* default */].timeformat = "24h";
  6445. } else {
  6446. userSettings["a" /* default */].timeformat = "12h";
  6447. }
  6448. break;
  6449. case "language":
  6450. if (userSettings["a" /* default */].language == "de") {
  6451. userSettings["a" /* default */].language = "en";
  6452. } else {
  6453. userSettings["a" /* default */].language = "de";
  6454. }
  6455. break;
  6456. case "linkFontsize":
  6457. if (
  6458. userSettings["a" /* default */].linkFontsize <= 190 &&
  6459. userSettings["a" /* default */].linkFontsize >= 50
  6460. ) {
  6461. userSettings["a" /* default */].linkFontsize += 10;
  6462. } else {
  6463. userSettings["a" /* default */].linkFontsize = 50;
  6464. }
  6465. break;
  6466. case "cabin":
  6467. if (appSettings["a" /* default */].cabin === "Auto") {
  6468. appSettings["a" /* default */].cabin = "Y";
  6469. } else if (appSettings["a" /* default */].cabin === "Y") {
  6470. appSettings["a" /* default */].cabin = "Y+";
  6471. } else if (appSettings["a" /* default */].cabin === "Y+") {
  6472. appSettings["a" /* default */].cabin = "C";
  6473. } else if (appSettings["a" /* default */].cabin === "C") {
  6474. appSettings["a" /* default */].cabin = "F";
  6475. } else if (appSettings["a" /* default */].cabin === "F") {
  6476. appSettings["a" /* default */].cabin = "Auto";
  6477. }
  6478. document.getElementById("mptCabinMode").innerHTML = appSettings["a" /* default */].cabin;
  6479.  
  6480. // refresh links
  6481. Object(links["b" /* printLinksContainer */])();
  6482. break;
  6483. default:
  6484. if (userSettings["a" /* default */][target] == 1) {
  6485. userSettings["a" /* default */][target] = 0;
  6486. } else {
  6487. userSettings["a" /* default */][target] = 1;
  6488. }
  6489. }
  6490. }
  6491. document.getElementById(
  6492. "mpt" + target
  6493. ).firstElementChild.innerHTML = printSettingsvalue(target);
  6494. Object(userSettings["e" /* saveUserSettings */])();
  6495. }
  6496.  
  6497. function processPassengers() {
  6498. var paxText = "";
  6499. var e = document.getElementById("numAdults");
  6500. paxSettings["a" /* default */].adults = Number(e.options[e.selectedIndex].value);
  6501. e = document.getElementById("numInfantsLap");
  6502. paxSettings["a" /* default */].infantsLap = Number(e.options[e.selectedIndex].value);
  6503. e = document.getElementById("numInfantsSeat");
  6504. paxSettings["a" /* default */].infantsSeat = Number(e.options[e.selectedIndex].value);
  6505. paxSettings["a" /* default */].cAges = new Array();
  6506. for (var i = 1; i <= 8; i++) {
  6507. processChild("child" + i + "age");
  6508. }
  6509. paxText =
  6510. paxSettings["a" /* default */].adults +
  6511. "a" +
  6512. (paxSettings["a" /* default */].cAges.length > 0
  6513. ? " " + paxSettings["a" /* default */].cAges.length + "c"
  6514. : "") +
  6515. (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat > 0
  6516. ? " " +
  6517. (paxSettings["a" /* default */].infantsLap + paxSettings["a" /* default */].infantsSeat) +
  6518. "i"
  6519. : "");
  6520. document.getElementById("mtpPaxCount").innerHTML = paxText;
  6521. Object(utils["l" /* toggleVis */])(document.getElementById("mptPassengers"));
  6522. // reload links
  6523. Object(links["b" /* printLinksContainer */])();
  6524. }
  6525.  
  6526. function processChild(target) {
  6527. var e = document.getElementById(target);
  6528. var tmp = 0;
  6529. tmp = Number(e.options[e.selectedIndex].value);
  6530. if (tmp >= 2) {
  6531. paxSettings["a" /* default */].cAges.push(tmp);
  6532. }
  6533. }
  6534.  
  6535. function printSettingsvalue(target) {
  6536. if (userSettings["d" /* registeredSettings */][target]) {
  6537. return findNameForValue(
  6538. userSettings["a" /* default */][target],
  6539. userSettings["d" /* registeredSettings */][target].values
  6540. );
  6541. }
  6542.  
  6543. switch (target) {
  6544. case "timeformat":
  6545. return userSettings["a" /* default */].timeformat;
  6546. case "language":
  6547. return userSettings["a" /* default */].language;
  6548. case "linkFontsize":
  6549. return userSettings["a" /* default */].linkFontsize.toString();
  6550. default:
  6551. return boolToEnabled(userSettings["a" /* default */][target]);
  6552. }
  6553. }
  6554.  
  6555. function findNameForValue(needle, haystack) {
  6556. var ret = "Unknown";
  6557. for (var i in haystack) {
  6558. if (haystack[i].value == needle) {
  6559. return haystack[i].name;
  6560. }
  6561. }
  6562. return ret;
  6563. }
  6564.  
  6565. function findPositionForValue(needle, haystack) {
  6566. return haystack.findIndex(o => o.value == needle);
  6567. }
  6568.  
  6569. function boolToEnabled(value) {
  6570. if (value == 1) {
  6571. return "enabled";
  6572. } else {
  6573. return "disabled";
  6574. }
  6575. }
  6576.  
  6577. // CONCATENATED MODULE: ./src/index.js
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588. /**************************************** Start Script *****************************************/
  6589.  
  6590. // *** DO NOT CHANGE BELOW THIS LINE***/
  6591. (async () => {
  6592. await Object(userSettings["b" /* loadUserSettings */])();
  6593. createUsersettings();
  6594. injectCss();
  6595.  
  6596. if (window.top === window.self) {
  6597. if (appSettings["a" /* default */].scriptEngine === 0) {
  6598. startScript();
  6599. } else {
  6600. // execute language detection and afterwards functions for current page
  6601. if (typeof window.addEventListener !== "undefined") {
  6602. window.addEventListener("load", () => startScript(), false);
  6603. } else {
  6604. window.onload = () => startScript();
  6605. }
  6606. }
  6607. }
  6608. })(); // end async for GM4
  6609.  
  6610. function startScript() {
  6611. if (window.location.href !== appSettings["a" /* default */].laststatus) {
  6612. setTimeout(function() {
  6613. Object(appSettings["d" /* reset */])();
  6614. cleanUp();
  6615. getPageLang();
  6616. }, 100);
  6617. appSettings["a" /* default */].laststatus = window.location.href;
  6618. }
  6619. if (appSettings["a" /* default */].scriptrunning === 1) {
  6620. setTimeout(function() {
  6621. startScript();
  6622. }, 500);
  6623. }
  6624. }
  6625.  
  6626. /**************************************** Get Language *****************************************/
  6627. function getPageLang() {
  6628. if (window.location.href.indexOf("view-details") != -1) {
  6629. setTimeout(function() {
  6630. fePS();
  6631. }, 200);
  6632. } else if (
  6633. window.location.href.indexOf("#search:") != -1 ||
  6634. window.location.href == "https://matrix.itasoftware.com/" ||
  6635. window.location.href == "https://matrix.itasoftware.com/"
  6636. ) {
  6637. setTimeout(function() {
  6638. startPage();
  6639. }, 200);
  6640. }
  6641. }
  6642. /********************************************* Start page *********************************************/
  6643. function startPage() {
  6644. // try to get content
  6645. if (!Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.startpage.maindiv, 1)) {
  6646. Object(utils["h" /* printNotification */])("Error: Unable to find content on start page.");
  6647. return false;
  6648. } else {
  6649. // apply style-fix
  6650. const target = Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].startpage.maindiv, 1);
  6651. target.children[0].children[0].children[0].children[0].setAttribute(
  6652. "valign",
  6653. "top"
  6654. );
  6655. }
  6656. }
  6657. /********************************************* Result page *********************************************/
  6658.  
  6659. //Primary function for extracting flight data from ITA/Matrix
  6660. function fePS() {
  6661. // try to get content
  6662. const itin = Object(itaSettings["b" /* findTargetSetVersion */])(settings => settings.resultpage.itin, 1);
  6663. if (!itin) {
  6664. Object(utils["h" /* printNotification */])("Error: Unable to find Content on result page.");
  6665. return false;
  6666. }
  6667. // retry if itin not loaded
  6668. if (itin.parentElement.previousElementSibling.style.display != "none") {
  6669. appSettings["a" /* default */].retrycount++;
  6670. if (appSettings["a" /* default */].retrycount > 50) {
  6671. Object(utils["h" /* printNotification */])(
  6672. "Error: Timeout on result page. Content not found after 10s."
  6673. );
  6674. return false;
  6675. }
  6676. setTimeout(function() {
  6677. fePS();
  6678. }, 200);
  6679. return false;
  6680. }
  6681. // do some self-testing to prevent crashing on class-changes
  6682. for (let i in itaSettings["a" /* default */].resultpage) {
  6683. if (Object(utils["c" /* findtarget */])(itaSettings["a" /* default */].resultpage[i], 1) === undefined) {
  6684. Object(utils["h" /* printNotification */])(
  6685. "Error: Unable to find class " +
  6686. itaSettings["a" /* default */].resultpage[i] +
  6687. " for " +
  6688. i +
  6689. "."
  6690. );
  6691. return false;
  6692. }
  6693. }
  6694.  
  6695. Object(parse_itin["c" /* readItinerary */])();
  6696. render();
  6697. }
  6698.  
  6699. function injectCss() {
  6700. var css = "",
  6701. head = document.head || document.getElementsByTagName("head")[0],
  6702. style = document.createElement("style");
  6703. style.type = "text/css";
  6704.  
  6705. css +=
  6706. ".pt-hover-menu { position:absolute; padding: 8px; background-color: #FFF; border: 1px solid #808080; display:none; }";
  6707. css += ".pt-hover-container:hover .pt-hover-menu { display:inline; }";
  6708.  
  6709. style.appendChild(document.createTextNode(css));
  6710.  
  6711. head.appendChild(style);
  6712. }
  6713.  
  6714.  
  6715. /***/ })
  6716. /******/ ]);