{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/origin-list/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/dropdown/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/dropdown/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/origin-list/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/origin-list/client/js/config.js","webpack:///./node_modules/@logitravel/alex-traveltool/components/modal-origins/client/js/config.js","webpack:///./node_modules/@logitravel/alex-traveltool/components/header-traveltool/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/dropdown/client/js/config.js","webpack:///./node_modules/@logitravel/alex-traveltool/components/dropdown-language/client/js/config.js","webpack:///./node_modules/@logitravel/alex-traveltool/components/dropdown-language/client/js/index.js","webpack:///./node_modules/@logitravel/alex-traveltool/components/modal-origins/client/js/index.js"],"names":["$","buildRequest","configuration","instance","session","JSON","stringify","SessionCode","parameterName","value","Source","executeAjax","config","endpoint","verb","toLowerCase","setTimeout","promise","post","url","data","contentType","withCredentials","get","done","window","location","href","origin","pathname","splittedString","search","split","length","newQuery","map","str","indexOf","filter","join","substring","buildFinalUrl","fail","console","error","module","exports","getConfig","prototypeConfiguration","this","element","dataset","parse","setCookieAutoOrigin","autoOrigin","document","cookie","ck_name","ck_value","onClickOrigin","e","target","parentElement","newSelectedOrigin","selectedOrigin","classList","remove","selectedClass","icon","lastChild","nodeName","appendChild","add","attributes","originOption","bindEvents","bind","addEventListener","removeEventListener","initialize","querySelector","contains","code","elementExist","randomId","ImageClient","prototype","selector","querySelectorAll","forEach","item","index","it","type","Object","create","id","hasLinks","init","addToStore","removeFromStore","dropdownStore","hasError","setValid","css","valid","setError","resetStatus","set","onChange","getSelected","selected","setSelected","selectedEl","removeAttribute","setAttribute","onClickToggle","event","isVisible","hide","display","stopPropagation","onClickMenu","closest","autoClose","onClickWindow","call","toggle","menu","setPairing","visible","autoStore","base","component","logitravel","modal","DropdownLanguage","ModalOrigins","navClient","currentTarget","modalOrigins","dropdown","image","size","height","width","axios","Dropdown","result","method","headers","responseType","language","ModalClient","OriginListClient","originList","initOriginList","modalSel","modalTrigger","triggers","initModal"],"mappings":"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","file":"header-traveltool.8eaf3ae98d4ace6cdac1.bundle.js","sourcesContent":["const $ = require('jquery/dist/jquery');\n\nconst buildRequest = function fn(configuration, instance) {\n if (configuration.session) {\n return JSON.stringify({ SessionCode: configuration.session, [configuration.parameterName]: instance.value });\n }\n return JSON.stringify({ [configuration.parameterName]: instance.value, Source: 900 });\n};\n\nconst buildFinalUrl = () => {\n const splittedString = window.location.search.split('&');\n if (splittedString.length > 0) {\n if (splittedString[0] === '') return '';\n\n let newQuery = splittedString\n .map(str => {\n if (str.indexOf('origen') !== -1 || str.indexOf('origin') !== -1) return false;\n return str;\n })\n .filter(str => str !== false)\n .join('&');\n\n if (newQuery[0] && newQuery[0] !== '?') {\n if (newQuery[0] === '&') newQuery = `?${newQuery.substring(1, newQuery.length)}`;\n else newQuery = `?${newQuery.substring(0, newQuery.length)}`;\n }\n return newQuery;\n }\n return ``;\n};\n\nconst executeAjax = function fn(instance) {\n const configuration = instance.config;\n\n // Exit in case we dont have the information we need\n if (!(configuration.endpoint && configuration.parameterName && configuration.verb)) return false;\n\n const verb = configuration.verb.toLowerCase();\n\n setTimeout(() => {\n let promise;\n if (verb === 'post') {\n promise = $.post({\n url: configuration.endpoint,\n data: buildRequest(configuration, instance),\n contentType: 'application/json; charset=utf-8',\n withCredentials: true\n });\n } else if (verb === 'get') {\n promise = $.get({\n url: configuration.endpoint,\n data: buildRequest(configuration, instance),\n contentType: 'application/json; charset=utf-8',\n withCredentials: true\n });\n }\n\n if (promise) {\n promise\n .done(() => {\n window.location.href = window.location.origin + window.location.pathname + buildFinalUrl();\n })\n .fail(() => {\n console.error('Oooopsss ... An error has occurred to change the origin :(');\n });\n }\n }, 1);\n\n return true;\n};\n\nmodule.exports = {\n getConfig: function fn() {\n let prototypeConfiguration = {};\n\n if (this.element) {\n const configuration = this.element.dataset.config;\n\n if (configuration) {\n prototypeConfiguration = JSON.parse(configuration);\n this.element.dataset.config = '';\n }\n }\n\n return prototypeConfiguration;\n },\n get: function fn() {\n return this.value || '';\n },\n setCookieAutoOrigin: function fn() {\n if (this.config && this.config.autoOrigin) {\n document.cookie = `${this.config.autoOrigin.ck_name}=${this.config.autoOrigin.ck_value};path=/`;\n }\n },\n onClickOrigin: function fn(e) {\n if (e.target.parentElement === this.element) {\n const newSelectedOrigin = e.target;\n\n if (newSelectedOrigin === this.selectedOrigin) return false;\n\n this.setCookieAutoOrigin();\n\n // --> We have a selected origin?\n if (this.selectedOrigin) {\n // --> Delete current origin to set the new\n this.selectedOrigin.classList.remove(this.config.selectedClass);\n const icon = this.selectedOrigin.lastChild;\n\n if (icon && icon.nodeName === 'SPAN') {\n newSelectedOrigin.appendChild(icon);\n }\n }\n // --> Set the new origin\n this.selectedOrigin = newSelectedOrigin;\n this.selectedOrigin.classList.add(this.config.selectedClass);\n this.value = this.selectedOrigin.attributes[this.config.originOption].value;\n\n // --> Try to set the new origin in session using an API\n executeAjax(this);\n\n return true;\n }\n return false;\n },\n bindEvents: function bindEvents() {\n this.onClickOrigin = this.onClickOrigin.bind(this);\n },\n addEventListener: function fn() {\n this.bindEvents();\n this.element.addEventListener('click', this.onClickOrigin);\n\n return this;\n },\n removeEventListener: function fn() {\n this.element.removeEventListener('click', this.onClickOrigin);\n\n return this;\n },\n initialize: function fn() {\n const selectedOrigin = this.element.querySelector(`.${this.config.selectedClass}`);\n\n if (!selectedOrigin) return this;\n\n const checkHasSelected = selectedOrigin.classList.contains(this.config.selectedClass);\n\n if (checkHasSelected) {\n this.selectedOrigin = selectedOrigin;\n this.value = selectedOrigin.dataset.code;\n }\n\n this.addEventListener();\n\n return this;\n }\n};\n","const { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { randomId } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst ImageClient = require('../../../image/client/js');\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * Dropdown component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function Dropdown(selector = '[data-component=\"Dropdown\"]', configuration = {}) {\n if (elementExist(selector)) {\n // Init image\n document\n .querySelector(selector)\n .querySelectorAll('[data-component=\"Image\"]')\n .forEach((item, index) => {\n const it = item;\n it.dataset.type = `image-${index}`;\n ImageClient(`${selector} [data-component=\"Image\"][data-type=\"${it.dataset.type}\"]`);\n });\n\n // Build instance based on customm input object so we inherit the proto methods\n const instance = Object.create(prototype);\n\n // Config\n instance.config = { ...config(), ...configuration };\n\n // Element reference\n instance.element = document.querySelector(selector);\n\n // Id reference\n instance.id = instance.element.dataset.id || randomId('dropdown');\n\n // Init error handler\n instance.error = false;\n\n // Value reference\n if (!instance.config.hasLinks) instance.value = instance.element.dataset.value;\n\n // Auto init\n if (instance.config.init) instance.init();\n\n return instance;\n }\n};\n","/* ==========================================================================\n Dropdown > Prototype\n ========================================================================== */\n\n// Imports\nconst { addToStore, removeFromStore } = require('@bluekiri/alexandria/helpers/store');\n\n// Store\nlet dropdownStore = [];\n\n// Prototype\nconst prototype = {\n // Has Error\n hasError: function Fn() {\n return this.error;\n },\n\n // Set valid\n setValid: function Fn() {\n this.element.classList.remove(this.config.css.error);\n this.element.classList.add(this.config.css.valid);\n\n // Set validation to state\n this.error = false;\n\n return this;\n },\n\n // Set error\n setError: function Fn() {\n this.element.classList.remove(this.config.css.valid);\n this.element.classList.add(this.config.css.error);\n\n // Set error to state\n this.error = true;\n\n return this;\n },\n\n // Reset status\n resetStatus: function Fn() {\n this.element.classList.remove(this.config.css.valid);\n this.element.classList.remove(this.config.css.error);\n\n // Reset validation to state\n this.error = false;\n\n return this;\n },\n\n // Get value\n get: function Fn() {\n return this.value;\n },\n\n // Set value\n set: function Fn(value) {\n // Not execute if not value passed\n if (!value) return this;\n\n // Control only new values proccessed\n if (this.value === value) return this;\n\n this.value = value;\n this.element.dataset.value = value;\n\n // Fire onChange\n this.onChange();\n\n return this;\n },\n\n // Get item selected\n getSelected: function Fn() {\n return this.element.querySelector(`[${this.config.selector.selected}]`);\n },\n\n // Set item selected\n setSelected: function Fn(item) {\n // Control same item is selected\n if (this.selectedEl === item) return this;\n\n // Error control of undefined\n if (!this.selectedEl) this.selectedEl = item;\n\n // Remove styles from old selected\n this.selectedEl.classList.remove(this.config.css.selected);\n this.selectedEl.removeAttribute(this.config.selector.selected);\n\n // Assign new selected\n this.selectedEl = item;\n\n // Add styles to new selected\n this.selectedEl.classList.add(this.config.css.selected);\n this.selectedEl.setAttribute(this.config.selector.selected, '');\n\n return this;\n },\n\n // On click toggle\n onClickToggle: function Fn(event) {\n // Toggle visibility\n if (!this.isVisible) {\n this.display();\n } else {\n this.hide();\n }\n\n // Hide other dropdowns by using the store\n dropdownStore.filter(item => item.isVisible && item !== this).forEach(item => item.hide());\n\n // Prevent bubbling\n event.stopPropagation();\n\n return this;\n },\n\n // On click menu\n onClickMenu: function Fn(event) {\n const item = event.target.closest(`[${this.config.selector.item}]`);\n\n // Set value\n this.set(item.dataset.value);\n\n // Set selected\n this.setSelected(item);\n\n // Close\n if (this.config.autoClose) this.hide();\n\n // Prevent bubbling\n event.stopPropagation();\n\n return this;\n },\n\n // On click window\n onClickWindow: function Fn() {\n // Hide dropdown open\n if (this.isVisible) this.hide();\n\n return this;\n },\n\n // On change\n onChange: function Fn() {\n if (this.config.onChange.length > 0) this.config.onChange.forEach(item => item.call(this, this));\n\n return this;\n },\n\n // Bind events\n bindEvents: function Fn() {\n this.onClickToggle = this.onClickToggle.bind(this);\n this.onClickMenu = this.onClickMenu.bind(this);\n this.onClickWindow = this.onClickWindow.bind(this);\n\n return this;\n },\n\n // Add event listener\n addEventListener: function Fn() {\n this.bindEvents();\n\n this.toggle.addEventListener('click', this.onClickToggle);\n if (!this.config.hasLinks) this.menu.addEventListener('click', this.onClickMenu);\n window.addEventListener('click', this.onClickWindow);\n\n return this;\n },\n\n // Remove event listener\n removeEventListener: function Fn() {\n this.toggle.removeEventListener('click', this.onClickToggle);\n if (!this.config.hasLinks) this.menu.removeEventListener('click', this.onClickMenu);\n window.removeEventListener('click', this.onClickWindow);\n\n return this;\n },\n\n // Set pairing custom for dropdown\n setPairing: function Fn() {\n this.toggle = this.element.querySelector(`[${this.config.selector.toggle}]`);\n this.menu = this.element.querySelector(`[${this.config.selector.menu}]`);\n\n return this;\n },\n\n // Display\n display: function Fn() {\n // Prevent display if not properly paired\n if (!this.toggle || !this.menu) this.setPairing();\n\n this.menu.classList.add(this.config.css.visible);\n this.isVisible = true;\n\n return this;\n },\n\n // Hide\n hide: function Fn() {\n // Prevent display if not properly paired\n if (!this.toggle || !this.menu) this.setPairing();\n\n this.menu.classList.remove(this.config.css.visible);\n this.isVisible = false;\n\n return this;\n },\n\n // Add to store\n addToStore: function Fn() {\n addToStore(this, dropdownStore);\n\n return this;\n },\n\n // Remove from store\n removeFromStore: function Fn() {\n dropdownStore = removeFromStore(this, dropdownStore);\n\n return this;\n },\n\n // Init\n init: function Fn() {\n // Set pairing custom to get toggle and menu elements\n this.setPairing();\n\n // Set selected default value\n if (this.getSelected()) {\n this.setSelected(this.getSelected());\n\n // Set value to dropdown\n this.set(this.getSelected().dataset.value);\n }\n\n // Add events\n this.addEventListener();\n\n // Add dropdown to the store\n if (this.config.autoStore) this.addToStore();\n\n return this;\n }\n};\n\nmodule.exports = prototype;\n","/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { randomId } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst prototype = require('./prototype');\nconst config = require('./config');\n\nmodule.exports = function OriginListClient(selector = '[data-component=\"OriginList\"]', configuration = {}) {\n if (elementExist(selector)) {\n const instance = Object.create(prototype);\n\n instance.element = document.querySelector(selector);\n\n instance.config = { ...config(), ...instance.getConfig(), ...configuration };\n\n instance.id = instance.element.dataset.id || randomId('origin-list');\n\n if (instance.config.init) instance.initialize();\n\n return instance;\n }\n};\n","const base = {\n component: 'OriginList',\n init: true,\n originOption: 'data-code',\n selectedClass: 'selected'\n};\n\nconst configuration = {\n logitravel: {\n ...base,\n ...{\n endpoint: '/mybookings/origin/setorigin',\n parameterName: 'airportcode',\n verb: 'post'\n }\n }\n};\n\nmodule.exports = function fn(type = 'logitravel') {\n return configuration[type] || base;\n};\n","const config = {\n type: {\n modal: 'modal-origins'\n }\n};\n\nmodule.exports = config;\n","const { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst DropdownLanguage = require('../../../dropdown-language/client/js');\nconst ModalOrigins = require('../../../modal-origins/client/js');\n\nmodule.exports = function HeaderTraveltoolClient(selector = '[data-component=\"HeaderTraveltool\"]') {\n if (elementExist(selector)) {\n // Instance reference\n const instance = {};\n\n // Element reference\n instance.element = document.querySelector(selector);\n\n // OnClick cliente logged\n instance.navClient = instance.element.querySelector('[data-nav-client]');\n if (elementExist(`${selector} [data-nav-client]`)) {\n instance.navClient.addEventListener('click', event => {\n const clientSelector = event.currentTarget.querySelector('[data-nav-client-info]');\n clientSelector.classList.toggle('header__nav-help-client-active');\n });\n }\n\n // Modal origins init\n instance.modalOrigins = ModalOrigins(`${selector} [data-component=\"ModalOrigins\"]`);\n\n instance.dropdown = DropdownLanguage();\n\n return instance;\n }\n};\n","/* ==========================================================================\n Dropdown > Config\n ========================================================================== */\n\nconst config = {\n component: 'Dropdown',\n init: true,\n selector: {\n toggle: 'data-dropdown-toggle',\n menu: 'data-dropdown-menu',\n item: 'data-dropdown-item',\n selected: 'data-selected'\n },\n css: {\n valid: 'is-valid',\n error: 'has-error',\n visible: 'is-visible',\n selected: 'is-selected'\n },\n image: {\n item: {\n size: {\n height: 18,\n width: 100\n }\n },\n toggle: {\n size: {\n height: 18,\n width: 100\n }\n }\n },\n autoClose: true,\n autoStore: true,\n hasLinks: false,\n onChange: []\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n DropdownLanguage > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n type: 'dropdown-lang',\n css: 'dropdown-language'\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n DropdownLanguage > Client\n ========================================================================== */\n\n/* Import modules */\nconst axios = module.require('axios');\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst Dropdown = require('@bluekiri/alexandria-contrib-components/components/dropdown/client/js');\nconst config = require('./config');\n\n/**\n * DropdownLanguage component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function DropdownLanguage(selector = '[data-component=\"DropdownLanguage\"]', configuration = {}) {\n if (elementExist(selector)) {\n const instance = {};\n\n instance.element = document.querySelector(selector);\n\n /* Config */\n instance.config = {\n ...config(),\n ...configuration,\n ...(function getConfig() {\n if (!instance.element.dataset.config) return '';\n\n const result = JSON.parse(instance.element.dataset.config);\n instance.element.dataset.config = '';\n return result;\n })()\n };\n\n instance.dropdown = Dropdown(`${selector} [data-component=\"Dropdown\"][data-type=\"${config().type}\"]`, {\n onChange: [\n dropdown => {\n axios({\n url: instance.config.url || '/CommonComponents/MultiContext/SetLanguage',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n responseType: 'json',\n data: JSON.stringify({\n language: dropdown.get()\n })\n });\n\n return true;\n }\n ]\n });\n\n return instance;\n }\n};\n","/* ==========================================================================\n ModalOrigins > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst ModalClient = require('@bluekiri/alexandria-contrib-components/components/modal/client/js');\nconst OriginListClient = require('@bluekiri/alexandria-contrib-components/components/origin-list/client/js');\nconst config = require('./config');\n\n/**\n * ModalOrigins component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function ModalOrigins(selector = '[data-component=\"ModalOrigins\"]') {\n if (elementExist(selector)) {\n // Instance reference\n const instance = {};\n\n // Element reference\n instance.element = document.querySelector(selector);\n\n // Types\n instance.config = config;\n\n initOriginList(instance);\n initModal(instance, selector);\n\n return instance;\n }\n};\n\nfunction initModal(instance, selector) {\n const result = instance;\n\n const modalSel = `${selector} [data-component=\"Modal\"][data-type=\"${instance.config.type.modal}\"]`;\n const modalTrigger = document.querySelectorAll(`[data-modal-open=\"${instance.config.type.modal}\"]`);\n\n result.modal = ModalClient(modalSel, {\n type: instance.config.type.modal,\n triggers: modalTrigger\n });\n}\n\nfunction initOriginList(instance) {\n const result = instance;\n result.originList = OriginListClient(`[data-component=\"Modal\"][data-type=\"${instance.config.type.modal}\"] \n [data-component=\"OriginList\"]`);\n}\n"],"sourceRoot":""}