UNPKG

@qite/tide-booking-component

Version:

React Booking wizard & Booking product component for Tide

1,531 lines (1,519 loc) 2.17 MB
/* eslint-disable */ import * as React from 'react'; import React__default, { useLayoutEffect as useLayoutEffect$1, useEffect, useContext, useState, useRef, useCallback, useMemo } from 'react'; import JsonURL from '@jsonurl/jsonurl'; import { format as format$2, isToday, getDate, getYear, getMonth, startOfWeek, startOfMonth, endOfWeek, addWeeks, endOfMonth, eachDayOfInterval, getISOWeek, getISODay, isSameMonth, startOfDay, isAfter, isEqual, isWithinInterval, endOfDay, isBefore, isSameDay, differenceInCalendarDays, addMonths, addDays, formatISO, addYears, differenceInYears, parseISO, differenceInMinutes, parse, startOfToday } from 'date-fns'; import { isNil, isArray as isArray$1, compact, isEmpty, range, chunk, isFunction as isFunction$1, clamp, now, omit, first, orderBy, uniq, uniqBy, sortBy, sum, last, findIndex as findIndex$1, set, get, isEqual as isEqual$1, groupBy, minBy, concat, flatMap } from 'lodash'; import { arSA, da, de, enGB, es, fr, is, it, nl, nb, pl, pt, sv, ja, enUS } from 'date-fns/locale'; import { usePopper } from 'react-popper'; import { useSelector, useDispatch, Provider } from 'react-redux'; import { createSlice, createSelector, createAsyncThunk, configureStore } from '@reduxjs/toolkit'; import { UNSAFE_NavigationContext, useHref, useNavigate, useLocation, useResolvedPath, createPath, UNSAFE_DataRouterStateContext, UNSAFE_useRouteId, UNSAFE_RouteContext, UNSAFE_DataRouterContext, Routes, Route } from 'react-router'; import 'react-dom'; import produce from 'immer'; import { useFormik } from 'formik'; import flat from 'flat'; import { v4 } from 'uuid'; function _mergeNamespaces(n, m) { m.forEach(function (e) { e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) { if (k !== 'default' && !(k in n)) { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty( n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } } ); } }); }); return Object.freeze(n); } /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var __assign = function () { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator['throw'](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === 'function' ? Iterator : Object).prototype); return ( (g.next = verb(0)), (g['throw'] = verb(1)), (g['return'] = verb(2)), typeof Symbol === 'function' && (g[Symbol.iterator] = function () { return this; }), g ); function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError('Generator is already executing.'); while ((g && ((g = 0), op[0] && (_ = 0)), _)) try { if (((f = 1), y && (t = op[0] & 2 ? y['return'] : op[0] ? y['throw'] || ((t = y['return']) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)) return t; if (((y = 0), t)) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } typeof SuppressedError === 'function' ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return (e.name = 'SuppressedError'), (e.error = error), (e.suppressed = suppressed), e; }; var STEPS$f = { PERSONAL_DETAILS: 'التفاصيل الشخصية', EXTRA_OPTIONS: 'خيارات إضافية', SUMMARY: 'الملخص', CONFIRMATION: 'التأكيد', ERROR: 'فشل الحجز', PREVIOUS: 'الخطوة السابقة', NEXT: 'الخطوة التالية', SUBMIT_BOOKING: 'تأكيد الحجز', SUBMIT_OFFER: 'طلب عرض سعر', SUBMIT_OPTION: 'اخذ خيار', COMPOSE: 'إنشاء', ROOM_OPTIONS: 'خيارات الغرف', FLIGHT_OPTIONS: 'خيارات الرحلات' }; var INPUT$f = { INCREASE: 'زيادة', DECREASE: 'إنقاص' }; var FLIGHTS_FORM$f = { OUTWARD_FLIGHTS: 'رحلات الذهاب', OUTWARD_FLIGHT: 'رحلة الذهاب', RETURN_FLIGHTS: 'رحلات العودة', RETURN_FLIGHT: 'رحلة العودة', DIRECT_FLIGHT: 'رحلة مباشرة', STOP: 'توقف', STOPS: 'توقفات', FLIGHT_STOPS: 'توقف/توقفات', DIFFERENT_OPTION_WARNING: 'تحذير: هذه الرحلة تغير مدة الإقامة.', FILTER_OPTIONS: 'تصفية الخيارات', AIRLINES: 'شركات الطيران', AIRPORTS: 'المطارات', NUMBER_OF_STOPS: 'عدد التوقفات', FLIGHT_OUTWARD: 'رحلة الذهاب', DEPARTURE_TIME: 'وقت المغادرة', TRAVEL_DURATION: 'مدة السفر', CHANGE_TIME: 'وقت التوقف', FLIGHT_RETURN: 'رحلة العودة', NO_FLIGHTS_FOUND: 'لم يتم العثور على رحلات.', STARTING: 'ابتداءً من', LOWEST_PRICE: 'أقل سعر', CHOOSE_YOUR_CLASS: 'اختر الدرجة:', PLUS_ONE_DAY: '+1 يوم', STOP_TIME: 'وقت التوقف', NIGHT_DEPARTURE: 'ليل (00:00 - 05:00)', MORNING_DEPARTURE: 'صباح (05:00 - 12:00)', AFTERNOON_DEPARTURE: 'ظهر (12:00 - 18:00)', EVENING_DEPARTURE: 'مساءً (18:00 - 00:00)', FLIGHTS_FOUND_1: '', FLIGHTS_FOUND_2: 'رحلات', FLIGHTS_FOUND_3: 'تم العثور عليها', SELECT_YOUR_FARE: 'اختر السعر الخاص بك' }; var PRODUCT$f = { STAY_INCLUDED: 'الإقامة متضمنة', FLIGHT_INCLUDED: 'الرحلة متضمنة', TRANSFER_INCLUDED: 'النقل متضمن', LOADING_PRICE: 'يتم حساب السعر الخاص بك.', PER_PERSON: 'لكل شخص', PER_NIGHT: 'لكل ليلة', PER_PERSON_PER_NIGHT: 'لكل شخص / لكل ليلة', BOOK_NOW: 'احجز الآن', TO_YOUR_OFFER: 'إلى عرضك', NOT_AVAILABLE: 'غير متاح', NUMBER_OF_ROOMS: 'عدد الغرف', AGE_BY_DEPARTURE_DATE: 'عمر الأطفال عند تاريخ المغادرة', YEAR: 'سنة/سنوات', APPLY: 'تطبيق', EDIT: 'تعديل', DEPARTURE: 'المغادرة', DEPARTURE_DATE: 'تاريخ المغادرة', RETURN: 'العودة', RETURN_DATE: 'تاريخ العودة', WHO_YOU_TRAVELING_WITH: 'مع من تسافر؟', TRAVEL_PERIOD: 'مدة السفر', CLOSE: 'إغلاق', NIGHTS: 'ليالي', DAYS: 'أيام' }; var MAIN$f = { PREPARING_BOOKING: 'يرجى الانتظار، يتم تجهيز حجزك', PREPARING_OFFER: 'يرجى الانتظار، يتم تجهيز عرض السعر الخاص بك', PREPARING_DOSSIER: 'يرجى الانتظار، يتم تجهيز ملفك', PRODUCT_UNAVAILABLE: 'المنتج غير متاح' }; var SHARED$f = { ROOM: 'غرفة', ROOMS: 'غرف', TOTAL_PRICE: 'السعر الإجمالي', ADULTS: 'بالغون', CHILDREN: 'أطفال', SELECT: 'اختر', SELECTED: 'تم الاختيار' }; var SIDEBAR$f = { OVERVIEW: 'الملخص', SLIDE_TOTAL_PRICE: 'المبلغ الإجمالي: ', SLIDE_DEPOSIT: 'الدفعة المقدمة: ', TRAVEL_INFO: 'معلومات السفر', TRAVELERS: 'المسافرون', TRAVELERS_ADULTS: 'بالغون', TRAVELERS_ADULT: 'بالغ', TRAVELERS_CHILDREN: 'أطفال', TRAVELERS_CHILD: 'طفل', TRAVELERS_INFANTS: 'رضع', TRAVELERS_INFANT: 'رضيع', DEPARTURE: 'رحلة الذهاب', DEPARTURE_SINGLE: 'التاريخ', ARRIVAL: 'رحلة العودة', FLIGHT: 'رحلة', ACCOMMODATION: 'الحجز شامل الإقامة', BASE_PRICE: 'السعر الأساسي', OPTIONS: 'الخيارات', INCLUDED_COSTS: 'التكاليف المضمنة', EXTRA_COSTS: 'التكاليف الإضافية', DEPOSIT: 'الدفعة المقدمة', DEPOSIT_TEXT1: 'خطوات ', DEPOSIT_TEXT2: 'المبلغ المتبقي', DEPOSIT_TEXT3: ' من ', DEPOSIT_TEXT4: ' موضحة في ', DEPOSIT_TEXT5: 'الخطوة "الملخص"', DEPOSIT_TEXT6: ' من عملية الحجز.', LUGGAGE_INCLUDED: 'الأمتعة متضمنة', DEPARTURE_FLIGHT: 'رحلة الذهاب', ARRIVAL_FLIGHT: 'رحلة العودة', FLIGHT_DEPARTURE: 'المغادرة', FLIGHT_ARRIVAL: 'الوصول', ON_REQUEST: 'حسب الطلب', CHANGES: 'التحويلات', COMMISSION: 'العمولة' }; var TRAVELERS_FORM$f = { AGE: 'العمر', TRAVELER: 'مسافر', ADULT: 'بالغ', ADULTS: 'بالغون', CHILD: 'طفل', CHILDREN: 'أطفال', GENDER: 'اللقب', GENDER_ID: 'الجنس حسب جواز السفر/بطاقة الهوية', MALE: 'السيد', MALE_GENDER: 'ذكر', FEMALE: 'السيدة', FEMALE_GENDER: 'أنثى', OTHER: 'آخر', MAIN_BOOKER: 'الحاجز الرئيسي', FIRST_NAME: 'الاسم الأول', LAST_NAME: 'اسم العائلة', BIRTHDATE: 'تاريخ الميلاد', STREET: 'الشارع', STREET_PLACEHOLDER: 'اسم الشارع', HOUSE_NUMBER: 'رقم المنزل', POST_BOX: 'صندوق بريد', ZIPCODE: 'الرمز البريدي', CITY: 'المدينة', CITY_PLACEHOLDER: 'المدينة', COUNTRY: 'الدولة', SELECT_COUNTRY: 'اختر الدولة', PHONE: 'رقم الهاتف', EMAIL: 'البريد الإلكتروني', REPEAT_EMAIL: 'أعد إدخال البريد الإلكتروني', VALIDATION_MESSAGE: 'يرجى التحقق من الحقول أدناه وملئها بشكل صحيح.', BOOK_WITH_AGENT: 'أريد الحجز عبر وكيل السفر المحلي الخاص بي', CHOOSE_OFFICE: 'أختار مكتب', PERSON: 'شخص', COUNTRIES: { BELGIUM: 'بلجيكا', NETHERLANDS: 'هولندا', FRANCE: 'فرنسا', DENMARK: 'الدنمارك', ITALY: 'إيطاليا' }, CHOOSE_AGENT_PLACEHOLDER: 'اختر وكيل السفر الخاص بك', VALIDATION: { TRAVELER_X_FIELD: 'الغرفة {0} - المسافر {1}: {2}', SINGLE_ROOM_TRAVELER_X_FIELD: 'المسافر {0}: {1}', TRAVELER_X_IS_NO_ADULT: 'الغرفة {0} - المسافر {1}: ليس بالغًا', SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT: 'المسافر {0}: ليس بالغًا', TRAVELER_X_IS_NO_CHILD: 'الغرفة {0} - المسافر {1}: ليس طفلًا', SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD: 'المسافر {0}: ليس طفلًا', NO_MAIN_BOOKER_SELECTED: 'لم يتم اختيار حاجز رئيسي', MAIN_BOOKER_FIELD: 'الحاجز الرئيسي: {0}', MAIN_BOOKER_EMAIL_IS_INVALID: 'الحاجز الرئيسي: البريد الإلكتروني غير صالح', MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: 'الحاجز الرئيسي: البريد الإلكتروني لا يطابق', AGENT_IS_REQUIRED: 'وكيل السفر مطلوب' } }; var OPTIONS_FORM$f = { NO_OPTIONS_TITLE: 'لا توجد خيارات', NO_OPTIONS_MESSAGE: 'هذه الرحلة لا تحتوي على خيارات إضافية.', UNIT_TITLE: 'الحفلة', PACKAGE: 'باقة', DAY: 'يوم', DAYS: 'أيام', NIGHT: 'ليلة', NIGHTS: 'ليالي', PER_PAX_TITLE: 'اختر الخيارات لكل مسافر', PER_BOOKING_TITLE: 'اختر الخيارات لكل حجز', PER_UNIT_TITLE: 'اختر الخيارات لكل حفلة', NONE: 'لا شيء' }; var ROOM_OPTIONS_FORM$f = { TRAVELER_GROUP: 'مجموعة المسافرين', ALTERNATIVES_TRAVELER_GROUP: 'خيارات غرف بديلة لمجموعة المسافرين', SHOW_ALTERNATIVES: 'عرض خيارات الغرف البديلة' }; var SUMMARY$f = { PERSONAL_DETAILS: 'التفاصيل الشخصية', TRAVELERS: 'المسافرون', TRAVELER: 'المسافر', ADULTS: 'بالغون', ADULT: 'بالغ', CHILDREN: 'أطفال', CHILD: 'طفل', MAIN_BOOKER: 'الحاجز الرئيسي', NOTIFICATIONS_TITLE: 'تنبيه', VALIDATE_TITLE: 'تحقق من معلوماتك', VALIDATE_TEXT_BOOKING: 'أنت على وشك تأكيد حجزك. يرجى التحقق من صحة جميع المعلومات والتأكد من تطابق الأسماء مع هويتك أو جواز السفر. هذه المعلومات نهائية ولا يمكن تعديلها.', VALIDATE_TEXT_OFFER: 'أنت على وشك طلب عرض سعر. يرجى التحقق من صحة جميع المعلومات والتأكد من تطابق الأسماء مع هويتك أو جواز السفر لتجنب أي مشاكل عند الحجز لاحقًا.', VALIDATE_TEXT_OPTION: 'إذا اخترت أخذ خيار، فهناك مهلة لممارسة هذا الخيار تعتمد على شركة الطيران. الخيار يضمن المكان وليس السعر. السعر المذكور في هذا العرض لكل شخص ويعتمد على التوافر. السعر مضمون فقط بعد إصدار التذكرة.', OPTIONS: 'الخيارات', REMARKS: 'ملاحظات', VOUCHERS: 'قسائم', VOUCHER_VALIDATE: 'تحقق من القسيمة', ADD_VOUCHER: 'إضافة قسيمة', VOUCHER_VALID: 'القسيمة صالحة', VOUCHER_INVALID: 'القسيمة غير صالحة', REDIRECT: 'إعادة التوجيه إلى مزود الدفع...', PROCESS_BOOKING: 'يرجى الانتظار، جاري معالجة حجزك' }; var CONFIRMATION$f = { TITLE_TEXT_OFFER: 'تم طلب عرضك رقم {0}', TITLE_TEXT_BOOKING: 'تم تأكيد حجزك رقم {0}', TITLE_TEXT_OPTION: 'لقد اخترت خيار على الرقم {0}.', MESSAGE_TEXT1: 'رحلتك الحلم قريبة جدًا الآن.', MESSAGE_TEXT2_OFFER: 'يقوم متخصصو السفر لدينا بمعالجة طلبك وسيتواصلون معك خلال 48 ساعة.', MESSAGE_TEXT2_BOOKING: 'يقوم متخصصو السفر لدينا بمعالجة حجزك وسيتواصلون معك خلال 48 ساعة.', MESSAGE_TEXT2_OPTION: 'تم تسجيل خيارك من قبل متخصصي السفر وسيتواصلون معك خلال 48 ساعة لتأكيد أو مناقشة خيارك.', QUESTIONS_TEXT1: 'هل لديك أي أسئلة؟ ', QUESTIONS_TEXT2: 'أخبرنا', QUESTIONS_TEXT3: '.', QUESTIONS_ALT: 'اتصل بنا', MAIL_SUBJECT: 'معلومات الحجز' }; var ERROR$f = { TRY_AGAIN: 'حاول الحجز مرة أخرى', MESSAGE_TEXT1: 'حدث خطأ أثناء تأكيد رحلتك.', MESSAGE_TEXT2: 'انقر أدناه للمحاولة مرة أخرى.', ERROR_TEXT1: 'لا يزال لا يعمل؟ ', ERROR_TEXT2: 'تأكد من إعلامنا', ERROR_TEXT3: '.', ERROR_ALT: 'اتصل بنا' }; var PRINT_OFFER_BUTTON$f = { LABEL_IDLE: 'طباعة العرض', LABEL_CREATING: 'جارٍ إنشاء العرض…', LABEL_PRINTING: 'جارٍ إنشاء ملف PDF…' }; var NAVBAR$f = { SEARCH: 'بحث' }; var LOGIN$f = { LOGIN_INTO: 'تسجيل الدخول إلى حسابك', EMAIL: 'البريد الإلكتروني', ENTER_YOUR_EMAIL: 'أدخل بريدك الإلكتروني', EMAIL_REQUIRED: 'البريد الإلكتروني مطلوب.', EMAIL_INVALID: 'البريد الإلكتروني غير صالح.', ENTER_VALID_EMAIL: 'أدخل بريدًا إلكترونيًا صالحًا.', PASSWORD: 'كلمة المرور', ENTER_YOUR_PASSWORD: 'أدخل كلمة المرور', RESET_PASSWORD_LABEL: 'كلمة المرور الجديدة', RESET_REPEAT_PASSWORD_LABEL: 'تكرار كلمة المرور', PASSWORD_REQUIRED: 'كلمة المرور مطلوبة.', INVALID_CREDENTIALS: 'البريد الإلكتروني أو كلمة المرور غير صحيحة.', LOGIN: 'تسجيل الدخول', LOGOUT: 'تسجيل الخروج', FORGOT_PASSWORD: 'هل نسيت كلمة المرور؟', LOGGING_IN: 'جاري تسجيل الدخول...', WELCOME_X: 'مرحبًا، ', FORGOT_PASSWORD_EMAIL_SUBMIT_LABEL: 'إعادة تعيين كلمة المرور', RESET_REQUESTED: 'تم طلب إعادة تعيين كلمة المرور', BACK_TO_HOMEPAGE: 'العودة إلى الصفحة الرئيسية', BACK_TO_LOGIN: 'العودة إلى تسجيل الدخول', RESET_PASSWORD_TITLE: 'إعادة تعيين كلمة المرور', PASSWORD_COMPLEXITY: 'يجب أن تحتوي كلمة المرور على رقم واحد على الأقل وحرف كبير واحد', REPEAT_PASSWORD_REQUIRED: 'يرجى تكرار كلمة المرور.', PASSWORDS_DO_NOT_MATCH: 'كلمتا المرور غير متطابقتين.', RESET_PASSWORD_SUBMIT_LABEL: 'تعديل كلمة المرور', RESET_PASSWORD_SUCCESSFUL_MESSAGE: 'تم تغيير كلمة المرور الخاصة بك. يمكنك الآن تسجيل الدخول باستخدام كلمة المرور الجديدة.', RESET_PASSWORD_INVALID_TOKEN_TITLE: 'هذا الرابط منتهي الصلاحية أو غير صالح.', RESET_PASSWORD_INVALID_TOKEN_DESCRIPTION: 'يمكنك طلب كلمة مرور جديدة بالنقر على الزر أدناه.', RECEIVED_REQUEST: 'تم استلام طلبك بنجاح', ACCOUNT_ACTIVATED_LOGIN: 'تم تفعيل حسابك الآن. انقر أدناه لتسجيل الدخول ببياناتك.' }; var QSM$g = { DEPARTURE: 'المغادرة', CHOOSE_DEPARTURE: 'اختر المغادرة', DESTINATION: 'الوجهة', CHOOSE_DESTINATION: 'اختر الوجهة', ONEWAY: 'ذهاب فقط', ROUNDTRIP: 'ذهاب وعودة', OPENJAW: 'رحلة متعددة الوجهات', MULTIDESTINATION: 'وجهات متعددة', PACKAGES: 'باقات', TRANSPORT_HOTEL: 'النقل + الفندق', ACCOMMODATION: 'الإقامة', TRANSPORTS: 'وسائل النقل', TICKET_ONLY: 'تذكرة فقط', RENT_A_CAR: 'تأجير سيارة', TRANSFERS: 'خدمات النقل', CRUISES: 'رحلات بحرية', ONE_ACCOMMODATION: 'إقامة واحدة', MULTIPLE_ACCOMMODATIONS: 'إقامات متعددة', TRAVEL_CLASS_LABEL: 'درجة السفر', TRAVEL_CLASS_PLACEHOLDER: 'اختر درجة السفر', TRAVEL_TYPE_LABEL: 'نوع السفر', TRAVEL_TYPE_PLACEHOLDER: 'اختر نوع السفر', NATIONALITY_LABEL: 'الجنسية', NATIONALITY_PLACEHOLDER: 'اختر الجنسية', TRAVELERS_LABEL: 'من المسافر؟', ADD_ROOM: 'إضافة غرفة', REMOVE_ROOM: 'إزالة غرفة', MAX_TRAVELERS_REACHED: 'لقد وصلت إلى الحد الأقصى لعدد المسافرين', ADULTS: 'البالغون', CHILDREN: 'الأطفال', BABIES: 'الرضع', CHOOSE_DATES: 'اختر التواريخ', DEPARTURE_DATE: 'تاريخ المغادرة', RETURN_DATE: 'تاريخ العودة', CONFIRM: 'تأكيد', TRAVELERS: 'المسافرون', GROUP_TOUR: 'جولة جماعية', ALL_TRAVELERS: 'جميع المسافرين' }; var SRP$f = { SHOW_MORE: 'عرض المزيد', SHOW_LESS: 'عرض أقل', NO_RESULTS: 'لم يتم العثور على نتائج.', TOTAL_RESULTS_LABEL: 'تم العثور على باقات', RESET: 'إعادة تعيين', LUGGAGEINCLUDED: 'الأمتعة مشمولة', CANCEL: 'إلغاء', APPLY: 'تطبيق', LOADING: 'جارٍ التحميل...', SEARCHRESULTCTA: 'عرض التفاصيل', SORTBY: 'ترتيب حسب', PRICE_ASC: 'السعر (من الأقل إلى الأعلى)', PRICE_DESC: 'السعر (من الأعلى إلى الأقل)', DEPARTURE_ASC: 'تاريخ المغادرة (الأقرب أولاً)', FILTERS: 'عوامل التصفية', SHOW_ITINERARY: 'عرض خط سير الرحلة', VIEW_BOOKING: 'عرض الحجز', ITINERARY_TITLE: 'ملخص رحلتك', DOSSIER_NUMBER: 'رقم الملف', PACKAGE_PRICE_PER_PERSON: 'سعر الباقة للشخص الواحد', TOTAL: 'الإجمالي', DAY_BY_DAY: 'رحلتك يوماً بيوم', START: 'البداية', END: 'النهاية', EXTENDED: 'موسع', COMPACT: 'مضغوط', LIST: 'قائمة', SELECT: 'اختيار', DEPARTURE: 'المغادرة', RETURN: 'العودة', DIRECT: 'مباشر', STOPS: 'محطات', STOP: 'محطة', STOP_TIME: 'مدة التوقف', ACCOMMODATION: 'الإقامة', VIEW_DETAILS: 'عرض التفاصيل', NIGHTS: 'ليالٍ', MORNING_RANGE: 'الصباح', AFTERNOON_RANGE: 'بعد الظهر', EVENING_RANGE: 'المساء', NIGHT_RANGE: 'الليل', DEPARTURE_RANGE: 'نطاق المغادرة', DEPARTURE_AIRPORTS: 'مطارات المغادرة', ARRIVAL_AIRPORTS: 'مطارات الوصول', PRICE: 'السعر', DEPARTURE_TIME_ASC: 'وقت المغادرة تصاعدياً', DEPARTURE_TIME_DESC: 'وقت المغادرة تنازلياً', DURATION_ASC: 'المدة تصاعدياً', DURATION_DESC: 'المدة تنازلياً', TRAVEL_GROUP: 'مجموعة المسافرين', EXCURSION: 'رحلة', LOADING_EXCURSIONS: 'جارٍ تحميل الرحلات...', LOADING_FLIGHTS: 'جارٍ تحميل الرحلات الجوية...', LOADING_ACCOMMODATIONS: 'جارٍ تحميل الإقامات...', LOADING_ITINERARY: 'جارٍ تحميل خط سير الرحلة...', LOADING_OPTIONS: 'جارٍ تحميل الخيارات...' }; var ITINERARY$f = { DAY: 'اليوم', NO_ITEMS: 'لا توجد عناصر لهذا اليوم.' }; var arJson = { STEPS: STEPS$f, INPUT: INPUT$f, FLIGHTS_FORM: FLIGHTS_FORM$f, PRODUCT: PRODUCT$f, MAIN: MAIN$f, SHARED: SHARED$f, SIDEBAR: SIDEBAR$f, TRAVELERS_FORM: TRAVELERS_FORM$f, OPTIONS_FORM: OPTIONS_FORM$f, ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$f, SUMMARY: SUMMARY$f, CONFIRMATION: CONFIRMATION$f, ERROR: ERROR$f, PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$f, NAVBAR: NAVBAR$f, LOGIN: LOGIN$f, QSM: QSM$g, SRP: SRP$f, ITINERARY: ITINERARY$f }; var STEPS$e = { PERSONAL_DETAILS: 'Personlige oplysninger', EXTRA_OPTIONS: 'Ekstra muligheder', SUMMARY: 'Oversigt', CONFIRMATION: 'Bekræftelse', ERROR: 'Booking mislykkedes', PREVIOUS: 'Forrige trin', NEXT: 'Næste trin', SUBMIT_BOOKING: 'Bekræft booking', SUBMIT_OFFER: 'Anmod om tilbud', SUBMIT_OPTION: 'Tag en option', COMPOSE: 'Opret', ROOM_OPTIONS: 'Værelsesmuligheder', FLIGHT_OPTIONS: 'Flymuligheder' }; var INPUT$e = { INCREASE: 'Forøg', DECREASE: 'Formindsk' }; var FLIGHTS_FORM$e = { OUTWARD_FLIGHTS: 'Udgående fly', OUTWARD_FLIGHT: 'Udgående fly', RETURN_FLIGHTS: 'Returfly', RETURN_FLIGHT: 'Returfly', DIRECT_FLIGHT: 'Direkte fly', STOP: 'stop', STOPS: 'stop', FLIGHT_STOPS: 'stop(s)', DIFFERENT_OPTION_WARNING: 'Advarsel: Dette fly ændrer opholdets varighed.', FILTER_OPTIONS: 'Filtrér muligheder', AIRLINES: 'Flyselskaber', AIRPORTS: 'Lufthavne', NUMBER_OF_STOPS: 'Antal stop', FLIGHT_OUTWARD: 'Udgående fly', DEPARTURE_TIME: 'Afgangstid', TRAVEL_DURATION: 'Rejsetid', CHANGE_TIME: 'Skiftetid', FLIGHT_RETURN: 'Returfly', NO_FLIGHTS_FOUND: 'Ingen fly fundet.', STARTING: 'Fra', LOWEST_PRICE: 'Laveste pris', CHOOSE_YOUR_CLASS: 'Vælg klasse:', PLUS_ONE_DAY: '+1 dag', STOP_TIME: 'Skiftetid', NIGHT_DEPARTURE: 'Nat (00:00 - 05:00)', MORNING_DEPARTURE: 'Morgen (05:00 - 12:00)', AFTERNOON_DEPARTURE: 'Eftermiddag (12:00 - 18:00)', EVENING_DEPARTURE: 'Aften (18:00 - 00:00)', FLIGHTS_FOUND_1: '', FLIGHTS_FOUND_2: 'fly', FLIGHTS_FOUND_3: 'fundet', SELECT_YOUR_FARE: 'Vælg din pris' }; var PRODUCT$e = { STAY_INCLUDED: 'Ophold inkluderet', FLIGHT_INCLUDED: 'Fly inkluderet', TRANSFER_INCLUDED: 'Transfer inkluderet', LOADING_PRICE: 'Din pris sammensættes.', PER_PERSON: 'Per person', PER_NIGHT: 'Per nat', PER_PERSON_PER_NIGHT: 'Per person / per nat', BOOK_NOW: 'Book nu', TO_YOUR_OFFER: 'Til dit tilbud', NOT_AVAILABLE: 'Ikke tilgængelig', NUMBER_OF_ROOMS: 'Antal værelser', AGE_BY_DEPARTURE_DATE: 'Børns alder på afrejsedato', YEAR: 'år', APPLY: 'Anvend', EDIT: 'Rediger', DEPARTURE: 'Afrejse', DEPARTURE_DATE: 'Afrejsedato', RETURN: 'Retur', RETURN_DATE: 'Returdato', WHO_YOU_TRAVELING_WITH: 'Hvem rejser du med?', TRAVEL_PERIOD: 'Rejseperiode', CLOSE: 'Luk', NIGHTS: 'nætter', DAYS: 'dage' }; var MAIN$e = { PREPARING_BOOKING: 'Vent venligst, vi forbereder din booking', PREPARING_OFFER: 'Vent venligst, vi forbereder dit tilbud', PREPARING_DOSSIER: 'Vent venligst, vi forbereder din sag', PRODUCT_UNAVAILABLE: 'Produkt ikke tilgængeligt' }; var SHARED$e = { ROOM: 'Værelse', ROOMS: 'Værelser', TOTAL_PRICE: 'Samlet pris', ADULTS: 'Voksne', CHILDREN: 'Børn', SELECT: 'Vælg', SELECTED: 'Valgt' }; var SIDEBAR$e = { OVERVIEW: 'Oversigt', SLIDE_TOTAL_PRICE: 'Samlet beløb: ', SLIDE_DEPOSIT: 'Depositum der skal betales: ', TRAVEL_INFO: 'Rejseinformation', TRAVELERS: 'Rejsende', TRAVELERS_ADULTS: 'voksne', TRAVELERS_ADULT: 'voksen', TRAVELERS_CHILDREN: 'børn', TRAVELERS_CHILD: 'barn', TRAVELERS_INFANTS: 'babyer', TRAVELERS_INFANT: 'baby', DEPARTURE: 'Udgående', DEPARTURE_SINGLE: 'Dato', ARRIVAL: 'Retur', FLIGHT: 'Fly', ACCOMMODATION: 'Indkvartering booket', BASE_PRICE: 'Basispris', OPTIONS: 'Valgmuligheder', INCLUDED_COSTS: 'Inkluderede omkostninger', EXTRA_COSTS: 'Ekstra omkostninger', DEPOSIT: 'Depositum der skal betales', DEPOSIT_TEXT1: 'Trinene for ', DEPOSIT_TEXT2: 'restbeløbet', DEPOSIT_TEXT3: ' af ', DEPOSIT_TEXT4: ' er beskrevet i ', DEPOSIT_TEXT5: 'trinet "Oversigt"', DEPOSIT_TEXT6: ' af bookingprocessen.', LUGGAGE_INCLUDED: 'Bagage inkluderet', DEPARTURE_FLIGHT: 'Udgående fly', ARRIVAL_FLIGHT: 'Returfly', FLIGHT_DEPARTURE: 'Afrejse', FLIGHT_ARRIVAL: 'Ankomst', ON_REQUEST: 'På forespørgsel', CHANGES: 'overførsler', COMMISSION: 'Provision' }; var TRAVELERS_FORM$e = { AGE: 'Alder', TRAVELER: 'Rejsende', ADULT: 'voksen', ADULTS: 'voksne', CHILD: 'barn', CHILDREN: 'børn', GENDER: 'Tiltaleform', GENDER_ID: 'Køn ifølge pas/ID-kort', MALE: 'Hr.', MALE_GENDER: 'Mand', FEMALE: 'Fr.', FEMALE_GENDER: 'Kvinde', OTHER: 'Andet', MAIN_BOOKER: 'Hovedbooker', FIRST_NAME: 'Fornavn', LAST_NAME: 'Efternavn', BIRTHDATE: 'Fødselsdato', STREET: 'Gade', STREET_PLACEHOLDER: 'Din gade', HOUSE_NUMBER: 'Husnummer', POST_BOX: 'Postboks', ZIPCODE: 'Postnummer', CITY: 'By', CITY_PLACEHOLDER: 'By', COUNTRY: 'Land', SELECT_COUNTRY: 'Vælg land', PHONE: 'Telefonnummer', EMAIL: 'Email', REPEAT_EMAIL: 'Gentag email', VALIDATION_MESSAGE: 'Kontroller venligst felterne nedenfor og udfyld dem korrekt.', BOOK_WITH_AGENT: 'Jeg vil booke gennem min lokale rejseagent', CHOOSE_OFFICE: 'Jeg vælger et kontor', PERSON: 'Person', COUNTRIES: { BELGIUM: 'Belgien', NETHERLANDS: 'Nederlandene', FRANCE: 'Frankrig', DENMARK: 'Danmark', ITALY: 'Italien' }, CHOOSE_AGENT_PLACEHOLDER: 'Vælg din rejseagent', VALIDATION: { TRAVELER_X_FIELD: 'Værelse {0} - Rejsende {1}: {2}', SINGLE_ROOM_TRAVELER_X_FIELD: 'Rejsende {0}: {1}', TRAVELER_X_IS_NO_ADULT: 'Værelse {0} - Rejsende {1}: er ikke voksen', SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT: 'Rejsende {0}: er ikke voksen', TRAVELER_X_IS_NO_CHILD: 'Værelse {0} - Rejsende {1}: er ikke barn', SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD: 'Rejsende {0}: er ikke barn', NO_MAIN_BOOKER_SELECTED: 'Ingen hovedbooker valgt', MAIN_BOOKER_FIELD: 'Hovedbooker: {0}', MAIN_BOOKER_EMAIL_IS_INVALID: 'Hovedbooker: email er ugyldig', MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: 'Hovedbooker: email matcher ikke', AGENT_IS_REQUIRED: 'Rejseagent er påkrævet' } }; var OPTIONS_FORM$e = { NO_OPTIONS_TITLE: 'Ingen muligheder', NO_OPTIONS_MESSAGE: 'Denne rejse har ingen ekstra muligheder.', UNIT_TITLE: 'Rejseselskab', PACKAGE: 'Pakke', DAY: 'dag', DAYS: 'dage', NIGHT: 'nat', NIGHTS: 'nætter', PER_PAX_TITLE: 'Vælg muligheder pr. rejsende', PER_BOOKING_TITLE: 'Vælg muligheder pr. booking', PER_UNIT_TITLE: 'Vælg muligheder pr. rejseselskab', NONE: 'Ingen' }; var ROOM_OPTIONS_FORM$e = { TRAVELER_GROUP: 'Rejseselskab', ALTERNATIVES_TRAVELER_GROUP: 'Alternative værelsesmuligheder for rejseselskabet', SHOW_ALTERNATIVES: 'Vis alternative værelsesmuligheder' }; var SUMMARY$e = { PERSONAL_DETAILS: 'Personlige oplysninger', TRAVELERS: 'rejsende', TRAVELER: 'rejsende', ADULTS: 'voksne', ADULT: 'voksen', CHILDREN: 'børn', CHILD: 'barn', MAIN_BOOKER: 'Hovedbooker', NOTIFICATIONS_TITLE: 'Bemærk', VALIDATE_TITLE: 'Tjek dine oplysninger', VALIDATE_TEXT_BOOKING: 'Du er ved at bekræfte din booking. Kontroller, at alle oplysninger er korrekte, og at navnene er nøjagtigt som på dit ID eller pas. Disse oplysninger kan ikke ændres.', VALIDATE_TEXT_OFFER: 'Du er ved at anmode om et tilbud. Kontroller, at alle oplysninger er korrekte, og at navnene matcher dit ID eller pas. Dette hjælper os med at undgå problemer ved senere booking.', VALIDATE_TEXT_OPTION: 'Hvis du vælger at tage en option, er der en tidsfrist for at udnytte denne option, som afhænger af flyselskabet. En option garanterer plads, ikke pris. Prisen i dette tilbud er per person og afhænger af tilgængelighed. Prisen er kun garanteret, når billetten er udstedt.', OPTIONS: 'Valgmuligheder', REMARKS: 'Bemærkninger', VOUCHERS: 'Vouchers', VOUCHER_VALIDATE: 'Valider voucher', ADD_VOUCHER: 'Tilføj voucher', VOUCHER_VALID: 'Voucher er gyldig', VOUCHER_INVALID: 'Voucher er ikke gyldig', REDIRECT: 'Omdirigerer til betalingsudbyder...', PROCESS_BOOKING: 'Vent venligst, din booking behandles' }; var CONFIRMATION$e = { TITLE_TEXT_OFFER: 'Dit tilbud med nummer {0} er blevet anmodet', TITLE_TEXT_BOOKING: 'Din booking med nummer {0} er bekræftet', TITLE_TEXT_OPTION: 'Du har taget en option på nummer {0}.', MESSAGE_TEXT1: 'Din drømmerejse er nu meget tæt på.', MESSAGE_TEXT2_OFFER: 'Vores rejseeksperter behandler din forespørgsel og kontakter dig inden for 48 timer.', MESSAGE_TEXT2_BOOKING: 'Vores rejseeksperter behandler din booking og kontakter dig inden for 48 timer.', MESSAGE_TEXT2_OPTION: 'Vores rejseeksperter har noteret din reservation og kontakter dig inden for 48 timer for at bekræfte eller drøfte din option.', QUESTIONS_TEXT1: 'Har du spørgsmål? ', QUESTIONS_TEXT2: 'Lad os vide det', QUESTIONS_TEXT3: '.', QUESTIONS_ALT: 'Kontakt os', MAIL_SUBJECT: 'Booking info' }; var ERROR$e = { TRY_AGAIN: 'Prøv at booke igen', MESSAGE_TEXT1: 'Noget gik galt under bekræftelsen af din rejse.', MESSAGE_TEXT2: 'Klik nedenfor for at prøve igen.', ERROR_TEXT1: 'Fungerer det stadig ikke? ', ERROR_TEXT2: 'Sørg for at give os besked', ERROR_TEXT3: '.', ERROR_ALT: 'Kontakt os' }; var PRINT_OFFER_BUTTON$e = { LABEL_IDLE: 'Print tilbud', LABEL_CREATING: 'Genererer tilbud…', LABEL_PRINTING: 'Genererer PDF…' }; var NAVBAR$e = { SEARCH: 'Søg' }; var LOGIN$e = { LOGIN_INTO: 'Log ind på din konto', EMAIL: 'E-mail', ENTER_YOUR_EMAIL: 'Indtast din e-mail', EMAIL_REQUIRED: 'E-mail er påkrævet.', EMAIL_INVALID: 'E-mailen er ugyldig.', ENTER_VALID_EMAIL: 'Indtast en gyldig e-mail.', PASSWORD: 'Adgangskode', ENTER_YOUR_PASSWORD: 'Indtast din adgangskode', RESET_PASSWORD_LABEL: 'Ny adgangskode', RESET_REPEAT_PASSWORD_LABEL: 'Gentag adgangskode', PASSWORD_REQUIRED: 'Adgangskode er påkrævet.', INVALID_CREDENTIALS: 'Ugyldig e-mail eller adgangskode.', LOGIN: 'Log ind', LOGOUT: 'Log ud', FORGOT_PASSWORD: 'Glemt adgangskode?', LOGGING_IN: 'Logger ind...', WELCOME_X: 'Velkommen, ', FORGOT_PASSWORD_EMAIL_SUBMIT_LABEL: 'Nulstil adgangskode', RESET_REQUESTED: 'Anmodning om nulstilling af adgangskode sendt', BACK_TO_HOMEPAGE: 'Tilbage til forsiden', BACK_TO_LOGIN: 'Tilbage til login', RESET_PASSWORD_TITLE: 'Nulstil adgangskode', PASSWORD_COMPLEXITY: 'Adgangskoden skal indeholde mindst 1 tal og 1 stort bogstav', REPEAT_PASSWORD_REQUIRED: 'Gentag venligst din adgangskode.', PASSWORDS_DO_NOT_MATCH: 'Adgangskoderne stemmer ikke overens.', RESET_PASSWORD_SUBMIT_LABEL: 'Ændr adgangskode', RESET_PASSWORD_SUCCESSFUL_MESSAGE: 'Din adgangskode er blevet ændret. Du kan nu logge ind med din nye adgangskode.', RESET_PASSWORD_INVALID_TOKEN_TITLE: 'Dette link er udløbet eller ugyldigt.', RESET_PASSWORD_INVALID_TOKEN_DESCRIPTION: 'Du kan anmode om en ny adgangskode ved at klikke på knappen nedenfor.', RECEIVED_REQUEST: 'Din anmodning er modtaget', ACCOUNT_ACTIVATED_LOGIN: 'Din konto er nu aktiv. Klik nedenfor for at logge ind med dine oplysninger.' }; var QSM$f = { DEPARTURE: 'Afgang', CHOOSE_DEPARTURE: 'Vælg afgang', DESTINATION: 'Destination', CHOOSE_DESTINATION: 'Vælg destination', ONEWAY: 'Enkeltrejse', ROUNDTRIP: 'Returrejse', OPENJAW: 'Open-jaw', MULTIDESTINATION: 'Flere destinationer', PACKAGES: 'Pakkerejser', TRANSPORT_HOTEL: 'Transport + hotel', ACCOMMODATION: 'Indkvartering', TRANSPORTS: 'Transport', TICKET_ONLY: 'Kun billet', RENT_A_CAR: 'Lej en bil', TRANSFERS: 'Transportservice', CRUISES: 'Krydstogter', ONE_ACCOMMODATION: 'Én indkvartering', MULTIPLE_ACCOMMODATIONS: 'Flere indkvarteringer', TRAVEL_CLASS_LABEL: 'Rejseklasse', TRAVEL_CLASS_PLACEHOLDER: 'Vælg rejseklasse', TRAVEL_TYPE_LABEL: 'Rejsetype', TRAVEL_TYPE_PLACEHOLDER: 'Vælg rejsetype', NATIONALITY_LABEL: 'Nationalitet', NATIONALITY_PLACEHOLDER: 'Vælg nationalitet', TRAVELERS_LABEL: 'Hvem rejser?', ADD_ROOM: 'Tilføj værelse', REMOVE_ROOM: 'Fjern værelse', MAX_TRAVELERS_REACHED: 'Du har nået det maksimale antal rejsende', ADULTS: 'Voksne', CHILDREN: 'Børn', BABIES: 'Spædbørn', CHOOSE_DATES: 'Vælg datoer', DEPARTURE_DATE: 'Afrejsedato', RETURN_DATE: 'Hjemrejsedato', CONFIRM: 'Bekræft', TRAVELERS: 'Rejsende', GROUP_TOUR: 'Grupperejse', ALL_TRAVELERS: 'Alle rejsende' }; var SRP$e = { SHOW_MORE: 'Vis flere', SHOW_LESS: 'Vis færre', NO_RESULTS: 'Ingen resultater fundet.', TOTAL_RESULTS_LABEL: 'Fundne pakker', RESET: 'Nulstil', LUGGAGEINCLUDED: 'Bagage inkluderet', CANCEL: 'Annuller', APPLY: 'Anvend', LOADING: 'Indlæser...', SEARCHRESULTCTA: 'Se detaljer', SORTBY: 'Sorter efter', PRICE_ASC: 'Pris (lav til høj)', PRICE_DESC: 'Pris (høj til lav)', DEPARTURE_ASC: 'Afrejsedato (snarest først)', FILTERS: 'Filtre', SHOW_ITINERARY: 'Vis rejseplan', VIEW_BOOKING: 'Se booking', ITINERARY_TITLE: 'Din rejseoversigt', DOSSIER_NUMBER: 'Sagsnummer', PACKAGE_PRICE_PER_PERSON: 'pakkepris pr. person', TOTAL: 'i alt', DAY_BY_DAY: 'Din rejse dag for dag', START: 'start', END: 'slut', EXTENDED: 'Udvidet', COMPACT: 'Kompakt', LIST: 'Liste', SELECT: 'Vælg', DEPARTURE: 'Afrejse', RETURN: 'Hjemrejse', DIRECT: 'Direkte', STOPS: 'stop', STOP: 'stop', STOP_TIME: 'Skiftetid', ACCOMMODATION: 'Indkvartering', VIEW_DETAILS: 'Se detaljer', NIGHTS: 'nætter', MORNING_RANGE: 'Morgen', AFTERNOON_RANGE: 'Eftermiddag', EVENING_RANGE: 'Aften', NIGHT_RANGE: 'Nat', DEPARTURE_RANGE: 'Afgangstidspunkt', DEPARTURE_AIRPORTS: 'Afgangslufthavne', ARRIVAL_AIRPORTS: 'Ankomstlufthavne', PRICE: 'Pris', DEPARTURE_TIME_ASC: 'Afgangstid stigende', DEPARTURE_TIME_DESC: 'Afgangstid faldende', DURATION_ASC: 'Varighed stigende', DURATION_DESC: 'Varighed faldende', TRAVEL_GROUP: 'Rejseselskab', EXCURSION: 'Udflugt', LOADING_EXCURSIONS: 'Indlæser udflugter...', LOADING_FLIGHTS: 'Indlæser fly...', LOADING_ACCOMMODATIONS: 'Indlæser indkvarteringer...', LOADING_ITINERARY: 'Indlæser rejseplan...', LOADING_OPTIONS: 'Indlæser muligheder...' }; var ITINERARY$e = { DAY: 'Dag', NO_ITEMS: 'Ingen elementer for denne dag.' }; var daJson = { STEPS: STEPS$e, INPUT: INPUT$e, FLIGHTS_FORM: FLIGHTS_FORM$e, PRODUCT: PRODUCT$e, MAIN: MAIN$e, SHARED: SHARED$e, SIDEBAR: SIDEBAR$e, TRAVELERS_FORM: TRAVELERS_FORM$e, OPTIONS_FORM: OPTIONS_FORM$e, ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$e, SUMMARY: SUMMARY$e, CONFIRMATION: CONFIRMATION$e, ERROR: ERROR$e, PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$e, NAVBAR: NAVBAR$e, LOGIN: LOGIN$e, QSM: QSM$f, SRP: SRP$e, ITINERARY: ITINERARY$e }; var STEPS$d = { PERSONAL_DETAILS: 'Persönliche Daten', EXTRA_OPTIONS: 'Zusatzoptionen', SUMMARY: 'Übersicht', CONFIRMATION: 'Bestätigung', ERROR: 'Buchung fehlgeschlagen', PREVIOUS: 'Vorheriger Schritt', NEXT: 'Nächster Schritt', SUBMIT_BOOKING: 'Buchung bestätigen', SUBMIT_OFFER: 'Angebot anfordern', SUBMIT_OPTION: 'Option nehmen', COMPOSE: 'Erstellen', ROOM_OPTIONS: 'Zimmeroptionen', FLIGHT_OPTIONS: 'Flugoptionen' }; var INPUT$d = { INCREASE: 'Erhöhen', DECREASE: 'Verringern' }; var FLIGHTS_FORM$d = { OUTWARD_FLIGHTS: 'Hinflüge', OUTWARD_FLIGHT: 'Hinflug', RETURN_FLIGHTS: 'Rückflüge', RETURN_FLIGHT: 'Rückflug', DIRECT_FLIGHT: 'Direktflug', STOP: 'Stopp', STOPS: 'Stopps', FLIGHT_STOPS: 'Stopp(s)', DIFFERENT_OPTION_WARNING: 'Warnung: Dieser Flug ändert die Aufenthaltsdauer.', FILTER_OPTIONS: 'Filteroptionen', AIRLINES: 'Fluggesellschaften', AIRPORTS: 'Flughäfen', NUMBER_OF_STOPS: 'Anzahl der Stopps', FLIGHT_OUTWARD: 'Hinflug', DEPARTURE_TIME: 'Abflugzeit', TRAVEL_DURATION: 'Reisedauer', CHANGE_TIME: 'Umsteigezeit', FLIGHT_RETURN: 'Rückflug', NO_FLIGHTS_FOUND: 'Keine Flüge gefunden.', STARTING: 'Ab', LOWEST_PRICE: 'Niedrigster Preis', CHOOSE_YOUR_CLASS: 'Wählen Sie Ihre Klasse:', PLUS_ONE_DAY: '+1 Tag', STOP_TIME: 'Umsteigezeit', NIGHT_DEPARTURE: 'Nacht (00:00 - 05:00)', MORNING_DEPARTURE: 'Morgen (05:00 - 12:00)', AFTERNOON_DEPARTURE: 'Nachmittag (12:00 - 18:00)', EVENING_DEPARTURE: 'Abend (18:00 - 00:00)', FLIGHTS_FOUND_1: '', FLIGHTS_FOUND_2: 'Flüge', FLIGHTS_FOUND_3: 'gefunden', SELECT_YOUR_FARE: 'Wählen Sie Ihren Tarif' }; var PRODUCT$d = { STAY_INCLUDED: 'Aufenthalt inbegriffen', FLIGHT_INCLUDED: 'Flug inbegriffen', TRANSFER_INCLUDED: 'Transfer inbegriffen', LOADING_PRICE: 'Ihr Preis wird berechnet.', PER_PERSON: 'Pro Person', PER_NIGHT: 'Pro Nacht', PER_PERSON_PER_NIGHT: 'Pro Person / pro Nacht', BOOK_NOW: 'Jetzt buchen', TO_YOUR_OFFER: 'Zu Ihrem Angebot', NOT_AVAILABLE: 'Nicht verfügbar', NUMBER_OF_ROOMS: 'Anzahl der Zimmer', AGE_BY_DEPARTURE_DATE: 'Alter der Kinder am Abreisedatum', YEAR: 'Jahr(e)', APPLY: 'Anwenden', EDIT: 'Bearbeiten', DEPARTURE: 'Abreise', DEPARTURE_DATE: 'Abreisedatum', RETURN: 'Rückreise', RETURN_DATE: 'Rückreisedatum', WHO_YOU_TRAVELING_WITH: 'Mit wem reisen Sie?', TRAVEL_PERIOD: 'Reisezeitraum', CLOSE: 'Schließen', NIGHTS: 'Nächte', DAYS: 'Tage' }; var MAIN$d = { PREPARING_BOOKING: 'Bitte warten, wir bereiten Ihre Buchung vor', PREPARING_OFFER: 'Bitte warten, wir bereiten Ihr Angebot vor', PREPARING_DOSSIER: 'Bitte warten, wir bereiten Ihre Unterlagen vor', PRODUCT_UNAVAILABLE: 'Produkt nicht verfügbar' }; var SHARED$d = { ROOM: 'Zimmer', ROOMS: 'Zimmer', TOTAL_PRICE: 'Gesamtpreis', ADULTS: 'Erwachsene', CHILDREN: 'Kinder', SELECT: 'Auswählen', SELECTED: 'Ausgewählt' }; var SIDEBAR$d = { OVERVIEW: 'Übersicht', SLIDE_TOTAL_PRICE: 'Gesamtbetrag: ', SLIDE_DEPOSIT: 'Zu zahlende Anzahlung: ', TRAVEL_INFO: 'Reiseinformationen', TRAVELERS: 'Reisende', TRAVELERS_ADULTS: 'Erwachsene', TRAVELERS_ADULT: 'Erwachsener', TRAVELERS_CHILDREN: 'Kinder', TRAVELERS_CHILD: 'Kind', TRAVELERS_INFANTS: 'Babys', TRAVELERS_INFANT: 'Baby', DEPARTURE: 'Hinflug', DEPARTURE_SINGLE: 'Datum', ARRIVAL: 'Rückflug', FLIGHT: 'Flug', ACCOMMODATION: 'Unterkunft gebucht', BASE_PRICE: 'Grundpreis', OPTIONS: 'Optionen', INCLUDED_COSTS: 'Inklusive Kosten', EXTRA_COSTS: 'Zusatzkosten', DEPOSIT: 'Zu zahlende Anzahlung', DEPOSIT_TEXT1: 'Die Schritte für die ', DEPOSIT_TEXT2: 'Restzahlung', DEPOSIT_TEXT3: ' von ', DEPOSIT_TEXT4: ' sind beschrieben in ', DEPOSIT_TEXT5: 'Schritt "Übersicht"', DEPOSIT_TEXT6: ' des Buchungsprozesses.', LUGGAGE_INCLUDED: 'Gepäck inbegriffen', DEPARTURE_FLIGHT: 'Hinflug', ARRIVAL_FLIGHT: 'Rückflug', FLIGHT_DEPARTURE: 'Abflug', FLIGHT_ARRIVAL: 'Ankunft', ON_REQUEST: 'Auf Anfrage', CHANGES: 'Transfers', COMMISSION: 'Provision' }; var TRAVELERS_FORM$d = { AGE: 'Alter', TRAVELER: 'Reisender', ADULT: 'Erwachsener', ADULTS: 'Erwachsene', CHILD: 'Kind', CHILDREN: 'Kinder', GENDER: 'Anrede', GENDER_ID: 'Geschlecht laut Reisepass/Personalausweis', MALE: 'Herr', MALE_GENDER: 'Männlich', FEMALE: 'Frau', FEMALE_GENDER: 'Weiblich', OTHER: 'Andere', MAIN_BOOKER: 'Hauptbucher', FIRST_NAME: 'Vorname', LAST_NAME: 'Nachname', BIRTHDATE: 'Geburtsdatum', STREET: 'Straße', STREET_PLACEHOLDER: 'Ihre Straße', HOUSE_NUMBER: 'Hausnummer', POST_BOX: 'Postfach', ZIPCODE: 'Postleitzahl', CITY: 'Stadt', CITY_PLACEHOLDER: 'Stadt', COUNTRY: 'Land', SELECT_COUNTRY: 'Land auswählen', PHONE: 'Telefonnummer', EMAIL: 'E-Mail', REPEAT_EMAIL: 'E-Mail wiederholen', VALIDATION_MESSAGE: 'Bitte überprüfen Sie die untenstehenden Felder und füllen Sie diese korrekt aus.', BOOK_WITH_AGENT: 'Ich möchte über meinen lokalen Reisebüro buchen', CHOOSE_OFFICE: 'Ich wähle ein Büro', PERSON: 'Person', COUNTRIES: { BELGIUM: 'Belgien', NETHERLANDS: 'Niederlande', FRANCE: 'Frankreich', DENMARK: 'änemark', ITALY: 'Italien' }, CHOOSE_AGENT_PLACEHOLDER: 'Wählen Sie Ihren Reiseberater', VALIDATION: { TRAVELER_X_FIELD: 'Zimmer {0} - Reisender {1}: {2}', SINGLE_ROOM_TRAVELER_X_FIELD: 'Reisender {0}: {1}', TRAVELER_X_IS_NO_ADULT: 'Zimmer {0} - Reisender {1}: ist kein Erwachsener', SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT: 'Reisender {0}: ist kein Erwachsener', TRAVELER_X_IS_NO_CHILD: 'Zimmer {0} - Reisender {1}: ist kein Kind', SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD: 'Reisender {0}: ist kein Kind', NO_MAIN_BOOKER_SELECTED: 'Kein Hauptbucher ausgewählt', MAIN_BOOKER_FIELD: 'Hauptbucher: {0}', MAIN_BOOKER_EMAIL_IS_INVALID: 'Hauptbucher: E-Mail ist ungültig', MAIN_BOOKER_EMAIL_DOES_NOT_MATCH: 'Hauptbucher: E-Mail stimmt nicht überein', AGENT_IS_REQUIRED: 'Reisebüro ist erforderlich' } }; var OPTIONS_FORM$d = { NO_OPTIONS_TITLE: 'Keine Optionen', NO_OPTIONS_MESSAGE: 'Diese Reise hat keine zusätzlichen Optionen.', UNIT_TITLE: 'Reisegruppe', PACKAGE: 'Paket', DAY: 'Tag', DAYS: 'Tage', NIGHT: 'Nacht', NIGHTS: 'Nächte', PER_PAX_TITLE: 'Optionen pro Reisender wählen', PER_BOOKING_TITLE: 'Optionen pro Buchung wählen', PER_UNIT_TITLE: 'Optionen pro Gruppe wählen', NONE: 'Keine' }; var ROOM_OPTIONS_FORM$d = { TRAVELER_GROUP: 'Reisegruppe', ALTERNATIVES_TRAVELER_GROUP: 'Alternative Zimmeroptionen für die Reisegruppe', SHOW_ALTERNATIVES: 'Alternative Zimmeroptionen anzeigen' }; var SUMMARY$d = { PERSONAL_DETAILS: 'Persönliche Daten', TRAVELERS: 'Reisende', TRAVELER: 'Reisender', ADULTS: 'Erwachsene', ADULT: 'Erwachsener', CHILDREN: 'Kinder', CHILD: 'Kind', MAIN_BOOKER: 'Hauptbucher', NOTIFICATIONS_TITLE: 'Achtung', VALIDATE_TITLE: 'Überprüfen Sie Ihre Angaben', VALIDATE_TEXT_BOOKING: 'Sie sind dabei, Ihre Buchung zu bestätigen. Bitte prüfen Sie, dass alle Angaben korrekt sind und die Namen genau wie in Ihrem Ausweis oder Reisepass angegeben sind. Diese Angaben sind endgültig und können nicht geändert werden.', VALIDATE_TEXT_OFFER: 'Sie sind dabei, ein Angebot anzufordern. Bitte prüfen Sie, dass alle Angaben korrekt sind und die Namen genau wie in Ihrem Ausweis oder Reisepass angegeben sind. Dies hilft uns, Probleme bei einer späteren Buchung zu vermeiden.', VALIDATE_TEXT_OPTION: 'Wenn Sie eine Option wählen, gibt es eine Frist zur Ausübung dieser Option, abhängig von der Fluggesellschaft. Eine Option garantiert einen Platz, nicht den Preis. Der Preis in diesem Angebot ist pro Person und abhängig von der Verfügbarkeit. Der Preis ist erst nach Ausstellung des Tickets garantiert.', OPTIONS: 'Optionen', REMARKS: 'Bemerkungen', VOUCHERS: 'Gutscheine', VOUCHER_VALIDATE: 'Gutschein prüfen', ADD_VOUCHER: 'Gutschein hinzufügen', VOUCHER_VALID: 'Gutschein ist gültig', VOUCHER_INVALID: 'Gutschein ist ungültig', REDIRECT: 'Weiterleitung zum Zahlungsanbieter...', PROCESS_BOOKING: 'Bitte warten Sie, Ihre Buchung wird bearbeitet' }; var CONFIRMATION$d = { TITLE_TEXT_OFFER: 'Ihr Angebot mit der Nummer {0} wurde angefordert', TITLE_TEXT_BOOKING: 'Ihre Buchung mit der Nummer {0} wurde bestätigt', TITLE_TEXT_OPTION: 'Sie haben eine Option auf die Nummer {0} genommen.', MESSAGE_TEXT1: 'Ihre Traumreise ist nun zum Greifen nah.', MESSAGE_TEXT2_OFFER: 'Unsere Reisespezialisten bearbeiten Ihre Anfrage und kontaktieren Sie innerhalb von 48 Stunden.', MESSAGE_TEXT2_BOOKING: 'Unsere Reisespezialisten bearbeiten Ihre Buchung und kontaktieren Sie innerhalb von 48 Stunden.', MESSAGE_TEXT2_OPTION: 'Unsere Reisespezialisten haben Ihre Reservierung notiert und werden Sie innerhalb von 48 Stunden kontaktieren, um Ihre Option zu bestätigen oder zu besprechen.', QUESTIONS_TEXT1: 'Haben Sie Fragen? ', QUESTIONS_TEXT2: 'Lassen Sie es uns wissen', QUESTIONS_TEXT3: '.', QUESTIONS_ALT: 'Kontaktieren Sie uns', MAIL_SUBJECT: 'Buchungsinformationen' }; var ERROR$d = { TRY_AGAIN: 'Erneut buchen', MESSAGE_TEXT1: 'Beim Bestätigen Ihrer Reise ist etwas schiefgelaufen.', MESSAGE_TEXT2: 'Klicken Sie unten, um es erneut zu versuchen.', ERROR_TEXT1: 'Funktioniert es immer noch nicht? ', ERROR_TEXT2: 'Stellen Sie sicher, dass Sie uns informieren', ERROR_TEXT3: '.', ERROR_ALT: 'Kontaktieren Sie uns' }; var PRINT_OFFER_BUTTON$d = { LABEL_IDLE: 'Angebot drucken', LABEL_CREATING: 'Angebot wird erstellt…', LABEL_PRINTING: 'PDF wird erstellt…' }; var NAVBAR$d = { SEARCH: 'Suche' }; var LOGIN$d = { LOGIN_INTO: 'Melden Sie sich in Ihrem Konto an', EMAIL: 'E-Mail', ENTER_YOUR_EMAIL: 'Geben Sie Ihre E-Mail ein', EMAIL_REQUIRED: 'E-Mail ist erforderlich.', EMAIL_INVALID: 'Die E-Mail ist ungültig.', ENTER_VALID_EMAIL: 'Geben Sie eine gültige E-Mail ein.', PASSWORD: 'Passwort', ENTER_YOUR_PASSWORD: 'Geben Sie Ihr Passwort ein', RESET_PASSWORD_LABEL: 'Neues Passwort', RESET_REPEAT_PASSWORD_LABEL: 'Passwort wiederholen', PASSWORD_REQUIRED: 'Passwort ist erforderlich.', INVALID_CREDENTIALS: 'Ungültige E-Mail oder Passwort.', LOGIN: 'Anmelden', LOGOUT: 'Abmelden', FORGOT_PASSWORD: 'Passwort vergessen?', LOGGING_IN: 'Anmeldung läuft...', WELCOME_X: 'Willkommen, ', FORGOT_PASSWORD_EMAIL_SUBMIT_LABEL: 'Passwort zurücksetzen', RESET_REQUESTED: 'Passwort-Zurücksetzung angefordert', BACK_TO_HOMEPAGE: 'Zurück zur Startseite', BACK_TO_LOGIN: 'Zurück zum Login', RESET_PASSWORD_TITLE: 'Passwort zurücksetzen', PASSWORD_COMPLEXITY: 'Das Passwort muss mindestens 1 Zahl und 1 Großbuchstaben enthalten', REPEAT_PASSWORD_REQUIRED: 'Bitte wiederholen Sie Ihr Passwort.', PASSWORDS_DO_NOT_MATCH: 'Passwörter stimmen nicht überein.', RESET_PASSWORD_SUBMIT_LABEL: 'Passwort ändern', RESET_PASSWORD_SUCCESSFUL_MESSAGE: 'Ihr Passwort wurde geändert. Sie können sich nun mit Ihrem neuen Passwort anmelden.', RESET_PASSWORD_INVALID_TOKEN_TITLE: 'Dieser Link ist abgelaufen oder ungültig.', RESET_PASSWORD_INVALID_TOKEN_DESCRIPTION: 'Sie können ein neues Passwort anfordern, indem Sie auf die Schaltfläche unten klicken.', RECEIVED_REQUEST: 'Ihre Anfrage wurde erfolgreich erhalten', ACCOUNT_ACTIVATED_LOGIN: 'Ihr Konto ist jetzt aktiv. Klicken Sie unten, um sich mit Ihren Daten anzumelden.' }; var QSM$e = { DEPARTURE: 'Abflug', CHOOSE_DEPARTURE: 'Abflug wählen', DESTINATION: 'Ziel', CHOOSE_DESTINATION: 'Ziel auswählen', ONEWAY: 'Einfache Fahrt', ROUNDTRIP: 'Hin- und Rückflug', OPENJAW: 'Open-Jaw', MULTIDESTINATION: 'Mehrere Reiseziele', PACKAGES: 'Reisepakete', TRANSPORT_HOTEL: 'Transport + Hotel', ACCOMMODATION: 'Unterkunft', TRANSPORTS: 'Transport', TICKET_ONLY: 'Nur Ticket', RENT_A_CAR: 'Mietwagen', TRANSFERS: 'Transfers', CRUISES: 'Kreuzfahrten', ONE_ACCOMMODATION: 'Eine Unterkunft', MULTIPLE_ACCOMMODATIONS: 'Mehrere Unterkünfte', TRAVEL_CLASS_LABEL: 'Reiseklasse', TRAVEL_CLASS_PLACEHOLDER: 'Reiseklasse auswählen', TRAVEL_TYPE_LABEL: 'Reiseart', TRAVEL_TYPE_PLACEHOLDER: 'Reiseart auswählen', NATIONALITY_LABEL: 'Staatsangehörigkeit', NATIONALITY_PLACEHOLDER: 'Staatsangehörigkeit auswählen', TRAVELERS_LABEL: 'Wer reist?', ADD_ROOM: 'Zimmer hinzufügen', REMOVE_ROOM: 'Zimmer entfernen', MAX_TRAVELERS_REACHED: 'Sie haben die maximale Anzahl an Reisenden erreicht', ADULTS: 'Erwachsene', CHILDREN: 'Kinder', BABIES: 'Babys', CHOOSE_DATES: 'Daten auswählen', DEPARTURE_DATE: 'Abreisedatum', RETURN_DATE: 'Rückreisedatum', CONFIRM: 'Bestätigen', TRAVELERS: 'Reisende', GROUP_TOUR: 'Gruppentour', ALL_TRAVELERS: 'Alle Reisenden' }; var SRP$d = { SHOW_MORE: 'Mehr anzeigen', SHOW_LESS: 'Weniger anzeigen', NO_RESULTS: 'Keine Ergebnisse gefunden.', TOTAL_RESULTS_LABEL: 'Gefundene Pakete', RESET: 'Zurücksetzen', LUGGAGEINCLUDED: 'Gepäck inklusive', CANCEL: 'Abbrechen', APPLY: 'Anwenden', LOADING: 'Wird geladen...', SEARCHRESULTCTA: 'Details anzeigen', SORTBY: 'Sortieren nach', PRICE_ASC: 'Preis (aufsteigend)', DEPARTURE_TIME_ASC: 'Abflugzeit aufsteigend', DEPARTURE_TIME_DESC: 'Abflugzeit absteigend', DURATION_ASC: 'Dauer aufsteigend', DURATION_DESC: 'Dauer absteigend', PRICE_DESC: 'Preis (absteigend)', DEPARTURE_ASC: 'Abreisedatum (früheste zuerst)', FILTERS: 'Filter', SHOW_ITINERARY: 'Reiseverlauf anzeigen', VIEW_BOOKING: 'Buchung anzeigen', ITINERARY_TITLE: 'Ihre Reiseübersicht', DOSSIER_NUMBER: 'Vorgangsnummer', PACKAGE_PRICE_PER_PERSON: 'Paketpreis pro Person', TOTAL: 'Gesamt', DAY_BY_DAY: 'Ihre Reise Tag für Tag', START: 'Start', END: 'Ende', EXTENDED: 'Erweitert', COMPACT: 'Kompakt', LIST: 'Liste', SELECT: 'Auswählen', DEPARTURE: 'Abreise', RETURN: 'Rückreise', DIRECT: 'Direkt', STOPS: 'Stopps', STOP: 'Stopp', STOP_TIME: 'Umsteigezeit', ACCOMMODATION: 'Unterkunft', VIEW_DETAILS: 'Details anzeigen', NIGHTS: 'Nächte', MORNING_RANGE: 'Morgen', AFTERNOON_RANGE: 'Nachmittag', EVENING_RANGE: 'Abend', NIGHT_RANGE: 'Nacht', DEPARTURE_RANGE: 'Abflugzeitraum', DEPARTURE_AIRPORTS: 'Abflughäfen', ARRIVAL_AIRPORTS: 'Ankunftsflughäfen', PRICE: 'Preis', TRAVEL_GROUP: 'Reisegruppe', EXCURSION: 'Ausflug', LOADING_EXCURSIONS: 'Lade Ausflüge...', LOADING_FLIGHTS: 'Lade Flüge...', LOADING_ACCOMMODATIONS: 'Lade Unterkünfte...', LOADING_ITINERARY: 'Lade Reiseverlauf...', LOADING_OPTIONS: 'Lade Optionen...' }; var ITINERARY$d = { DAY: 'Tag', NO_ITEMS: 'Keine Elemente für diesen Tag.' }; var deJson = { STEPS: STEPS$d, INPUT: INPUT$d, FLIGHTS_FORM: FLIGHTS_FORM$d, PRODUCT: PRODUCT$d, MAIN: MAIN$d, SHARED: SHARED$d, SIDEBAR: SIDEBAR$d, TRAVELERS_FORM: TRAVELERS_FORM$d, OPTIONS_FORM: OPTIONS_FORM$d, ROOM_OPTIONS_FORM: ROOM_OPTIONS_FO