{"version":3,"file":"app.js","mappings":"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","sources":["webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/external var \"Vue\"","webpack://app/./Scripts/Config/DataWebConfig.ts","webpack://app/external var \"VueRouter\"","webpack://app/./Scripts/Config/RouteConfig.ts","webpack://app/external var \"Vuex\"","webpack://app/./Scripts/Stores/NewsletterStore.ts","webpack://app/external var \"Axios\"","webpack://app/./Scripts/Stores/SearchStore.ts","webpack://app/./Scripts/Config/StoreConfig.ts","webpack://app/./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack://app/./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack://app/./node_modules/vue-property-decorator/lib/decorators/Prop.js","webpack://app/./node_modules/vue-property-decorator/lib/decorators/Watch.js","webpack://app/./Scripts/Common/Localizer.ts","webpack://app/./Scripts/Common/FormHelper.ts","webpack://app/./Scripts/Infrastructure/CookieHelper.ts","webpack://app/./Scripts/Infrastructure/FormLegacyHelper.ts","webpack://app/./Scripts/Infrastructure/GTagHelper.ts","webpack://app/./Scripts/Components/NewsletterSubscribe/NewsletterSubscribe.ts","webpack://app/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://app/./Scripts/Components/NewsletterSubscribe/NewsletterSubscribe.vue","webpack://app/./Scripts/Components/NewsletterSubscribe/NewsletterSubscribe.vue?0265","webpack://app/./Scripts/Components/NewsletterUnsubscribe/NewsletterUnsubscribe.vue?9d95","webpack://app/./Scripts/Components/NewsletterUnsubscribe/NewsletterUnsubscribe.ts","webpack://app/./Scripts/Components/NewsletterUnsubscribe/NewsletterUnsubscribe.vue","webpack://app/./Scripts/Components/Search/HeaderSearchBox.vue?02d2","webpack://app/./Scripts/Components/Search/HeaderSearchBox.ts","webpack://app/./Scripts/Components/Search/HeaderSearchBox.vue","webpack://app/./Scripts/Components/Search/PageSearchBox.vue?3649","webpack://app/./Scripts/Components/Search/PageSearchBox.ts","webpack://app/./Scripts/Components/Search/PageSearchBox.vue","webpack://app/./Scripts/Components/Search/VisualSearchBox.vue?13c1","webpack://app/./Scripts/Components/Search/VisualSearchBox.ts","webpack://app/./Scripts/Components/Search/VisualSearchBox.vue","webpack://app/./Scripts/Config/AppConfig.ts","webpack://app/./Scripts/Infrastructure/ResponsiveHelper.ts","webpack://app/./Scripts/Pages/BasePage.ts","webpack://app/./Scripts/Common/DataHelper.ts","webpack://app/./Scripts/Main.ts","webpack://app/./Scripts/Pages/DataWebPage.ts","webpack://app/./Scripts/Pages/CookieTermsPage.ts","webpack://app/./Scripts/Pages/DestinationDetailPage.ts","webpack://app/./Scripts/Pages/MagazinePage.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = Vue;","import Vue from \"vue\";\r\n\r\nexport default {\r\n install: (Vue, options) => {\r\n // Add DataWeb components here\r\n }\r\n};","const __WEBPACK_NAMESPACE_OBJECT__ = VueRouter;","import Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\n\r\nVue.use(VueRouter);\r\n\r\nexport const router = new VueRouter({\r\n mode: \"history\",\r\n routes: [\r\n // Register app routes here\r\n ]\r\n});","const __WEBPACK_NAMESPACE_OBJECT__ = Vuex;","const state = {\r\n isNewsletterSubscribeVisible: false\r\n};\r\n\r\nconst getters = {\r\n isNewsletterSubscribeVisible: state => state.isNewsletterSubscribeVisible\r\n};\r\n\r\nconst mutations = {\r\n setNewsletterSubscribeVisible: (state, data) => state.isNewsletterSubscribeVisible = data\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations\r\n};","const __WEBPACK_NAMESPACE_OBJECT__ = Axios;","import Axios from \"axios\";\r\n\r\nconst state = {\r\n suggestions: []\r\n};\r\n\r\nconst getters = {\r\n suggestions: state => state.suggestions\r\n};\r\n\r\nconst mutations = {\r\n setSuggestions: (state, data) => state.suggestions = data\r\n};\r\n\r\nconst actions = {\r\n getSuggestions: async (context, data) => {\r\n return await Axios.post((window).App.routes.Search_GetSuggestions, data);\r\n }\r\n};\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport NewsletterStore from \"@Scripts/Stores/NewsletterStore\";\r\nimport SearchStore from \"@Scripts/Stores/SearchStore\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport const store = new Vuex.Store({});\r\n\r\nstore.registerModule(\"newsletterStore\", NewsletterStore);\r\nstore.registerModule(\"searchStore\", SearchStore);","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n !options.hasOwnProperty('type') &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n","import Axios from \"axios\";\r\n\r\nexport default class Localizer {\r\n static cultureResources: Map = new Map();\r\n static defaultCulture: string = null;\r\n\r\n static async init(configuration: LocalizerConfiguration) {\r\n this.defaultCulture = configuration.defaultCulture;\r\n\r\n configuration.resourceCultures = configuration.resourceCultures ?? [configuration.defaultCulture];\r\n\r\n for (const resourceCulture of configuration.resourceCultures) {\r\n this.cultureResources.set(resourceCulture, (await Axios.get(\"/localization/resource/getresources\", { params: { culture: resourceCulture, contexts: configuration.resourceContexts.join(\",\") } })).data);\r\n }\r\n }\r\n\r\n static get(name: string, ...values: any[]): string {\r\n return this.getByCulture(name, this.defaultCulture, values);\r\n }\r\n\r\n static getByCulture(name: string, culture: string, ...values: any[]): string {\r\n let placeHolder: string = name.split(\".\").pop();\r\n\r\n let resources: any = this.cultureResources.get(culture);\r\n\r\n if (!resources) {\r\n // Culture not found\r\n return placeHolder;\r\n }\r\n\r\n if (resources[name] === undefined) {\r\n // Resource not found\r\n this.trackMissingResource(name, window.location.href);\r\n return placeHolder;\r\n }\r\n\r\n if (resources[name] === null || resources[name] === '') {\r\n // Resource null or empty\r\n return placeHolder;\r\n }\r\n\r\n let resource: string = resources[name];\r\n\r\n for (var i = 0; i < values.length; i++) {\r\n resource = resource.replace(new RegExp(\"\\\\{\" + i + \"\\\\}\", \"g\"), values[i]);\r\n }\r\n\r\n return resource;\r\n }\r\n\r\n static trackMissingResource(name: string, url: string) {\r\n Axios.post(\"/localization/resource/trackmissingresource\", { name: name, url: url });\r\n }\r\n}\r\n\r\nexport interface LocalizerConfiguration {\r\n defaultCulture: string;\r\n resourceContexts: string[];\r\n resourceCultures?: string[];\r\n}","import Vue from \"vue\";\r\n\r\nexport default class FormHelper {\r\n static initRuntimeProperties(controls: any[], parentControl: any = null) {\r\n // Init runtime properties\r\n for (let control of controls) {\r\n Vue.set(control, \"fullName\", parentControl ? parentControl.fullName + \".\" + control.name : control.name);\r\n Vue.set(control, \"dataSourceParameters\", []);\r\n Vue.set(control, \"isEditing\", false);\r\n Vue.set(control, \"validationErrors\", []);\r\n Vue.set(control, \"additionalValues\", []);\r\n }\r\n }\r\n\r\n public static getValidationErrors(validationState: any): any[] {\r\n let validationErrors: any[] = [];\r\n\r\n for (var propertyName in validationState) {\r\n if (validationState.hasOwnProperty(propertyName)) {\r\n for (let message of validationState[propertyName]) {\r\n validationErrors.push({ name: propertyName, message: message });\r\n }\r\n }\r\n }\r\n\r\n return validationErrors;\r\n }\r\n\r\n public static isControlValidationError(controlName: string, validationErrors: any[]): boolean {\r\n return validationErrors.some(x => x.name === controlName);\r\n }\r\n\r\n public static getRequestVerificationToken(): string {\r\n return (document.getElementsByName(\"__RequestVerificationToken\")[0]).value;\r\n }\r\n\r\n public static showPassword(inputId: string) {\r\n let input: HTMLElement = document.querySelector(\"#\" + inputId);\r\n input.setAttribute(\"type\", input.getAttribute(\"type\") === \"password\" ? \"text\" : \"password\");\r\n }\r\n\r\n static setFocus(contextElement: HTMLElement) {\r\n // Set focus on first input element\r\n let firstInput: HTMLElement = contextElement.querySelector(\"input\");\r\n if (firstInput) {\r\n firstInput.focus();\r\n }\r\n }\r\n\r\n static removeFocus() {\r\n // Remove document focus\r\n if (document.activeElement instanceof HTMLElement) {\r\n document.activeElement.blur();\r\n }\r\n }\r\n}","export default class CookieHelper {\r\n public static getCookiePolicy() {\r\n return this.getCookie(\"ckp\");\r\n }\r\n\r\n public static isCookiePolicy() {\r\n return this.getCookie(\"ckp\");\r\n }\r\n \r\n public static setCookiePolicyType(type) {\r\n var cookie = this.getCookie(\"ckp\"),\r\n values = [];\r\n\r\n if (!cookie) {\r\n values.push(\"tech\");\r\n values.push(type);\r\n } else {\r\n values = cookie.split(\"|\");\r\n if (values.indexOf(type) === -1) {\r\n values.push(type);\r\n }\r\n }\r\n\r\n this.setCookie(\"ckp\", values.join(\"|\"), 365);\r\n }\r\n\r\n public static removeCookiePolicyType(type) {\r\n var cookie = this.getCookie(\"ckp\");\r\n if (cookie) {\r\n var values = cookie.split(\"|\");\r\n var index = values.indexOf(type);\r\n if (index !== -1) {\r\n values.splice(index, 1);\r\n }\r\n\r\n this.setCookie(\"ckp\", values.join(\"|\"), 365);\r\n }\r\n }\r\n\r\n public static setCookiePolicyAll() {\r\n var values = [\"tech\", \"stat\", \"profile\"];\r\n this.setCookie(\"ckp\", values.join(\"|\"), 365);\r\n }\r\n\r\n public static removeCookiePolicyAll() {\r\n var values = [\"tech\"];\r\n this.setCookie(\"ckp\", values.join(\"|\"), 365);\r\n }\r\n\r\n public static getCookie(name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n }\r\n\r\n public static setCookie(name, value, days) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n }\r\n\r\n public static deleteCookie(name) {\r\n document.cookie = name + '=; Max-Age=-99999999;';\r\n }\r\n}","export default class FormLegacyHelper {\r\n public static setValidation($context, errors) {\r\n $context = $context || $(\"body\");\r\n var $validationSummary = $(\"[data-valmsg-summary]\", $context);\r\n $validationSummary.addClass(\"validation-summary-errors\").removeClass(\"validation-summary-valid\");\r\n var ul = $(\"ul\", $validationSummary).empty();\r\n\r\n $.each(errors, function (i, item) {\r\n ul.append(\"
  • \" + item.Errors + \"
  • \");\r\n var upperCaseName = item.Name.charAt(0).toUpperCase() + item.Name.slice(1);\r\n $context.find(\"*[data-valmsg-for='\" + item.Name + \"'],*[data-valmsg-for='\" + upperCaseName + \"']\").html(item.Errors).addClass(\"field-validation-error\");\r\n $context.find(\"*[name='\" + item.Name + \"'],*[name='\" + upperCaseName + \"']\").addClass(\"input-validation-error\");\r\n });\r\n }\r\n\r\n public static resetValidation($context) {\r\n $context = $context || $(\"body\");\r\n var $validationSummary = $(\"[data-valmsg-summary]\", $context);\r\n $validationSummary.addClass(\"validation-summary-valid\").removeClass(\"validation-summary-errors\");\r\n var ul = $(\"ul\", $validationSummary).empty();\r\n $(\".field-validation-error\", $context).addClass(\"field-validation-valid\").removeClass(\"field-validation-error\").empty();\r\n $(\".input-validation-error\", $context).addClass('input-validation-valid').removeClass(\"input-validation-error\");\r\n };\r\n\r\n public static disableControls($context) {\r\n $context = $context || $(\"body\");\r\n var $disableOnSubmit = $(\".disable-on-submit\", $context);\r\n $disableOnSubmit.attr(\"disabled\", \"disabled\");\r\n }\r\n\r\n public static enableControls($context) {\r\n var $context = $context || $(\"body\");\r\n var $disableOnSubmit = $(\".disable-on-submit\", $context);\r\n $disableOnSubmit.removeAttr(\"disabled\");\r\n }\r\n\r\n public static async setVueValidation(validationState) {\r\n if (validationState) {\r\n for (var field in validationState) {\r\n let control = document.getElementsByName(field)[0];\r\n if (control) {\r\n control.classList.add(\"input-validation-error\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n public static resetVueValidation() {\r\n let inputs = document.getElementsByClassName(\"input-validation-error\");\r\n for (let i = 0; i < inputs.length; i++) {\r\n inputs[i].classList.remove(\"input-validation-error\");\r\n }\r\n }\r\n}","export default class GTagHelper {\r\n public static setConfig(targetId: string, configInfo: any = null) {\r\n // ConfigInfo: { parameterName: parameterValue }\r\n if ((window).gtag) {\r\n (window).gtag(\"config\", targetId, configInfo);\r\n }\r\n }\r\n\r\n public static getValue(target: string, fieldName: string) {\r\n // Get values from gtag (including values set with the set command)\r\n // Target: UA-XXXXXXXX-Y\r\n if ((window).gtag) {\r\n (window).gtag(\"get\", target, fieldName, (field: any) => { return field });\r\n }\r\n }\r\n\r\n public static setValue(valuePair: any) {\r\n // Set values that persist across all the subsequent gtag() calls on the page\r\n // ValuePair: { parameterName: parameterValue }\r\n if ((window).gtag) {\r\n (window).gtag(\"set\", valuePair);\r\n }\r\n }\r\n\r\n public static sendEvent(eventName: string, eventParams: any = null) {\r\n // EventParams: { parameterName: parameterValue }\r\n if ((window).gtag) {\r\n (window).gtag(\"event\", eventName, eventParams);\r\n }\r\n }\r\n}","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Prop, Watch } from \"vue-property-decorator\";\r\nimport Axios from \"axios\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\nimport FormHelper from \"@Scripts/Common/FormHelper\";\r\nimport CookieHelper from \"@Scripts/Infrastructure/CookieHelper\";\r\nimport FormLegacyHelper from \"@Scripts/Infrastructure/FormLegacyHelper\";\r\nimport GTagHelper from \"@Scripts/Infrastructure/GTagHelper\";\r\n\r\n@Component({ name: \"NewsletterSubscribe\" })\r\nexport default class NewsletterSubscribe extends Vue {\r\n public localizer: any = Localizer;\r\n public isLoading: boolean = false;\r\n public isSuccess: boolean = false;\r\n public isNewsletterInterestsVisible: boolean = false;\r\n public isPrivacyPolicyShow: boolean = false;\r\n public privacyPolicy: string = null;\r\n public newsletterSubscribeSubmit: any = { country: null, interests: [] };\r\n public validationErrors: any[] = [];\r\n public interests: any[] = [];\r\n public countries: any[] = [];\r\n public randomId: number = null;\r\n\r\n get isNewsletterSubscribeVisible() {\r\n return this.$store.getters[\"newsletterStore/isNewsletterSubscribeVisible\"];\r\n }\r\n\r\n @Prop() readonly recaptchaSiteKey: string;\r\n @Prop() readonly magazine: string;\r\n @Prop() readonly isNewsletterDisabled: boolean;\r\n\r\n @Watch(\"isNewsletterSubscribeVisible\") async onInfoRequestVisibilityUpdate(newValue: boolean) {\r\n if (newValue) {\r\n await Promise.all([this.getData(), this.getPrivacyPolicy()]);\r\n this.setRecapthca();\r\n\r\n document.body.classList.add(\"overflow\");\r\n (this).$refs.newsletterSubscribeModal.classList.add(\"show\");\r\n this.getRandomId();\r\n } else {\r\n document.body.classList.remove(\"overflow\");\r\n (this).$refs.newsletterSubscribeModal.classList.remove(\"show\");\r\n }\r\n }\r\n\r\n get routes() {\r\n return (window).App.routes;\r\n }\r\n\r\n public created() {\r\n this.setOpenNewsletterDialog();\r\n }\r\n\r\n public setRecapthca() {\r\n let recaptchaScript = document.createElement(\"script\");\r\n recaptchaScript.setAttribute(\"src\", \"https://www.google.com/recaptcha/api.js\");\r\n document.head.appendChild(recaptchaScript);\r\n }\r\n\r\n public getRandomId() {\r\n let randomNumber: number;\r\n randomNumber = Math.floor(Math.random() * 10);\r\n this.randomId = randomNumber;\r\n }\r\n\r\n public async getPrivacyPolicy() {\r\n const result = (await Axios.post(this.routes.Terms_GetNewsletterPrivacyPolicy, null)).data;\r\n this.privacyPolicy = result.text;\r\n }\r\n\r\n public async getData() {\r\n const result = (await Axios.post(this.routes.Newsletter_GetNewsletterSubscribeData, null)).data;\r\n this.interests = result.interests;\r\n this.countries = result.countries;\r\n this.newsletterSubscribeSubmit.interests = result.interests.map(x => x.value);\r\n }\r\n\r\n public showPrivacyPolicy() {\r\n if (!this.isPrivacyPolicyShow) {\r\n this.isPrivacyPolicyShow = true;\r\n } else {\r\n this.isPrivacyPolicyShow = false;\r\n }\r\n }\r\n\r\n public closeNewsletterSubscribe() {\r\n this.newsletterSubscribeSubmit = { country: null, interests: [] };\r\n this.validationErrors = [];\r\n this.isSuccess = false;\r\n this.isPrivacyPolicyShow = false;\r\n CookieHelper.setCookie(\"nwsl\", \"nwsl\", 30);\r\n this.$store.commit(\"newsletterStore/setNewsletterSubscribeVisible\", false);\r\n if (this.magazine) {\r\n CookieHelper.setCookie(\"nwslm\", \"nwslm\", 30);\r\n }\r\n }\r\n\r\n public showNewsletterInterests() {\r\n this.isNewsletterInterestsVisible = !this.isNewsletterInterestsVisible;\r\n }\r\n\r\n public async setNewsletterSubscribeSubmit() {\r\n FormHelper.removeFocus();\r\n this.validationErrors = [];\r\n this.isLoading = true;\r\n\r\n try {\r\n await Axios.post(this.routes.Newsletter_Subscribe, this.newsletterSubscribeSubmit, { headers: { \"RecaptchaVerificationToken\": (window).grecaptcha.getResponse() } });\r\n\r\n this.isSuccess = true;\r\n GTagHelper.sendEvent(\"form_submit\", { newsletter: \"success\" });\r\n CookieHelper.setCookie(\"nwsl\", \"nwsl\", 365);\r\n CookieHelper.setCookie(\"nwslm\", \"nwslm\", 365);\r\n } catch (error) {\r\n FormLegacyHelper.resetVueValidation();\r\n\r\n if (error.response) {\r\n if (error.response.status === 400) {\r\n let validationState = error.response.data;\r\n FormLegacyHelper.setVueValidation(validationState);\r\n\r\n for (var propertyName in error.response.data) {\r\n if (error.response.data.hasOwnProperty(propertyName)) {\r\n for (let message of error.response.data[propertyName]) {\r\n this.validationErrors.push({ message: message });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n (window).grecaptcha.reset();\r\n }\r\n \r\n this.isLoading = false;\r\n }\r\n\r\n public setOpenNewsletterDialog() {\r\n if (this.isNewsletterDisabled) {\r\n return;\r\n }\r\n else if (this.$route.query.hasOwnProperty(\"IsNewsletter\")){\r\n this.$store.commit(\"newsletterStore/setNewsletterSubscribeVisible\", true);\r\n } else if (this.magazine === \"true\" && !CookieHelper.getCookie(\"nwslm\")) {\r\n this.$store.commit(\"newsletterStore/setNewsletterSubscribeVisible\", true);\r\n } else {\r\n if (!CookieHelper.getCookie(\"nwsl\")) {\r\n setTimeout(x => {\r\n this.$store.commit(\"newsletterStore/setNewsletterSubscribeVisible\", true);\r\n }, 5000);\r\n }\r\n }\r\n }\r\n\r\n public closeFancy() {\r\n CookieHelper.setCookie(\"nwsl\", \"nwsl\", 365);\r\n document.location.reload();\r\n }\r\n\r\n public goHome() {\r\n parent.window.location.replace(\"/\");\r\n }\r\n};","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./NewsletterSubscribe.vue?vue&type=template&id=60e3aedc\"\nimport script from \"./NewsletterSubscribe?vue&type=script&lang=ts&external\"\nexport * from \"./NewsletterSubscribe?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"newsletterSubscribeModal\",staticClass:\"modal\"},[(_vm.isNewsletterSubscribeVisible)?_c('div',{staticClass:\"newsletter\",attrs:{\"data-type\":\"send\"}},[(!_vm.isSuccess)?[_c('div',{staticClass:\"top\"},[_c('button',{staticClass:\"close\",attrs:{\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.closeNewsletterSubscribe()}}},[_c('span',{staticClass:\"icon fastic-close\",attrs:{\"role\":\"none\"}})]),_vm._v(\" \"),(_vm.magazine)?[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_OptIn_Title\")))]),_vm._v(\" \"),_c('div',{staticClass:\"abstract\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_OptIn_Abstract\")))])]:[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Title\")))]),_vm._v(\" \"),_c('div',{staticClass:\"abstract\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Abstract\")))])]],2),_vm._v(\" \"),_c('div',{staticClass:\"bottom\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form\"},[_c('fieldset',{staticClass:\"fieldset\"},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"control\"},[_c('label',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Email\")))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.newsletterSubscribeSubmit.email),expression:\"newsletterSubscribeSubmit.email\",modifiers:{\"lazy\":true}}],staticClass:\"textbox\",attrs:{\"type\":\"email\",\"name\":\"Email\"},domProps:{\"value\":(_vm.newsletterSubscribeSubmit.email)},on:{\"change\":function($event){return _vm.$set(_vm.newsletterSubscribeSubmit, \"email\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"item\",attrs:{\"data-lable\":\"top\"}},[_c('div',{staticClass:\"control\"},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"Country\"}},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Subscribe.Country\")))]),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.newsletterSubscribeSubmit.country),expression:\"newsletterSubscribeSubmit.country\",modifiers:{\"lazy\":true}}],staticClass:\"dropdown\",attrs:{\"id\":\"Country\",\"name\":\"Country\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.newsletterSubscribeSubmit, \"country\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\"...\")]),_vm._v(\" \"),_vm._l((_vm.countries),function(country,index){return _c('option',{key:index,domProps:{\"value\":country.value}},[_vm._v(\"\\n \"+_vm._s(country.title)+\"\\n \")])})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"item\",attrs:{\"data-lable\":\"top\"}},[_c('div',{staticClass:\"label small\"},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Subscribe.CustomInterestsTitle\"))+\" \"),_c('button',{on:{\"click\":function($event){return _vm.showNewsletterInterests()}}},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Subscribe.CustomInterestsCta\")))])]),_vm._v(\" \"),(_vm.isNewsletterInterestsVisible)?_c('div',{staticClass:\"control checkbox-list\"},_vm._l((_vm.interests),function(interest,index){return _c('div',{key:index,staticClass:\"checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.newsletterSubscribeSubmit.interests),expression:\"newsletterSubscribeSubmit.interests\",modifiers:{\"lazy\":true}}],attrs:{\"type\":\"checkbox\",\"id\":'Interest_' + index,\"name\":interest.value,\"aria-label\":interest.title},domProps:{\"value\":interest.value,\"checked\":Array.isArray(_vm.newsletterSubscribeSubmit.interests)?_vm._i(_vm.newsletterSubscribeSubmit.interests,interest.value)>-1:(_vm.newsletterSubscribeSubmit.interests)},on:{\"change\":function($event){var $$a=_vm.newsletterSubscribeSubmit.interests,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=interest.value,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.newsletterSubscribeSubmit, \"interests\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.newsletterSubscribeSubmit, \"interests\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.newsletterSubscribeSubmit, \"interests\", $$c)}}}}),_vm._v(\" \"),_c('label',{staticClass:\"label\",attrs:{\"for\":'Interest_' + index}},[_vm._v(\"\\n \"+_vm._s(interest.title)+\"\\n \")])])}),0):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"form-items\",attrs:{\"data-type\":\"privacy\"}},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.newsletterSubscribeSubmit.isPrivacyPolicy),expression:\"newsletterSubscribeSubmit.isPrivacyPolicy\",modifiers:{\"lazy\":true}}],attrs:{\"type\":\"checkbox\",\"name\":\"IsPrivacyPolicy\",\"id\":'IsPrivacyPolicy_' + _vm.randomId},domProps:{\"checked\":Array.isArray(_vm.newsletterSubscribeSubmit.isPrivacyPolicy)?_vm._i(_vm.newsletterSubscribeSubmit.isPrivacyPolicy,null)>-1:(_vm.newsletterSubscribeSubmit.isPrivacyPolicy)},on:{\"change\":function($event){var $$a=_vm.newsletterSubscribeSubmit.isPrivacyPolicy,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.newsletterSubscribeSubmit, \"isPrivacyPolicy\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.newsletterSubscribeSubmit, \"isPrivacyPolicy\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.newsletterSubscribeSubmit, \"isPrivacyPolicy\", $$c)}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":'IsPrivacyPolicy_' + _vm.randomId}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Privacy_Confirm\"))+\" \"),_c('span',{staticClass:\"disclaimer\",on:{\"click\":function($event){return _vm.showPrivacyPolicy()}}},[_c('span',{staticClass:\"button-privacy\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Privacy_Info\")))])])])])]),_vm._v(\" \"),(_vm.isPrivacyPolicyShow)?_c('div',{staticClass:\"item\",attrs:{\"data-type\":\"privacypolicy\"}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.privacyPolicy)}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"g-recaptcha\",attrs:{\"data-sitekey\":_vm.recaptchaSiteKey}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-items\",attrs:{\"data-type\":\"buttons\",\"data-ctas\":\"\"}},[_c('div',{staticClass:\"calltoaction\"},[(!_vm.isLoading)?_c('button',{staticClass:\"button\",attrs:{\"id\":\"ButtonSubmit\",\"data-width\":\"300\"},on:{\"click\":function($event){return _vm.setNewsletterSubscribeSubmit()}}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Button\")))]):_c('div',{staticClass:\"button\",attrs:{\"data-width\":\"300\",\"data-disabled\":\"\"}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Button\")))])]),_vm._v(\" \"),(_vm.magazine)?_c('div',{staticClass:\"item calltoaction\",attrs:{\"data-boreder\":\"\"}},[_c('button',{staticClass:\"button\",attrs:{\"data-width\":\"300\"},on:{\"click\":function($event){return _vm.closeNewsletterSubscribe()}}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_NotNow_Button\")))])]):_vm._e()])]),_vm._v(\" \"),(_vm.validationErrors.length !== 0)?_c('div',{staticClass:\"validation-summary-errors\"},[_c('ul',_vm._l((_vm.validationErrors),function(validationError,index){return _c('li',{key:index},[_vm._v(_vm._s(validationError.message))])}),0)]):_vm._e()])])])]:[_c('div',{staticClass:\"newsletter\",attrs:{\"data-type\":\"success\"}},[_c('div',{staticClass:\"top\"},[_c('button',{staticClass:\"close\",attrs:{\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.closeNewsletterSubscribe()}}},[_c('span',{staticClass:\"icon fastic-close\",attrs:{\"role\":\"none\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"app-width\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_OptIn_Success_Title\")))]),_vm._v(\" \"),_c('div',{staticClass:\"abstract\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_OptIn_Success_Abstract\")))])])]),_vm._v(\" \"),_c('div',{staticClass:\"bottom\"},[_c('div',{staticClass:\"app-width\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"desc\"},[_vm._v(\"\\n \"+_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Success_OptIn_Description\"))+\"\\n \\n \"),(_vm.magazine)?_c('div',{staticClass:\"calltoaction mrg\",attrs:{\"data-mrgt\":\"20\",\"data-mrgb\":\"30\"}},[_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.closeFancy()}}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Success_Cta_ReadMagazine\")))])]):_c('div',{staticClass:\"calltoaction mrg\",attrs:{\"data-mrgt\":\"20\",\"data-mrgb\":\"30\"}},[_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.goHome()}}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Success_Cta\")))])]),_vm._v(\"\\n \"+_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Success_News\"))+\"\\n \"),_c('div',{staticClass:\"calltoaction mrg\",attrs:{\"data-mrgt\":\"20\",\"data-mrgb\":\"30\",\"data-boreder\":\"\"}},[_c('a',{staticClass:\"button\",attrs:{\"href\":_vm.routes.TravelInfo_Intro}},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Subscribe_Success_Cta_LastNews\")))])])])])])])])]],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('main',{staticClass:\"main\"},[(!_vm.isSuccess)?[_c('div',{staticClass:\"top\"},[_c('div',{staticClass:\"app-width\"},[_c('div',{staticClass:\"main-title\"},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Unsubscribe.RemoveProfile\")))])])]),_vm._v(\" \"),_c('div',{staticClass:\"bottom\"},[_c('div',{staticClass:\"app-width\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form\"},[_c('fieldset',{staticClass:\"fieldset\"},[_c('div',{staticClass:\"row cf\"},[_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.localizer.get(\"NewsletterSubscribe.Common.Email\")))]),_vm._v(\" \"),_c('div',{staticClass:\"control\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.newsletterUnsubscribeSubmit.email),expression:\"newsletterUnsubscribeSubmit.email\",modifiers:{\"lazy\":true}}],staticClass:\"textbox\",attrs:{\"type\":\"email\",\"name\":\"Email\"},domProps:{\"value\":(_vm.newsletterUnsubscribeSubmit.email)},on:{\"change\":function($event){return _vm.$set(_vm.newsletterUnsubscribeSubmit, \"email\", $event.target.value)}}})])])]),_vm._v(\" \"),_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"g-recaptcha\",attrs:{\"data-sitekey\":_vm.recaptchaSiteKey}})])]),_vm._v(\" \"),_c('fieldset',{staticClass:\"fieldset\"},[_c('div',{staticClass:\"form-items\",attrs:{\"data-type\":\"buttons\"}},[_c('div',{staticClass:\"item calltoaction\"},[(!_vm.isLoading)?_c('button',{staticClass:\"button\",attrs:{\"id\":\"ButtonSubmit\",\"data-width\":\"300\"},on:{\"click\":function($event){return _vm.setNewsletterUnsubscribeSubmit()}}},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Common.SendRequest\")))]):_c('div',{staticClass:\"button\",attrs:{\"data-width\":\"300\",\"data-disabled\":\"\"}},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Common.SendRequest\")))])])])]),_vm._v(\" \"),(_vm.validationErrors.length !== 0)?_c('div',{staticClass:\"validation-summary-errors\"},[_c('ul',_vm._l((_vm.validationErrors),function(validationError,index){return _c('li',{key:index},[_vm._v(_vm._s(validationError.message))])}),0)]):_vm._e()])])])])]:[_c('div',{staticClass:\"main-title\"},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Unsubscribe.OptOut_Title\")))]),_vm._v(\" \"),_c('div',{staticClass:\"main-abstract\"},[_vm._v(_vm._s(_vm.localizer.get(\"Newsletter.Unsubscribe.OptOut_Abstract\")))])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport Axios from \"axios\";\r\nimport { Prop } from \"vue-property-decorator\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\nimport FormHelper from \"@Scripts/Common/FormHelper\";\r\nimport FormLegacyHelper from \"@Scripts/Infrastructure/FormLegacyHelper\";\r\n\r\n@Component({ name: \"NewsletterUnsubscribe\" })\r\nexport default class NewsletterUnsubscribe extends Vue {\r\n public localizer: any = Localizer;\r\n public isLoading: boolean = false;\r\n public isSuccess: boolean = false;\r\n public newsletterUnsubscribeSubmit: any = {};\r\n public validationErrors: any[] = [];\r\n\r\n get routes() {\r\n return (window).App.routes;\r\n }\r\n\r\n @Prop() readonly recaptchaSiteKey: string;\r\n\r\n public mounted() {\r\n let recaptchaScript = document.createElement(\"script\");\r\n recaptchaScript.setAttribute(\"src\", \"https://www.google.com/recaptcha/api.js\");\r\n document.head.appendChild(recaptchaScript);\r\n }\r\n\r\n public async setNewsletterUnsubscribeSubmit() {\r\n this.validationErrors = [];\r\n this.isLoading = true;\r\n FormLegacyHelper.resetVueValidation();\r\n\r\n try {\r\n await Axios.post(this.routes.Newsletter_Unsubscribe, this.newsletterUnsubscribeSubmit, { headers: { \"RequestVerificationToken\": FormHelper.getRequestVerificationToken(), \"RecaptchaVerificationToken\": (window).grecaptcha.getResponse() } });\r\n\r\n this.isSuccess = true;\r\n } catch (error) {\r\n FormLegacyHelper.resetVueValidation();\r\n\r\n if (error.response) {\r\n if (error.response.status === 400) {\r\n let validationState = error.response.data;\r\n FormLegacyHelper.setVueValidation(validationState);\r\n\r\n for (var propertyName in error.response.data) {\r\n if (error.response.data.hasOwnProperty(propertyName)) {\r\n for (let message of error.response.data[propertyName]) {\r\n this.validationErrors.push({ message: message });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n (window).grecaptcha.reset();\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n};","import { render, staticRenderFns } from \"./NewsletterUnsubscribe.vue?vue&type=template&id=ee157132\"\nimport script from \"./NewsletterUnsubscribe?vue&type=script&lang=ts&external\"\nexport * from \"./NewsletterUnsubscribe?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"app-search\"},[_c('div',{staticClass:\"app-width\",attrs:{\"id\":\"SearchBox\"}},[_c('form',{staticClass:\"form\",attrs:{\"data-type\":\"search\",\"data-search\":\"main\"}},[_c('label',{staticClass:\"icon fastic-search\",attrs:{\"for\":\"header-search\"}},[_c('span',[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search')))])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],staticClass:\"textbox\",attrs:{\"id\":\"header-search\",\"name\":\"header-search\",\"placeholder\":_vm.localizer.get('App.Common.Search_Placeholder'),\"type\":\"text\"},domProps:{\"value\":(_vm.search)},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.suggestionSelect(_vm.suggestionListIndex)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;$event.preventDefault();return _vm.moveDown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;$event.preventDefault();return _vm.moveUp()}],\"input\":function($event){if($event.target.composing)return;_vm.search=$event.target.value}}}),_vm._v(\" \"),_c('span',{staticClass:\"icon close fastic-close\",on:{\"click\":function($event){return _vm.closeSearch()}}})]),_vm._v(\" \"),(_vm.suggestions && _vm.suggestions.length !== 0)?_c('div',{staticClass:\"suggestion\"},[_c('div',{staticClass:\"results\"},_vm._l((_vm.suggestions),function(suggestion,index){return _c('div',{key:index,staticClass:\"item\",class:[{ selected: index === _vm.suggestionListIndex }, 'suggestion' ]},[_c('a',{staticClass:\"button ga-event\",attrs:{\"href\":suggestion.linkUrl,\"data-ga-cat\":\"HeaderSearch\",\"data-ga-action\":\"SearchToDetail\",\"data-ga-label\":suggestion.linkUrl}},[_c('img',{staticClass:\"image\",attrs:{\"src\":suggestion.imageUrl,\"alt\":suggestion.title,\"width\":\"300\",\"height\":\"225\"}}),_vm._v(\" \"),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(suggestion.title))])])])}),0),_vm._v(\" \"),_c('div',{staticClass:\"calltoaction\"},[_c('a',{staticClass:\"button\",on:{\"click\":function($event){return _vm.showAll()}}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search_ShowAll')))])])]):(_vm.isSuggestionNotFound)?_c('div',{staticClass:\"no-result\"},[_c('div',{staticClass:\"main-abstract mrg\",attrs:{\"data-mrgb\":\"15\"}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Title')))]),_vm._v(\"\\n \"+_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Description'))+\" \\n \")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Watch } from \"vue-property-decorator\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\n\r\n@Component({ name: \"HeaderSearchBox\" })\r\nexport default class HeaderSearchBox extends Vue {\r\n public localizer: any = Localizer;\r\n public search: string = null;\r\n public suggestionListIndex: number = -1;\r\n public isSuggestionNotFound: boolean = false;\r\n public isLoading: boolean = false;\r\n public debounceTimeOut: any = null;\r\n\r\n get suggestions() {\r\n return this.$store.getters[\"searchStore/suggestions\"];\r\n }\r\n\r\n get routes() {\r\n return (window).App.routes;\r\n }\r\n\r\n @Watch(\"search\")\r\n public onSearchTextChange(newText) {\r\n this.debounceGetSuggestions(newText, 500);\r\n }\r\n\r\n public created() {\r\n const outsideClickListener = event => {\r\n if (!this.$el.contains(event.target)) {\r\n this.clear();\r\n }\r\n }\r\n\r\n document.addEventListener(\"click\", outsideClickListener);\r\n }\r\n\r\n public debounceGetSuggestions(search: any, delay: number) {\r\n let self = this;\r\n\r\n clearTimeout(this.debounceTimeOut);\r\n this.debounceTimeOut = setTimeout(async function (context) {\r\n if (search != null && search.length >= 3) {\r\n await self.getSuggestions();\r\n } else if (search === null || search.length === 0) {\r\n self.clear();\r\n }\r\n }, delay, this);\r\n }\r\n\r\n public async getSuggestions() {\r\n this.isLoading = true;\r\n let response = await this.$store.dispatch(\"searchStore/getSuggestions\", { searchText: this.search });\r\n if (response.data) {\r\n this.$store.commit(\"searchStore/setSuggestions\", response.data);\r\n if (response.data.length === 0) {\r\n this.isSuggestionNotFound = true;\r\n } else {\r\n this.isSuggestionNotFound = false;\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public moveUp() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex > 0) {\r\n this.suggestionListIndex--;\r\n }\r\n }\r\n\r\n public moveDown() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex < this.suggestions.length - 1) {\r\n this.suggestionListIndex++;\r\n }\r\n }\r\n\r\n public suggestionSelect(index: number) {\r\n if (index !== -1) {\r\n this.suggestionListIndex = index;\r\n }\r\n\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex !== -1) {\r\n let selectedSuggestion = this.suggestions[this.suggestionListIndex];\r\n\r\n (window).location = selectedSuggestion.linkUrl;\r\n\r\n this.clear();\r\n } else {\r\n this.showAll();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.$store.commit(\"searchStore/setSuggestions\", []);\r\n this.suggestionListIndex = -1;\r\n this.isSuggestionNotFound = false;\r\n this.search = null;\r\n }\r\n\r\n public closeSearch() {\r\n $(\".wrap-tap\").fadeOut();\r\n $(\".app-search\").removeAttr(\"data-show\");\r\n }\r\n\r\n public showAll() {\r\n (window).location = this.routes.Search_List + \"?searchtext=\" + this.search;\r\n }\r\n};","import { render, staticRenderFns } from \"./HeaderSearchBox.vue?vue&type=template&id=7751fa80\"\nimport script from \"./HeaderSearchBox?vue&type=script&lang=ts&external\"\nexport * from \"./HeaderSearchBox?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-search\",attrs:{\"data-visual\":\"false\",\"id\":\"SearchBoxPage\"}},[_c('form',{staticClass:\"form\",attrs:{\"data-type\":\"search\"}},[_c('span',{staticClass:\"icon fastic-search\"}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],staticClass:\"textbox\",attrs:{\"placeholder\":_vm.placeHolder,\"type\":\"text\"},domProps:{\"value\":(_vm.search)},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.suggestionSelect(_vm.suggestionListIndex)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;$event.preventDefault();return _vm.moveDown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;$event.preventDefault();return _vm.moveUp()}],\"input\":function($event){if($event.target.composing)return;_vm.search=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"calltoaction\"},[_c('a',{staticClass:\"button\",on:{\"click\":function($event){return _vm.showAll()}}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search')))])])]),_vm._v(\" \"),(!_vm.isLoading)?[(_vm.suggestions && _vm.suggestions.length !== 0)?_c('div',{staticClass:\"suggestions\"},_vm._l((_vm.suggestions),function(suggestion,index){return _c('div',{key:index,class:[{ selected: index === _vm.suggestionListIndex }, 'suggestion' ]},[_c('a',{staticClass:\"button ga-event\",attrs:{\"href\":suggestion.linkUrl,\"data-ga-cat\":\"HomeSearch\",\"data-ga-action\":\"SearchToDetail\",\"data-ga-label\":suggestion.linkUrl}},[_vm._v(_vm._s(suggestion.title))])])}),0):(_vm.isSuggestionNotFound)?_c('div',{staticClass:\"suggestions no-result\"},[_c('div',{staticClass:\"main-abstract mrg\",attrs:{\"data-mrgb\":\"15\"}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Title')))]),_vm._v(\"\\n \"+_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Description'))+\"\\n \")]):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Prop, Watch } from \"vue-property-decorator\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\n\r\n@Component({ name: \"PageSearchBox\" })\r\nexport default class PageSearchBox extends Vue {\r\n public localizer: any = Localizer;\r\n public search: string = null;\r\n public suggestionListIndex: number = -1;\r\n public placeHolder: string = null;\r\n public isSuggestionNotFound: boolean = false;\r\n public isLoading: boolean = false;\r\n public debounceTimeOut: any = null;\r\n\r\n get suggestions() {\r\n return this.$store.getters[\"searchStore/suggestions\"];\r\n }\r\n\r\n get routes() {\r\n return (window).App.routes;\r\n }\r\n\r\n @Watch(\"search\")\r\n public onSearchTextChange(newText) {\r\n this.debounceGetSuggestions(newText, 500);\r\n }\r\n\r\n @Prop() type: string;\r\n\r\n public created() {\r\n const outsideClickListener = event => {\r\n if (!this.$el.contains(event.target)) {\r\n this.clear();\r\n }\r\n }\r\n\r\n document.addEventListener(\"click\", outsideClickListener);\r\n }\r\n\r\n public mounted() {\r\n switch (this.type) {\r\n case \"Airline\":\r\n this.placeHolder = this.localizer.get(\"App.Common.Search_Airline_Placeholder\");\r\n break;\r\n case \"Airport\":\r\n this.placeHolder = this.localizer.get(\"App.Common.Search_Airport_Placeholder\");\r\n break;\r\n case \"Destination\":\r\n this.placeHolder = this.localizer.get(\"App.Common.Search_Destination_Placeholder\");\r\n break;\r\n default:\r\n this.placeHolder = this.localizer.get(\"App.Common.Search_Placeholder\");\r\n break;\r\n }\r\n }\r\n\r\n public debounceGetSuggestions(search: any, delay: number) {\r\n let self = this;\r\n\r\n clearTimeout(this.debounceTimeOut);\r\n this.debounceTimeOut = setTimeout(async function (context) {\r\n if (search != null && search.length >= 3) {\r\n await self.getSuggestions();\r\n } else if (search === null || search.length === 0) {\r\n self.clear();\r\n }\r\n }, delay, this);\r\n }\r\n\r\n public async getSuggestions() {\r\n this.isLoading = true;\r\n let response = await this.$store.dispatch(\"searchStore/getSuggestions\", { searchText: this.search, searchType: this.type });\r\n if (response.data) {\r\n this.$store.commit(\"searchStore/setSuggestions\", response.data);\r\n if (response.data.length === 0) {\r\n this.isSuggestionNotFound = true;\r\n } else {\r\n this.isSuggestionNotFound = false;\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public moveUp() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex > 0) {\r\n this.suggestionListIndex--;\r\n }\r\n }\r\n\r\n public moveDown() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex < this.suggestions.length - 1) {\r\n this.suggestionListIndex++;\r\n }\r\n }\r\n\r\n public suggestionSelect(index: number) {\r\n if (index !== -1) {\r\n this.suggestionListIndex = index;\r\n }\r\n\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex !== -1) {\r\n let selectedSuggestion = this.suggestions[this.suggestionListIndex];\r\n\r\n (window).location = selectedSuggestion.linkUrl;\r\n\r\n this.clear();\r\n } else {\r\n this.showAll();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.$store.commit(\"searchStore/setSuggestions\", []);\r\n this.suggestionListIndex = -1;\r\n this.isSuggestionNotFound = false;\r\n this.search = null;\r\n }\r\n\r\n public showAll() {\r\n (window).location = this.routes.Search_List + \"?searchtext=\" + this.search + \"&searchType=\" + this.type;\r\n }\r\n};","import { render, staticRenderFns } from \"./PageSearchBox.vue?vue&type=template&id=97a08a88\"\nimport script from \"./PageSearchBox?vue&type=script&lang=ts&external\"\nexport * from \"./PageSearchBox?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-search\",attrs:{\"id\":\"SearchBoxHome\",\"data-visual\":\"true\"}},[_c('h1',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Visual_Search_Title')))]),_vm._v(\" \"),_c('form',{staticClass:\"form\",attrs:{\"data-type\":\"search\",\"data-search\":\"visual\"}},[_c('label',{staticClass:\"icon fastic-search\",attrs:{\"for\":\"visual-search\"}},[_c('span',[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search')))])]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],staticClass:\"textbox\",attrs:{\"id\":\"visual-search\",\"name\":\"visual-search\",\"placeholder\":_vm.localizer.get('App.Common.Search_Placeholder'),\"type\":\"text\"},domProps:{\"value\":(_vm.search)},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.suggestionSelect(_vm.suggestionListIndex)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;$event.preventDefault();return _vm.moveDown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;$event.preventDefault();return _vm.moveUp()}],\"input\":function($event){if($event.target.composing)return;_vm.search=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"calltoaction\"},[_c('span',{staticClass:\"button\",on:{\"click\":function($event){return _vm.showAll()}}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search')))])])]),_vm._v(\" \"),(!_vm.isLoading)?[(_vm.suggestions && _vm.suggestions.length !== 0)?_c('div',{staticClass:\"suggestions\",attrs:{\"data-type\":\"home\"}},_vm._l((_vm.suggestions),function(suggestion,index){return _c('div',{key:index,class:[{ selected: index === _vm.suggestionListIndex }, 'suggestion' ]},[_c('a',{staticClass:\"button ga-event\",attrs:{\"href\":suggestion.linkUrl,\"data-ga-cat\":\"HomeSearch\",\"data-ga-action\":\"SearchToDetail\",\"data-ga-label\":suggestion.linkUrl}},[_vm._v(_vm._s(suggestion.title))])])}),0):(_vm.isSuggestionNotFound)?_c('div',{staticClass:\"suggestions no-result\"},[_c('div',{staticClass:\"main-abstract mrg\",attrs:{\"data-mrgb\":\"15\"}},[_vm._v(_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Title')))]),_vm._v(\"\\n \"+_vm._s(_vm.localizer.get('App.Common.Search_NotFound_Description'))+\"\\n \")]):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Watch } from \"vue-property-decorator\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\n\r\n@Component({ name: \"VisualSearchBox\" })\r\nexport default class VisualSearchBox extends Vue {\r\n public localizer: any = Localizer;\r\n public search: string = null;\r\n public suggestionListIndex: number = -1;\r\n public isSuggestionNotFound: boolean = false;\r\n public isLoading: boolean = false;\r\n public debounceTimeOut: any = null;\r\n\r\n get suggestions() {\r\n return this.$store.getters[\"searchStore/suggestions\"];\r\n }\r\n\r\n get routes() {\r\n return (window).App.routes;\r\n }\r\n\r\n @Watch(\"search\") onSearchTextChange(newText: string) {\r\n this.debounceGetSuggestions(newText, 500);\r\n }\r\n\r\n public created() {\r\n const outsideClickListener = event => {\r\n if (!this.$el.contains(event.target)) {\r\n this.clear();\r\n }\r\n }\r\n\r\n document.addEventListener(\"click\", outsideClickListener);\r\n }\r\n\r\n public debounceGetSuggestions(search: any, delay: number) {\r\n let self = this;\r\n\r\n clearTimeout(this.debounceTimeOut);\r\n this.debounceTimeOut = setTimeout(async function (context) {\r\n if (search != null && search.length >= 3) {\r\n await self.getSuggestions();\r\n } else if (search === null || search.length === 0) {\r\n self.clear();\r\n }\r\n }, delay, this);\r\n }\r\n\r\n public async getSuggestions() {\r\n this.isLoading = true;\r\n let response = await this.$store.dispatch(\"searchStore/getSuggestions\", { searchText: this.search });\r\n if (response.data) {\r\n this.$store.commit(\"searchStore/setSuggestions\", response.data);\r\n if (response.data.length === 0) {\r\n this.isSuggestionNotFound = true;\r\n } else {\r\n this.isSuggestionNotFound = false;\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public moveUp() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex > 0) {\r\n this.suggestionListIndex--;\r\n }\r\n }\r\n\r\n public moveDown() {\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex < this.suggestions.length - 1) {\r\n this.suggestionListIndex++;\r\n }\r\n }\r\n\r\n public suggestionSelect(index: number) {\r\n if (index !== -1) {\r\n this.suggestionListIndex = index;\r\n }\r\n\r\n if (this.suggestions.length !== 0 && this.suggestionListIndex !== -1) {\r\n let selectedSuggestion = this.suggestions[this.suggestionListIndex];\r\n\r\n window.location.href = selectedSuggestion.linkUrl;\r\n\r\n this.clear();\r\n } else {\r\n this.showAll();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.$store.commit(\"searchStore/setSuggestions\", []);\r\n this.suggestionListIndex = -1;\r\n this.isSuggestionNotFound = false;\r\n this.search = null;\r\n }\r\n\r\n public showAll() {\r\n if (this.search) {\r\n window.location.href = this.routes.Search_List + \"?searchtext=\" + this.search;\r\n }\r\n }\r\n};","import { render, staticRenderFns } from \"./VisualSearchBox.vue?vue&type=template&id=a61dc6be\"\nimport script from \"./VisualSearchBox?vue&type=script&lang=ts&external\"\nexport * from \"./VisualSearchBox?vue&type=script&lang=ts&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\n\r\nimport NewsletterSubscribe from \"@Scripts/Components/NewsletterSubscribe/NewsletterSubscribe.vue\";\r\nimport NewsletterUnsubscribe from \"@Scripts/Components/NewsletterUnsubscribe/NewsletterUnsubscribe.vue\";\r\nimport HeaderSearchBox from \"@Scripts/Components/Search/HeaderSearchBox.vue\";\r\nimport PageSearchBox from \"@Scripts/Components/Search/PageSearchBox.vue\";\r\nimport VisualSearchBox from \"@Scripts/Components/Search/VisualSearchBox.vue\";\r\n\r\nexport default class AppConfig {\r\n public static AddComponents() {\r\n Vue.component(\"app-newsletter-subscribe\", NewsletterSubscribe);\r\n Vue.component(\"app-newsletter-unsubscribe\", NewsletterUnsubscribe);\r\n Vue.component(\"app-header-search-box\", HeaderSearchBox);\r\n Vue.component(\"app-page-search-box\", PageSearchBox);\r\n Vue.component(\"app-visual-search-box\", VisualSearchBox);\r\n }\r\n}","export default class ResponsiveHelper {\r\n public static onResize() {\r\n let self = this;\r\n\r\n $(window).on(\"resize\", function () {\r\n self.setWrapMenu()\r\n }).resize();\r\n }\r\n\r\n public static setWrapMenu() {\r\n let device = {\r\n isTouch: 'ontouchstart' in window,\r\n isSmartphone: function () { return window.matchMedia(\"screen and (max-width:599px)\").matches },\r\n isSmalltablet: function () { return window.matchMedia(\"screen and (min-width:600px) and (max-width:749px)\").matches },\r\n isTablet: function () { return window.matchMedia(\"screen and (min-width:750px) and (max-width:1050px)\").matches },\r\n isRetina: function () { return window.matchMedia(\"only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)\").matches },\r\n OS: {\r\n isAndroid: function () {\r\n return (navigator.userAgent.indexOf(\"Edge\") < 0 && navigator.userAgent.match(/Android/i)) ? true : false;\r\n },\r\n isIOS: function () {\r\n return navigator.userAgent.match(/iPhone|iPad|iPod/i);\r\n },\r\n isWindows: function () {\r\n return (navigator.userAgent.indexOf(\"Edge\") >= 0 || navigator.userAgent.match(/IEMobile/i)) ? true : false;\r\n }\r\n }\r\n };\r\n\r\n var $hoverlay = \".hoverlay\",\r\n $openBtn = \".button-open-wrap\",\r\n $closeBtn = \".button-close-wrap\",\r\n $nav = \".navigation .main-nav\",\r\n $navItem = \".navigation .list-item .item\";\r\n\r\n if (device.isSmartphone() || device.isSmalltablet() || device.isTablet() ){\r\n\r\n $($openBtn).unbind().bind(\"click\", function () {\r\n var delay = 0\r\n\r\n $($hoverlay).show();\r\n $(\"body\").attr(\"data-overflow\", \"hidden\");\r\n\r\n $($hoverlay).each(function () {\r\n var $item = $(this);\r\n\r\n setTimeout(function () {\r\n $item.attr(\"data-show\", \"true\");\r\n }, delay += 70);\r\n\r\n setTimeout(function () {\r\n $($nav).attr(\"data-show\", \"true\")\r\n $($closeBtn).attr(\"data-show\", \"true\")\r\n }, 250);\r\n });\r\n\r\n setTimeout(function () {\r\n $($navItem).each(function () {\r\n var $item = $(this);\r\n\r\n setTimeout(function () {\r\n $item.attr(\"data-show\", \"true\");\r\n }, delay += 50);\r\n });\r\n }, 220);\r\n });\r\n\r\n $($closeBtn + \",\" + \".hoverlay[data-color='black']\").unbind().bind(\"click\", function () {\r\n $(\"body\").removeAttr(\"data-overflow\");\r\n $($nav + \",\" + $navItem + \",\" + $closeBtn).removeAttr(\"data-show\")\r\n setTimeout(function () {\r\n $(\".hoverlay[data-color='red']\").removeAttr(\"data-show\");\r\n }, 140);\r\n setTimeout(function () {\r\n $(\".hoverlay[data-color='blue']\").removeAttr(\"data-show\");\r\n $(\".hoverlay[data-color='black']\").removeAttr(\"data-show\");\r\n }, 210);\r\n });\r\n }\r\n else {\r\n $(\"body\").removeAttr(\"data-overflow\");\r\n $(\".hoverlay\").removeAttr(\"data-show\");\r\n $($nav + \",\" + $navItem + \",\" + $closeBtn).removeAttr(\"data-show\")\r\n }\r\n }\r\n}","import Vue from \"vue\";\r\n\r\nimport DataWebConfig from \"@Scripts/Config/DataWebConfig\";\r\nimport AppConfig from \"@Scripts/Config/AppConfig\";\r\nimport { router } from \"@Scripts/Config/RouteConfig\";\r\nimport { store } from \"@Scripts/Config/StoreConfig\";\r\nimport Axios from \"axios\";\r\n\r\nimport ResponsiveHelper from \"@Scripts/Infrastructure/ResponsiveHelper\";\r\nimport CookieHelper from \"@Scripts/Infrastructure/CookieHelper\";\r\nimport Localizer from \"@Scripts/Common/Localizer\";\r\nimport GTagHelper from \"@Scripts/Infrastructure/GTagHelper\";\r\n\r\nexport default class BasePage {\r\n public static async init() {\r\n await Localizer.init({\r\n defaultCulture: (window).App.culture,\r\n resourceContexts: [\"App\", \"Newsletter\", \"NewsletterSubscribe\", \"CookieToast\", \"Seo\", \"Magazine\"]\r\n });\r\n\r\n let DataWeb = (window).DataWeb;\r\n if (DataWeb) {\r\n Vue.use(DataWeb.default);\r\n Vue.use(DataWebConfig);\r\n\r\n await DataWeb.Localizer.init({ defaultCulture: (window).App.userCulture, resourceContexts: [\"DataWeb\", \"Account\"] });\r\n }\r\n\r\n this.initRequestVerificationToken();\r\n\r\n AppConfig.AddComponents();\r\n\r\n let vm = new Vue({\r\n el: \"#app\",\r\n router,\r\n store,\r\n created() {\r\n if (DataWeb) {\r\n DataWeb.default.registerRoutes(router);\r\n DataWeb.default.registerStoreModules(store);\r\n }\r\n }\r\n });\r\n\r\n (window).App.instances.vm = vm;\r\n\r\n ResponsiveHelper.onResize();\r\n\r\n this.setExpandingMenu();\r\n this.setSearchOpen();\r\n this.setShowCategory();\r\n this.setCookieToast()\r\n this.setGoTop();\r\n this.setAnalytics();\r\n this.setShare();\r\n this.setContextMenu();\r\n this.setVisuals();\r\n this.setShowBookingMap();\r\n this.setCloseStickyBanner();\r\n this.openNewsletterDialog();\r\n }\r\n\r\n private static initRequestVerificationToken() {\r\n var antiforgerytoken = (document.getElementsByName(\"__RequestVerificationToken\")[0]).value;\r\n if (antiforgerytoken) {\r\n Axios.defaults.headers.common[\"RequestVerificationToken\"] = antiforgerytoken;\r\n }\r\n }\r\n\r\n private static openNewsletterDialog() {\r\n let ctas = document.querySelectorAll(\".is-newsletterdialog\");\r\n for (const item of ctas) {\r\n item.addEventListener(\"click\", x => {\r\n (window).App.instances.vm.$store.commit(\"newsletterStore/setNewsletterSubscribeVisible\", true);\r\n })\r\n }\r\n }\r\n\r\n public static setShare() {\r\n $(\".open-share\").on(\"click\", function () {\r\n $(\".share\").toggleClass(\"show\");\r\n });\r\n\r\n $(document).on(\"click\", function (event) {\r\n if (!$(event.target).parents().hasClass(\"share\")) {\r\n $(\".share\").removeClass(\"show\");\r\n }\r\n });\r\n }\r\n\r\n public static setCookieToast() {\r\n var $cookieToast = $(\".cookie-toast\"),\r\n $customizeBox = $(\".customize\", $cookieToast),\r\n $buttonAcceptAll = $(\"#ButtonAcceptAll\", $cookieToast),\r\n $buttonOnlyTech = $(\"#ButtonOnlyTech\", $cookieToast),\r\n $buttonCustomize = $(\"#ButtonCustomize\", $cookieToast),\r\n $buttonActivateStatistics = $(\"#ButtonActivateStatistics\", $customizeBox),\r\n $buttonDeactivateStatistics = $(\"#ButtonDeactivateStatistics\", $customizeBox),\r\n $buttonActivateProfiling = $(\"#ButtonActivateProfiling\", $customizeBox),\r\n $buttonDeactivateProfiling = $(\"#ButtonDeactivateProfiling\", $customizeBox),\r\n $buttonSaveCustomize = $(\"#ButtonCustomizeSave\", $customizeBox),\r\n customizeCookieValues = [\"tech\"];\r\n\r\n if (!CookieHelper.isCookiePolicy()) {\r\n $cookieToast.slideDown();\r\n }\r\n\r\n $buttonAcceptAll.on(\"click\", function () {\r\n CookieHelper.setCookiePolicyAll();\r\n $cookieToast.slideUp();\r\n GTagHelper.sendEvent(\"click\", { cookie_toast: \"accept\" });\r\n });\r\n\r\n $buttonOnlyTech.on(\"click\", function () {\r\n CookieHelper.removeCookiePolicyAll();\r\n $cookieToast.slideUp();\r\n GTagHelper.sendEvent(\"click\", { cookie_toast: \"only tech\" });\r\n });\r\n\r\n $buttonCustomize.on(\"click\", function () {\r\n $customizeBox.slideToggle();\r\n });\r\n\r\n $buttonActivateStatistics.on(\"click\", function () {\r\n $buttonActivateStatistics.hide();\r\n $buttonDeactivateStatistics.show();\r\n customizeCookieValues.push(\"stat\");\r\n });\r\n\r\n $buttonDeactivateStatistics.on(\"click\", function () {\r\n $buttonDeactivateStatistics.hide();\r\n $buttonActivateStatistics.show();\r\n var index = customizeCookieValues.indexOf(\"stat\");\r\n if (index !== -1) {\r\n customizeCookieValues.splice(index, 1);\r\n }\r\n });\r\n\r\n $buttonActivateProfiling.on(\"click\", function () {\r\n $buttonActivateProfiling.hide();\r\n $buttonDeactivateProfiling.show();\r\n customizeCookieValues.push(\"profile\");\r\n });\r\n\r\n $buttonDeactivateProfiling.on(\"click\", function () {\r\n $buttonDeactivateProfiling.hide();\r\n $buttonActivateProfiling.show();\r\n var index = customizeCookieValues.indexOf(\"profile\");\r\n if (index !== -1) {\r\n customizeCookieValues.splice(index, 1);\r\n }\r\n });\r\n\r\n $buttonSaveCustomize.on(\"click\", function () {\r\n CookieHelper.setCookie(\"ckp\", customizeCookieValues.join(\"|\"), 365);\r\n $cookieToast.slideUp();\r\n GTagHelper.sendEvent(\"click\", { cookie_toast: \"custom\" });\r\n });\r\n };\r\n\r\n public static setGoTop() {\r\n var $gotop = $(\".gotop\");\r\n\r\n $(window).on(\"scroll\", function () {\r\n if ($(this).scrollTop() >= 150) {\r\n $gotop.attr(\"data-fixed\", \"true\");\r\n } else {\r\n $gotop.removeAttr(\"data-fixed\");\r\n }\r\n });\r\n }\r\n\r\n public static setExpandingMenu() {\r\n var $item = $(\".expmenu .item\");\r\n $(\".button-exp\", $item).off(\"click\").on(\"click\", function () {\r\n var $itemCurrent = $(this).parent();\r\n\r\n $($item).not($($itemCurrent)).removeClass(\"show\");\r\n $($itemCurrent).toggleClass(\"show\");\r\n });\r\n };\r\n\r\n public static setSearchOpen() {\r\n var $buttonOpen = \".button-open-search\",\r\n $search = \".app-search\",\r\n $wrapTap = \".wrap-tap\",\r\n $closeButton = \".icon.close\";\r\n\r\n $($buttonOpen).off(\"click\").on(\"click\", function () {\r\n $($wrapTap).fadeIn();\r\n $($search).attr(\"data-show\", \"true\");\r\n $(\"input.textbox\", \"#SearchBox\")[0].focus();\r\n });\r\n\r\n $($closeButton).add($wrapTap).off(\"click\").on(\"click\", function () {\r\n $($wrapTap).fadeOut();\r\n $($search).removeAttr(\"data-show\");\r\n });\r\n }\r\n\r\n public static setAnalytics() {\r\n $(document.body).on(\"click\", \".ga-event\", function (e) {\r\n switch ($(this).attr(\"data-ga-cat\")) {\r\n case \"Visual\":\r\n GTagHelper.sendEvent(\"click\", { home_visual: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"Highlight\":\r\n GTagHelper.sendEvent(\"click\", { home_highlight: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"HomeSearch\":\r\n GTagHelper.sendEvent(\"search\", { home_search_to_detail: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"HeaderSearch\":\r\n GTagHelper.sendEvent(\"search\", { header_search_to_detail: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"SocialShare\":\r\n GTagHelper.sendEvent(\"click\", { social_share_type: \"generic\", social_share_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"SocialHeader\":\r\n GTagHelper.sendEvent(\"click\", { social_share_type: \"header\", social_share_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"SocialFooter\":\r\n GTagHelper.sendEvent(\"click\", { social_share_type: \"footer\", social_share_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"SocialNewsletter\":\r\n GTagHelper.sendEvent(\"click\", { social_share_type: \"newsletter\", social_share_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedDestination\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"destination\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedNews\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"news\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedAirport\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"airport\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedShoppingPosts\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"shopping post\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedAirline\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"airline\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"RelatedLuxury\":\r\n GTagHelper.sendEvent(\"click\", { related_page_type: \"luxury\", related_page_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"LuxuryNews\":\r\n GTagHelper.sendEvent(\"click\", { luxury_news: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"Magazine_ReadNow\":\r\n GTagHelper.sendEvent(\"click\", { magazine_cta_type: $(this).attr(\"data-read\"), magazine_type: $(this).attr(\"data-ga-action\").toLocaleLowerCase(), magazine_title: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"PostCategory\":\r\n GTagHelper.sendEvent(\"click\", { content_category_type: \"post\", content_category_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"MagazineCategory\":\r\n GTagHelper.sendEvent(\"click\", { content_category_type: \"magazine\", content_category_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n }\r\n });\r\n\r\n $(\".ga-event-anchor\").on(\"click\", function (e) {\r\n switch ($(this).attr(\"data-ga-cat\")) {\r\n case \"GoTop\":\r\n GTagHelper.sendEvent(\"click\", { scroll_up: \"top\" });\r\n break;\r\n case \"DestinationDetailNavigation\":\r\n GTagHelper.sendEvent(\"click\", { content_detail_type: \"destination\", content_detail_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"AirportDetailNavigation\":\r\n GTagHelper.sendEvent(\"click\", { content_detail_type: \"airport\", content_detail_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n case \"AirportDetailNavigation\":\r\n GTagHelper.sendEvent(\"click\", { content_detail_type: \"airline\", content_detail_name: $(this).attr(\"data-ga-label\") });\r\n break;\r\n }\r\n });\r\n\r\n $(\".editor a\").on(\"click\", function () {\r\n GTagHelper.sendEvent(\"click\", { page_click: $(this).attr(\"href\") });\r\n });\r\n\r\n $(\".ga-event-global[data-gaevent=\\\"true\\\"]\").on(\"click\", function () {\r\n switch ($(this).attr(\"data-gacategory\")) {\r\n case \"Banner\":\r\n GTagHelper.sendEvent(\"click\", { banner_click: $(this).attr(\"data-galabel\") });\r\n break;\r\n }\r\n });\r\n\r\n document.querySelectorAll(\".ga-event-global[data-gacategory='Banner']\").forEach(element => {\r\n GTagHelper.sendEvent(\"click\", { banner_impression: element.getAttribute(\"data-galabel\") });\r\n });\r\n }\r\n\r\n public static setShowCategory() {\r\n var $list = $(\".category-list\"),\r\n $open = $(\".category-button .open\"),\r\n $close = $(\".category-button .close\");\r\n\r\n $($open).off(\"click\").on(\"click\", function () {\r\n $($list).slideDown();\r\n $($open).hide();\r\n $($close).show();\r\n });\r\n\r\n $($close).off(\"click\").on(\"click\", function () {\r\n $($list).slideUp();\r\n $($close).hide();\r\n $($open).show();\r\n });\r\n }\r\n\r\n public static setShowBookingMap() {\r\n $(\".booking-map .button\").off(\"click\").on(\"click\", function () {\r\n $(\".booking-map .map\").toggleClass(\"show\");\r\n GTagHelper.sendEvent(\"click\", { booking_map: \"open\" });\r\n });\r\n }\r\n\r\n public static setFancybox() {\r\n $(\"[data-fancybox]\").on(\"click\", function () {\r\n ($).fancybox.open({\r\n fullScreen: false,\r\n thumbs: false,\r\n slideShow: false,\r\n iframe: {\r\n scrolling: \"auto\"\r\n },\r\n image: {\r\n protect: true\r\n }\r\n });\r\n });\r\n }\r\n\r\n public static setNewsletterDialog() {\r\n $(\"a[data-newsletter\").on(\"click\", function () {\r\n ($).fancybox.open({\r\n src: (window).App.routes.Account_NewsletterSubscribe,\r\n type: 'iframe'\r\n });\r\n });\r\n }\r\n\r\n public static setCloseStickyBanner() {\r\n $(\".close-adv\").on(\"click\", function () {\r\n $(\".banner-area[data-sticky]\").hide();\r\n });\r\n }\r\n\r\n public static setContextMenu() {\r\n $(\"body\").on(\"contextmenu\", function (e) {\r\n e.preventDefault();\r\n\r\n $(\".tooltip\").css({\r\n top: e.pageY + \"px\",\r\n left: e.pageX + \"px\"\r\n }).addClass(\"show\");\r\n\r\n $(\".tooltip\").on(\"click\", function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n $(\"body\").on(\"click\", function () {\r\n $(\".tooltip\").removeClass(\"show\");\r\n });\r\n });\r\n }\r\n\r\n private static setVisuals() {\r\n const visuals = new (window).Swiper(\".swiper-container\", {\r\n modules: [(window).Autoplay, (window).EffectFade, (window).Lazy, (window).Pagination],\r\n loop: true,\r\n effect: \"fade\",\r\n autoplay: {\r\n delay: 4000\r\n },\r\n preloadImages: false,\r\n lazy: {\r\n loadOnTransitionStart: true,\r\n loadPrevNext: true\r\n },\r\n pagination: {\r\n el: \".swiper-pagination\",\r\n type: \"bullets\",\r\n clickable: false,\r\n renderBullet: function (index, className) {\r\n return \"\";\r\n }\r\n }\r\n });\r\n }\r\n}","export default class DataHelper {\r\n static convertToString(value: any, dataType: string, configuration?: DataHelperConfiguration): string {\r\n let stringValue = null;\r\n\r\n switch (dataType) {\r\n case \"Boolean\":\r\n stringValue = value === true ? \"True\" : null;\r\n break;\r\n case \"Integer\":\r\n stringValue = this.convertNumberToString(value, configuration, false);\r\n break;\r\n case \"Decimal\":\r\n stringValue = this.convertNumberToString(value, configuration);\r\n break;\r\n case \"Date\":\r\n stringValue = this.convertDateToString(value, configuration, false, false);\r\n break;\r\n case \"DateTime\":\r\n stringValue = this.convertDateToString(value, configuration, true, false);\r\n break;\r\n case \"DateTimeOffset\":\r\n stringValue = this.convertDateToString(value, configuration);\r\n break;\r\n case \"String\":\r\n if (value !== null && value !== \"\") {\r\n stringValue = String(value);\r\n }\r\n break;\r\n case \"Structured\":\r\n if (value !== null && value !== \"\") {\r\n stringValue = JSON.stringify(value, (key, value) => value === null ? undefined : value, \"\\t\");\r\n }\r\n break;\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static convertToNative(value: string, dataType: string, configuration?: DataHelperConfiguration): any {\r\n let nativeValue = null;\r\n\r\n switch (dataType) {\r\n case \"Boolean\":\r\n nativeValue = value === \"True\" ? true : false;\r\n break;\r\n case \"Integer\":\r\n nativeValue = this.convertStringToNumber(value, configuration);\r\n break;\r\n case \"Decimal\":\r\n nativeValue = this.convertStringToNumber(value, configuration);\r\n break;\r\n case \"Date\":\r\n nativeValue = this.convertStringToDate(value, configuration);\r\n break;\r\n case \"DateTime\":\r\n nativeValue = this.convertStringToDate(value, configuration);\r\n break;\r\n case \"DateTimeOffset\":\r\n nativeValue = this.convertStringToDate(value, configuration);\r\n break;\r\n case \"String\":\r\n if (value !== null && value !== \"\") {\r\n nativeValue = value;\r\n }\r\n break;\r\n case \"Structured\":\r\n if (value !== null && value !== \"\") {\r\n nativeValue = JSON.parse(value);\r\n }\r\n break;\r\n }\r\n\r\n return nativeValue;\r\n }\r\n\r\n static isNumeric(value: any): boolean {\r\n return !isNaN(value - parseFloat(value));\r\n }\r\n\r\n static convertStringToNumber(value: string, configuration?: DataHelperConfiguration): number {\r\n let config = this.initConfiguration(configuration);\r\n\r\n let nativeValue: any = null;\r\n\r\n if (value !== null && value !== \"\") {\r\n let formattedValue = value;\r\n\r\n if (config.thousandsSeparator) {\r\n formattedValue = formattedValue.replace(new RegExp(\"\\\\\" + config.thousandsSeparator, \"g\"), \"\")\r\n }\r\n\r\n formattedValue = formattedValue.replace(config.decimalSeparator, \".\");\r\n\r\n if (this.isNumeric(formattedValue)) {\r\n nativeValue = parseFloat(formattedValue);\r\n } else {\r\n nativeValue = value;\r\n }\r\n }\r\n\r\n return nativeValue;\r\n }\r\n\r\n static convertNumberToString(value: number, configuration?: DataHelperConfiguration, isDecimalPart: boolean = true) {\r\n let config = this.initConfiguration(configuration);\r\n\r\n let stringValue: string = null;\r\n\r\n if (value != null) {\r\n if (this.isNumeric(value)) {\r\n stringValue = String(value).replace(/,/g, \"\");\r\n\r\n // format integer and decimal parts\r\n let valueParts: string[] = stringValue.split(\".\");\r\n let integerPart: string = valueParts[0];\r\n let decimalPart: string = \"\";\r\n if (valueParts.length > 1) {\r\n decimalPart = valueParts[1];\r\n }\r\n\r\n // Set thousands separator\r\n if (integerPart.length > 3 && integerPart.substring(0, integerPart.length - 3) !== \"-\") {\r\n integerPart = integerPart.substring(0, integerPart.length - 3) + config.thousandsSeparator + integerPart.substring(integerPart.length - 3);\r\n }\r\n\r\n // Set millions separator\r\n if (integerPart.length > 7 && integerPart.substring(0, integerPart.length - 7) !== \"-\") {\r\n integerPart = integerPart.substring(0, integerPart.length - 7) + config.thousandsSeparator + integerPart.substring(integerPart.length - 7);\r\n }\r\n\r\n stringValue = integerPart;\r\n if (config.decimalCount !== 0 && isDecimalPart) {\r\n stringValue += config.decimalSeparator + decimalPart.padEnd(config.decimalCount, \"0\");\r\n }\r\n } else {\r\n stringValue = String(value);\r\n }\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static convertStringToDate(value: string, configuration?: DataHelperConfiguration): string {\r\n let config = this.initConfiguration(configuration);\r\n\r\n let nativeValue: string = null;\r\n\r\n if (value != null && value != \"\") {\r\n let dateTimeParts = null;\r\n\r\n switch (config.dateFormat) {\r\n case \"DayFirst\":\r\n dateTimeParts = this.getDayFirstDateTimeParts(value);\r\n break;\r\n case \"MonthFirst\":\r\n dateTimeParts = this.getMonthFirstDateTimeParts(value);\r\n break;\r\n default:\r\n case \"ISO\":\r\n dateTimeParts = this.getISODateTimeParts(value);\r\n break;\r\n }\r\n\r\n if (dateTimeParts) {\r\n nativeValue = dateTimeParts.year + \"-\" + dateTimeParts.month + \"-\" + dateTimeParts.day + \"T\" + dateTimeParts.hour + \":\" + dateTimeParts.minutes + \":\" + dateTimeParts.seconds;\r\n\r\n if (dateTimeParts.offset) {\r\n nativeValue += dateTimeParts.offset;\r\n }\r\n }\r\n }\r\n\r\n return nativeValue;\r\n }\r\n\r\n static convertDateToString(value: string, configuration?: DataHelperConfiguration, isTimePart: boolean = true, isOffsetPart: boolean = true): string {\r\n let config = this.initConfiguration(configuration);\r\n\r\n let stringValue: string = null;\r\n\r\n let dateTimeParts = this.getISODateTimeParts(value);\r\n if (dateTimeParts) {\r\n switch (config.dateFormat) {\r\n case \"DayFirst\":\r\n stringValue = dateTimeParts.day + \"/\" + dateTimeParts.month + \"/\" + dateTimeParts.year;\r\n\r\n if (isTimePart) {\r\n stringValue += \" \" + dateTimeParts.hour + \":\" + dateTimeParts.minutes;\r\n }\r\n\r\n if (isOffsetPart) {\r\n stringValue += \" \" + dateTimeParts.offset;\r\n }\r\n break;\r\n case \"MonthFirst\":\r\n stringValue = dateTimeParts.month + \"/\" + dateTimeParts.day + \"/\" + dateTimeParts.year;\r\n\r\n if (isTimePart) {\r\n stringValue += \" \" + dateTimeParts.hour + \":\" + dateTimeParts.minutes;\r\n }\r\n\r\n if (isOffsetPart) {\r\n stringValue += \" \" + dateTimeParts.offset;\r\n }\r\n break;\r\n case \"ISO\":\r\n default:\r\n stringValue = dateTimeParts.year + \"-\" + dateTimeParts.month + \"-\" + dateTimeParts.day;\r\n\r\n if (isTimePart) {\r\n stringValue += \"T\" + dateTimeParts.hour + \":\" + dateTimeParts.minutes + \":\" + dateTimeParts.seconds;\r\n }\r\n\r\n if (isOffsetPart && dateTimeParts.offset) {\r\n stringValue += dateTimeParts.offset;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static getDatePart(value: string): string {\r\n let stringValue: string = null;\r\n\r\n let dateTimeParts = this.getISODateTimeParts(value);\r\n if (dateTimeParts) {\r\n stringValue = dateTimeParts.year + \"-\" + dateTimeParts.month + \"-\" + dateTimeParts.day;\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static getTimePart(value: string): string {\r\n let stringValue: string = null;\r\n\r\n let dateTimeParts = this.getISODateTimeParts(value);\r\n if (dateTimeParts) {\r\n stringValue = dateTimeParts.hour + \":\" + dateTimeParts.minutes;\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static getOffsetPart(value: string): string {\r\n let stringValue: string = null;\r\n\r\n let dateTimeParts = this.getISODateTimeParts(value);\r\n if (dateTimeParts) {\r\n stringValue = dateTimeParts.offset;\r\n }\r\n\r\n return stringValue;\r\n }\r\n\r\n static getISODateTimeParts(value: string): any {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n if (!this.isValidDateTime(value)) {\r\n return null;\r\n }\r\n\r\n let [datePart, timePart] = value.split(\"T\");\r\n let [year, month, day] = datePart.match(/\\d+/g);\r\n let [time, offset] = timePart ? timePart.split(/(?=[+-])/) : [\"00:00:00\", null];\r\n\r\n let hour = timePart ? timePart.split(\":\")[0] : null;\r\n let minutes = timePart ? timePart.split(\":\")[1] : null;\r\n let seconds = timePart ? timePart.split(\":\")[2] : null;\r\n\r\n if (seconds) {\r\n if (seconds.includes(\"+\")) {\r\n seconds = seconds.split(\"+\")[0];\r\n } else if (seconds.includes(\"-\")) {\r\n seconds = seconds.split(\"-\")[0];\r\n }\r\n }\r\n\r\n return { datePart: datePart, timePart: timePart, year: year, month: month, day: day, hour: hour ?? \"00\", minutes: minutes ?? \"00\", seconds: seconds ?? \"00\", offset: offset ?? null };\r\n }\r\n\r\n static getDayFirstDateTimeParts(value: string): any {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n let [datePart, timePart, offset] = value.split(\" \");\r\n let [day, month, year] = datePart.match(/\\d+/g);\r\n\r\n let hour = timePart ? timePart.split(\":\")[0] : null;\r\n let minutes = timePart ? timePart.split(\":\")[1] : null;\r\n let seconds = timePart ? timePart.split(\":\")[2] : null;\r\n\r\n return { datePart: datePart, timePart: timePart, year: year, month: month, day: day, hour: hour ?? \"00\", minutes: minutes ?? \"00\", seconds: seconds ?? \"00\", offset: offset ?? null };\r\n }\r\n\r\n static getMonthFirstDateTimeParts(value: string): any {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n let [datePart, timePart, offset] = value.split(\" \");\r\n let [month, day, year] = datePart.match(/\\d+/g);\r\n\r\n let hour = timePart ? timePart.split(\":\")[0] : null;\r\n let minutes = timePart ? timePart.split(\":\")[1] : null;\r\n let seconds = timePart ? timePart.split(\":\")[2] : null;\r\n\r\n return { datePart: datePart, timePart: timePart, year: year, month: month, day: day, hour: hour ?? \"00\", minutes: minutes ?? \"00\", seconds: seconds ?? \"00\", offset: offset ?? null };\r\n }\r\n\r\n static isValidDateTime(value: any): boolean {\r\n // Reference: https://www.delftstack.com/howto/javascript/javascript-validate-date/\r\n let isValidDate = Date.parse(value);\r\n return !isNaN(isValidDate);\r\n }\r\n\r\n static getLocalOffset(): string {\r\n let local = new Date();\r\n let tzo = -local.getTimezoneOffset();\r\n let dif = tzo >= 0 ? \"+\" : \"-\";\r\n return (dif + String(tzo / 60).padStart(2, \"0\") + \":\" + String(tzo % 60).padStart(2, \"0\"));\r\n }\r\n\r\n static initConfiguration(configuration: DataHelperConfiguration) {\r\n let culture = configuration?.culture ?? \"default\";\r\n\r\n let config = this.getConfigurationByCulture(culture);\r\n\r\n if (configuration?.decimalSeparator != null && configuration?.decimalSeparator != undefined) {\r\n config.decimalSeparator = configuration.decimalSeparator;\r\n }\r\n\r\n if (configuration?.decimalCount) {\r\n config.decimalCount = configuration.decimalCount;\r\n }\r\n\r\n if (configuration?.thousandsSeparator != null && configuration?.thousandsSeparator != undefined) {\r\n config.thousandsSeparator = configuration.thousandsSeparator;\r\n }\r\n\r\n return config;\r\n }\r\n\r\n static getConfigurationByCulture(culture: string): any {\r\n switch (culture) {\r\n case \"en-GB\":\r\n case \"it-IT\":\r\n case \"cs-CZ\":\r\n case \"da-DK\":\r\n case \"de-DE\":\r\n case \"el-GR\":\r\n case \"es-ES\":\r\n case \"fi-FI\":\r\n case \"fr-FR\":\r\n case \"hu-HU\":\r\n case \"ja-JP\":\r\n case \"ko-KR\":\r\n case \"ms-MY\":\r\n case \"pl-PL\":\r\n case \"ro-RO\":\r\n case \"ru-RU\":\r\n case \"sk-SK\":\r\n case \"sv-SE\":\r\n case \"th-TH\":\r\n case \"tr-TR\":\r\n case \"zh-CN\":\r\n return {\r\n culture: culture,\r\n decimalSeparator: \",\",\r\n decimalCount: 2,\r\n thousandsSeparator: \".\",\r\n dateFormat: \"DayFirst\"\r\n }\r\n case \"en-US\":\r\n return {\r\n culture: culture,\r\n decimalSeparator: \".\",\r\n decimalCount: 2,\r\n thousandsSeparator: \",\",\r\n dateFormat: \"MonthFirst\"\r\n }\r\n case \"default\":\r\n default:\r\n return {\r\n culture: \"default\",\r\n decimalSeparator: \".\",\r\n decimalCount: 2,\r\n thousandsSeparator: \"\",\r\n dateFormat: \"ISO\"\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport interface DataHelperConfiguration {\r\n culture?: string;\r\n decimalSeparator?: string;\r\n decimalCount?: number;\r\n thousandsSeparator?: string;\r\n dateFormat?: string;\r\n}","import \"@Styles/Main.less\"\r\n\r\nimport DataWebPage from \"@Scripts/Pages/DataWebPage\";\r\nimport BasePage from \"@Scripts/Pages/BasePage\";\r\nimport CookieTermsPage from \"@Scripts/Pages/CookieTermsPage\";\r\nimport DestinationDetailPage from \"@Scripts/Pages/DestinationDetailPage\";\r\nimport MagazinePage from \"@Scripts/Pages/MagazinePage\";\r\n\r\nlet App: any = {\r\n instances: {},\r\n pages: {},\r\n routes: {},\r\n viewModels: {},\r\n resources: {}\r\n};\r\n\r\nApp.pages.DataWebPage = DataWebPage;\r\nApp.pages.BasePage = BasePage;\r\nApp.pages.CookieTermsPage = CookieTermsPage;\r\nApp.pages.DestinationDetailPage = DestinationDetailPage;\r\nApp.pages.MagazinePage = MagazinePage;\r\n\r\n(window).App = App;","import Vue from \"vue\";\r\nimport DataWebConfig from \"@Scripts/Config/DataWebConfig\";\r\nimport { router } from \"@Scripts/Config/RouteConfig\";\r\nimport { store } from \"@Scripts/Config/StoreConfig\";\r\n\r\nexport default class DataWebPage {\r\n public static async init() {\r\n let DataWeb = (window).DataWeb;\r\n if (DataWeb) {\r\n Vue.use(DataWeb.default);\r\n Vue.use(DataWebConfig);\r\n\r\n await DataWeb.Localizer.init({ defaultCulture: (window).App.userCulture, resourceContexts: [\"DataWeb\", \"Account\"] });\r\n\r\n let vm = new Vue({\r\n el: \"#app\",\r\n router,\r\n store,\r\n created() {\r\n DataWeb.default.registerRoutes(router);\r\n DataWeb.default.registerStoreModules(store);\r\n }\r\n });\r\n\r\n (window).App.instances.vm = vm;\r\n }\r\n }\r\n}","import CookieHelper from \"@Scripts/Infrastructure/CookieHelper\";\r\nimport BasePage from \"@Scripts/Pages/BasePage\";\r\n\r\nexport default class CookieTermsPage extends BasePage {\r\n public static async init() {\r\n await super.init();\r\n\r\n var $buttonOptInAll = $(\".opt-in-all\"),\r\n $buttonOptOutAll = $(\".opt-out-all\"),\r\n $buttonOptIn = $(\".opt-in\"),\r\n $buttonOptOut = $(\".opt-out\");\r\n\r\n var cookie = CookieHelper.getCookiePolicy();\r\n if (cookie) {\r\n var values = cookie.split(\"|\");\r\n\r\n if (values.indexOf(\"stat\") !== -1) {\r\n $(\".stat-status-on\").show();\r\n } else {\r\n $(\".stat-status-off\").show();\r\n }\r\n\r\n if (values.indexOf(\"profile\") !== -1) {\r\n $(\".profile-status-on\").show();\r\n } else {\r\n $(\".profile-status-off\").show();\r\n }\r\n }\r\n\r\n $buttonOptInAll.on(\"click\", function () {\r\n CookieHelper.setCookiePolicyAll();\r\n window.location.reload();\r\n });\r\n\r\n $buttonOptOutAll.on(\"click\", function () {\r\n CookieHelper.removeCookiePolicyAll();\r\n window.location.reload();\r\n });\r\n\r\n $buttonOptIn.on(\"click\", function () {\r\n CookieHelper.setCookiePolicyType($(this).data(\"type\"));\r\n window.location.reload();\r\n });\r\n\r\n $buttonOptOut.on(\"click\", function () {\r\n CookieHelper.removeCookiePolicyType($(this).data(\"type\"));\r\n window.location.reload();\r\n });\r\n }\r\n}","import BasePage from \"@Scripts/Pages/BasePage\";\r\n\r\nexport default class DestinationDetailPage extends BasePage {\r\n public static async init() {\r\n await super.init();\r\n\r\n this.setNavigation()\r\n }\r\n\r\n public static setNavigation() {\r\n var distance = $(\".page-navigation\").offset().top,\r\n $window = $(window);\r\n\r\n $window.on(\"scroll\", function () {\r\n if ($window.scrollTop() >= distance) {\r\n $(\".page-navigation, .page-content\").attr(\"data-fix\", \"true\");\r\n } else {\r\n $(\".page-navigation, .page-content\").removeAttr(\"data-fix\");\r\n }\r\n });\r\n };\r\n}","import BasePage from \"@Scripts/Pages/BasePage\";\r\n\r\nimport DataHelper from \"@Scripts/Common/DataHelper\";\r\nimport CookieHelper from \"@Scripts/Infrastructure/CookieHelper\";\r\nimport GTagHelper from \"@Scripts/Infrastructure/GTagHelper\";\r\n\r\nexport default class MagazinePage extends BasePage {\r\n public static async init() {\r\n super.init();\r\n\r\n let vm = this;\r\n\r\n if (navigator.onLine) {\r\n document.getElementById(\"MagazineDownloadProgress\").classList.add(\"hden\");\r\n document.getElementById(\"Offline\").classList.add(\"hden\");\r\n document.getElementById(\"BannerArea\").classList.remove(\"hden\");\r\n document.body.classList.remove(\"magazine-toast-active\");\r\n } else {\r\n document.getElementById(\"Offline\").classList.remove(\"hden\");\r\n document.getElementById(\"BannerArea\").classList.add(\"hden\");\r\n document.body.classList.add(\"magazine-toast-active\");\r\n }\r\n\r\n if (CookieHelper.getCookie(\"nwsl\") && CookieHelper.getCookie(\"mgznntr\")) {\r\n document.getElementById(\"MagazineDownloadInfo\").classList.add(\"hden\");\r\n if (navigator.onLine) {\r\n document.body.classList.remove(\"magazine-toast-active\");\r\n }\r\n } else if (CookieHelper.getCookie(\"nwsl\")) {\r\n document.getElementById(\"MagazineDownloadInfo\").classList.remove(\"hden\");\r\n document.body.classList.add(\"magazine-toast-active\");\r\n }\r\n\r\n document.addEventListener(\"click\", (event) => {\r\n if ((event.target).id === \"MagazineDownloadButton\") {\r\n CookieHelper.setCookie(\"mgznntr\", \"set\", 365)\r\n document.getElementById(\"MagazineDownloadInfo\").classList.add(\"hden\");\r\n vm.setServiceWorker();\r\n\r\n GTagHelper.sendEvent(\"file_download\", { magazine_file_name: (event.target).getAttribute(\"data-name\"), magazine_download_status: \"start\", link_url: window.location.href });\r\n }\r\n });\r\n\r\n window.addEventListener(\"offline\", () => {\r\n document.getElementById(\"Offline\").classList.remove(\"hden\");\r\n document.getElementById(\"BannerArea\").classList.add(\"hden\");\r\n document.body.classList.add(\"magazine-toast-active\");\r\n });\r\n\r\n window.addEventListener(\"online\", () => {\r\n document.getElementById(\"MagazineDownloadProgress\").classList.add(\"hden\");\r\n document.getElementById(\"Offline\").classList.add(\"hden\");\r\n document.getElementById(\"BannerArea\").classList.remove(\"hden\");\r\n document.body.classList.remove(\"magazine-toast-active\");\r\n });\r\n }\r\n\r\n private static setServiceWorker() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.register(\"../../../magazine.serviceworker.js?culture=\" + (window).App.culture, { scope: \"/\" + (window).App.culture.split('-')[0] + \"/magazine\" });\r\n }\r\n\r\n navigator.serviceWorker.addEventListener(\"message\", (event) => {\r\n if (event.data.msg !== 100) {\r\n document.getElementById(\"MagazineDownloadProgress\").classList.remove(\"hden\");\r\n\r\n document.getElementById(\"MagazineDownloadPercentage\").textContent = DataHelper.convertToString(event.data.msg, \"Integer\") + \"%\";\r\n document.body.classList.remove(\"magazine-toast-active\");\r\n } else {\r\n document.getElementById(\"MagazineDownloadProgress\").classList.add(\"hden\");\r\n document.body.classList.remove(\"magazine-toast-active\");\r\n\r\n GTagHelper.sendEvent(\"file_download\", { magazine_file_name: document.querySelector(\"#MagazineDownloadButton\").getAttribute(\"data-name\"), magazine_download_status: \"download\", link_url: window.location.href });\r\n }\r\n });\r\n };\r\n}"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Vue","install","options","VueRouter","router","mode","routes","Vuex","Axios","namespaced","state","suggestions","getters","mutations","setSuggestions","data","actions","getSuggestions","async","context","window","App","Search_GetSuggestions","store","_typeof","Symbol","iterator","constructor","forwardMetadata","to","from","propertyKey","Reflect","getOwnMetadataKeys","forEach","metaKey","metadata","getOwnMetadata","defineMetadata","registerModule","isNewsletterSubscribeVisible","setNewsletterSubscribeVisible","SearchStore","hasProto","__proto__","Array","factory","target","index","Ctor","__decorators__","undefined","push","$internalHooks","componentFactory","Component","arguments","length","name","_componentTag","proto","getOwnPropertyNames","indexOf","descriptor","getOwnPropertyDescriptor","value","methods","mixins","configurable","writable","_defineProperty","set","computed","vm","originalInit","_init","_this","this","keys","$options","props","plainData","collectDataFromConstructor","decorators","fn","superProto","getPrototypeOf","Super","Extended","extend","Original","shouldIgnore","extendedDescriptor","type","superDescriptor","forwardStaticMembers","callee","caller","registerHooks","arr","apply","isArray","i","arr2","_arrayWithoutHoles","iter","toString","_iterableToArray","TypeError","_nonIterableSpread","reflectMetadataIsSupported","getMetadata","Prop","componentOptions","k","Watch","path","_a","deep","_b","immediate","handler","watch","create","Localizer","init","configuration","defaultCulture","resourceCultures","resourceCulture","cultureResources","params","culture","contexts","resourceContexts","join","values","getByCulture","placeHolder","split","pop","resources","trackMissingResource","location","href","resource","replace","RegExp","url","Map","FormHelper","initRuntimeProperties","controls","parentControl","control","fullName","getValidationErrors","validationState","validationErrors","propertyName","message","isControlValidationError","controlName","some","x","getRequestVerificationToken","document","getElementsByName","showPassword","inputId","input","querySelector","setAttribute","getAttribute","setFocus","contextElement","firstInput","focus","removeFocus","activeElement","HTMLElement","blur","CookieHelper","getCookiePolicy","getCookie","isCookiePolicy","setCookiePolicyType","cookie","setCookie","removeCookiePolicyType","splice","setCookiePolicyAll","removeCookiePolicyAll","nameEQ","ca","c","charAt","substring","days","expires","date","Date","setTime","getTime","toUTCString","deleteCookie","FormLegacyHelper","setValidation","$context","errors","$","$validationSummary","addClass","removeClass","ul","empty","each","item","append","Errors","upperCaseName","Name","toUpperCase","slice","find","html","resetValidation","disableControls","attr","enableControls","removeAttr","setVueValidation","field","classList","add","resetVueValidation","inputs","getElementsByClassName","remove","GTagHelper","setConfig","targetId","configInfo","gtag","getValue","fieldName","setValue","valuePair","sendEvent","eventName","eventParams","NewsletterSubscribe","localizer","isLoading","isSuccess","isNewsletterInterestsVisible","isPrivacyPolicyShow","privacyPolicy","newsletterSubscribeSubmit","country","interests","countries","randomId","$store","onInfoRequestVisibilityUpdate","newValue","Promise","all","getData","getPrivacyPolicy","setRecapthca","body","$refs","newsletterSubscribeModal","getRandomId","created","setOpenNewsletterDialog","recaptchaScript","createElement","head","appendChild","randomNumber","Math","floor","random","result","Terms_GetNewsletterPrivacyPolicy","text","Newsletter_GetNewsletterSubscribeData","map","showPrivacyPolicy","closeNewsletterSubscribe","commit","magazine","showNewsletterInterests","setNewsletterSubscribeSubmit","Newsletter_Subscribe","headers","grecaptcha","getResponse","newsletter","error","response","status","reset","isNewsletterDisabled","$route","query","setTimeout","closeFancy","reload","goHome","parent","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","_vm","_c","_self","_setupProxy","ref","staticClass","attrs","on","$event","_v","_s","TravelInfo_Intro","directives","rawName","expression","modifiers","domProps","$set","$$selectedVal","filter","selected","_value","multiple","_l","title","interest","_i","$$a","$$el","$$c","checked","$$v","$$i","_e","isPrivacyPolicy","recaptchaSiteKey","validationError","NewsletterUnsubscribe","newsletterUnsubscribeSubmit","mounted","setNewsletterUnsubscribeSubmit","Newsletter_Unsubscribe","HeaderSearchBox","search","suggestionListIndex","isSuggestionNotFound","debounceTimeOut","onSearchTextChange","newText","debounceGetSuggestions","addEventListener","event","$el","contains","clear","delay","self","clearTimeout","dispatch","searchText","moveUp","moveDown","suggestionSelect","selectedSuggestion","linkUrl","showAll","closeSearch","fadeOut","Search_List","_k","keyCode","preventDefault","composing","suggestion","class","imageUrl","PageSearchBox","searchType","VisualSearchBox","AppConfig","AddComponents","ResponsiveHelper","onResize","setWrapMenu","resize","$hoverlay","$closeBtn","$nav","$navItem","matchMedia","matches","unbind","bind","show","$item","BasePage","DataWeb","default","DataWebConfig","userCulture","initRequestVerificationToken","el","registerRoutes","registerStoreModules","instances","setExpandingMenu","setSearchOpen","setShowCategory","setCookieToast","setGoTop","setAnalytics","setShare","setContextMenu","setVisuals","setShowBookingMap","setCloseStickyBanner","openNewsletterDialog","antiforgerytoken","common","ctas","querySelectorAll","toggleClass","parents","hasClass","$cookieToast","$customizeBox","$buttonAcceptAll","$buttonOnlyTech","$buttonCustomize","$buttonActivateStatistics","$buttonDeactivateStatistics","$buttonActivateProfiling","$buttonDeactivateProfiling","$buttonSaveCustomize","customizeCookieValues","slideDown","slideUp","cookie_toast","slideToggle","hide","$gotop","scrollTop","off","$itemCurrent","not","$search","$wrapTap","fadeIn","e","home_visual","home_highlight","home_search_to_detail","header_search_to_detail","social_share_type","social_share_name","related_page_type","related_page_title","luxury_news","magazine_cta_type","magazine_type","toLocaleLowerCase","magazine_title","content_category_type","content_category_name","scroll_up","content_detail_type","content_detail_name","page_click","banner_click","element","banner_impression","$list","$open","$close","booking_map","setFancybox","fancybox","open","fullScreen","thumbs","slideShow","iframe","scrolling","image","protect","setNewsletterDialog","src","Account_NewsletterSubscribe","css","top","pageY","left","pageX","stopPropagation","Swiper","modules","Autoplay","EffectFade","Lazy","Pagination","loop","effect","autoplay","preloadImages","lazy","loadOnTransitionStart","loadPrevNext","pagination","clickable","renderBullet","className","bag","Visuals","abstract","DataHelper","convertToString","dataType","stringValue","convertNumberToString","convertDateToString","String","JSON","stringify","convertToNative","nativeValue","convertStringToNumber","convertStringToDate","parse","isNumeric","isNaN","parseFloat","config","initConfiguration","formattedValue","thousandsSeparator","decimalSeparator","isDecimalPart","valueParts","integerPart","decimalPart","decimalCount","padEnd","dateTimeParts","dateFormat","getDayFirstDateTimeParts","getMonthFirstDateTimeParts","getISODateTimeParts","year","month","day","hour","minutes","seconds","offset","isTimePart","isOffsetPart","getDatePart","getTimePart","getOffsetPart","isValidDateTime","datePart","timePart","match","time","includes","isValidDate","getLocalOffset","tzo","getTimezoneOffset","padStart","getConfigurationByCulture","pages","viewModels","DataWebPage","CookieTermsPage","super","$buttonOptInAll","$buttonOptOutAll","$buttonOptIn","$buttonOptOut","DestinationDetailPage","setNavigation","distance","$window","MagazinePage","navigator","onLine","getElementById","id","setServiceWorker","magazine_file_name","magazine_download_status","link_url","serviceWorker","register","scope","msg","textContent"],"sourceRoot":""}