{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria/helpers/store.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/input/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/image/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria/helpers/domHelpers.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/image/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/modal/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/input/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria/helpers/dataHelpers.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/agent-carousel/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/events/resize.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/click-to-call/client/js/config.js","webpack:///./components/layout-searcher-cru/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria/core/PriceFormatter.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/modal/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/agent-carousel/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/input/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/carousel/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/agent-carousel/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/click-to-call/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria/core/ViewHelpers.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/carousel/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/carousel/client/js/vendor/config.js","webpack:///./node_modules/@bluekiri/alexandria/core/Env.js","webpack:///./node_modules/@bluekiri/alexandria/core/utils/texts.js","webpack:///./template/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/carousel/client/js/index.js","webpack:///./template/js/components.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/image/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/modal/client/js/prototype.js"],"names":["module","exports","removeFromStore","instance","store","filter","item","addToStore","push","input","enable","this","element","classList","remove","config","css","disabled","getInput","disable","add","show","hidden","hide","isSelectable","type","isActive","setActive","active","removeActive","hasError","error","setValid","valid","setError","resetStatus","setPairing","querySelector","setAttribute","id","getLabel","get","value","set","trigger","arguments","length","undefined","onChange","_this","event","forEach","call","onFocusIn","onFocusOut","onClick","autoSelect","setSelectionRange","addEventListener","bindEvents","removeEventListener","bind","init","domEvents","component","autoplay","delay","loops","resize","operation","suboperation","width","height","quality","disableLazy","image","lazy","withBackground","isVertical","elementExist","document","toNode","html","DOMParser","parseFromString","body","childNodes","require","timer","_require2","take","repeat","ViewHelpers","TRIGGERED","prototype","createLoop","images","pipe","Error","startLoop","loop","subscribe","next","index","setImage","src","complete","stopLoop","unsubscribe","getAlt","getImageEl","alt","getTitle","title","options","opts","dataset","context","renderImage","startLazy","onError","alternative","_this2","once","hasClose","autoDom","autoStore","isLoading","triggers","cssVisible","cssModalBody","modalClose","notClose","_objectSpread","randomId","baseConfig","selector","configuration","Object","create","prepareLink","link","key","name","result","concat","content","href","target","mail","prepareDataConfig","data","latitude","longitude","max","min","selected","token","items","defaultDate","preparePrice","price","from","currency","prepareLinks","links","temp","map","prepareImage","tempResize","carousel","resizeData","formatDate","date","Date","rDate","getDate","rMonth","getMonth","rYear","getFullYear","Math","floor","random","addStyle","styles","addData","dataValue","tippy","intlTelInput","intlTelInputUtils","axios","InputClient","ModalClient","Image","agentCarousel","initLegalText","legalText","arrow","arrowType","duration","placement","theme","interactive","initPhone","lang","telInputElement","instancePlugin","preferredCountries","initialCountry","autoPlaceholder","utilsScript","number","getNumber","isValidNumber","setNumber","initModal","c2cMode","modalInit","modal","querySelectorAll","cardCarousel","onOpen","onClose","tooltips","previusTarget","removeActives","cards","initHidden","busy","description","setAgentCarousel","response","InSchedule","generateAgents","parentNode","setCarousel","schedule","ajaxCall","settings","urlList","then","catch","console","sendForm","_this3","formData","Phone","Name","AgentId","agentId","Queue","queueCall","Recaptcha","formValidate","submitButton","contains","phone","textContent","literals","sending","post","urlCall","isAvailable","addErrorMessage","sent","sentError","removeFromDom","removeChild","swiper","addSlide","agentsElements","updateSlides","slideTo","initImages","addEventClick","_this4","addForm","_this5","_this$config$type","form","replaceDataForm","containerForm","appendChild","errorAlert","language","e","captcha","siteKey","preventDefault","grecaptcha","ready","execute","action","removeForm","agentForm","firstChild","replaceDataAgent","newNode","agentCardNode","cloneNode","lastChild","_this$config$agentRep","agentReplace","regExp","RegExp","replace","innerHTML","ImageURLv2","JSON","stringify","_this$config$agentRep2","parse","currentAgent","agentFormNode","Code","_this6","removeAllSlides","Operators","Status","sort","_this7","currentTarget","addRemoveActive","ev","children","_config$css","info","_config$css2","checkInSchedule","inSchedule","addCaptcha","bodyNode","captchaNode","createElement","url","messageError","errorLocation","errorMessage","insertAdjacentHTML","_this8","interval","setInterval","resizeWindow","setTimeout","navigator","userAgent","indexOf","appVersion","evt","createEvent","initUIEvent","window","dispatchEvent","Event","initOnClick","MainResultsCru","C2c","LayoutTemplate","currencySymbols","USD","CAD","BRL","GBP","EUR","MXN","RUB","AED","currencyPositionsByMarket","br","us","gb","it","mx","ae","ca","currencyPositionsByLanguage","en","decimalPosition","getDecimalTemplate","decPart","decimalCharacter","reverseString","str","split","reverse","join","useMarket","currencyPosition","getMarket","getLanguage","format","round","currencySymbol","absValue","abs","priceParts","pow","toString","intPart","formatPriceWithThousandsSeparator","roundDecimals","formatWithForcedDecimals","numberGroupSeparator","es","pt","de","fr","fi","se","ve","ru","he","ar","tr","ua","intPartWithSeparation","i","Language","Market","market","modalInStore","getStore","modalIsUnique","checkUniqueModal","_newInstance$config$t","getTriggers","newInstance","apply","_toConsumableArray","addTriggers","CarouselClient","isMulti","hasPagination","hasNavigation","hasBreakpoints","hasMousewheel","hasAutoplay","hasController","navigation","prev","slide","queue","lineOfBusiness","slidesPerView","slidesPerGroup","spaceBetween","breakpoints","480","991","1200","pagination","sessionCode","visible","bgImg","bgImgConfig","AgentCarouselClient","getUrlParameter","param","sParameterName","sURLVariables","decodeURIComponent","location","search","substring","clearInterval","clicked","paramC2c","display","markdown","PriceFormatter","Env","textUtils","_PriceFormatter","formatPrice","debug","imageResizer","asset","staticUrl","getStaticsBaseUrl","viewport","isDesktop","isTablet","isMobile","dateFormat","renderMarkdown","icon","msg","log","file","versionTimestamp","trimmedFile","isDevelopment","NODE_ENV","isStaging","assetUrl","cdnBase","assetsPath","devHost","isLocal","_process$env$PORT","process","env","PORT","URL","mscdn","startsWith","_url$URL","_ref","_ref$quality","regex","finalSource","prepareSrc","querySeparator","match","exec","relative","params","path","protocol","_ref2","viewportWidth","viewportHeight","finalWidth","finalHeight","device","out","app","toHTML","Swiper","setMultiCarousel","selectorClass","prevEl","nextEl","el","update","setConfig","appendSlide","panel","checkHasPagination","_this$config$autoResi","autoResize","speed","containerModifierClass","slideClass","slideActiveClass","slideVisibleClass","slideNextClass","slidePrevClass","wrapperClass","720","1600","hiddenClass","disabledClass","modifierClass","currentClass","totalClass","bulletClass","bulletActiveClass","clickable","clickableClass","toLowerCase","isProduction","tagAttributes","attributesArray","attributesObject","tagAttributesObject","keys","Array","isArray","getConfigPlaceholder","newConfig","vertical_spacing_top","vertical_spacing_bottom","class","setSpacingPlaceholder","top","bottom","verticalSpacingTop","verticalSpacingBottom","spacing","closeMardownInParagraphs","paragraphs","ellipsis","hasStrongTags","text","p","linkDataAtribute","dataAttributes","buildTags","tagsData","tag","attributes","content_tag","setConfigPlaceholder","classes","spacingClass","cutStringByWords","_ref$limit","limit","_ref$splitWord","splitWord","_ref$ellipsis","textWithSpace","trimmedString","substr","lastIndexOf","cutParagraphsByWords","paragraphsSize","paragraphsProcessed","wordsTotal","words","elementsToInclude","splice","countStringWords","count","resolveComponents","getCookies","getTopButton","getHeader","mainFunction","__webpack_public_path__","publicPath","components","loader","default","mainComponent","observer","IntersectionObserver","entries","entry","intersectionRatio","reduce","acc","unobserve","root","rootMargin","threshold","observe","carouselPrototype","COMPONENTS","_require","getHeaderEl","getHeaderText","innerText","setHeaderText","onClickTrigger","setClose","closeElement","isOpen","isVisible","addToDom","onClickClose","stopPropagation","onKeydown","keyCode","onClickModal","onClickWindow"],"mappings":"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","file":"index.0c2d2ea113fc13724589.bundle.js","sourcesContent":["/* ==========================================================================\n Helpers > Store\n ========================================================================== */\n\nconst removeFromStore = (instance, store) => store.filter(item => instance !== item);\nconst addToStore = (instance, store) => store.push(instance);\n\nmodule.exports = {\n removeFromStore,\n addToStore\n};\n","/* ==========================================================================\n Input > Object\n ========================================================================== */\n\nconst input = {\n /* Enable */\n enable: function Fn() {\n this.element.classList.remove(this.config.css.disabled);\n this.getInput().disabled = false;\n\n return this;\n },\n\n /* Disable */\n disable: function Fn() {\n this.element.classList.add(this.config.css.disabled);\n this.getInput().disabled = true;\n\n return this;\n },\n\n /* Display */\n show: function Fn() {\n this.element.classList.remove(this.config.css.hidden);\n\n return this;\n },\n\n /* Hide */\n hide: function Fn() {\n this.element.classList.add(this.config.css.hidden);\n\n return this;\n },\n\n /* Is selectable -> input is of write type */\n isSelectable: function Fn() {\n return this.getInput().type === 'text';\n },\n\n /* Is active */\n isActive: function Fn() {\n return this.config.isActive;\n },\n\n /* Set active */\n setActive: function Fn() {\n /* Styling */\n this.element.classList.add(this.config.css.active);\n\n /* Set status */\n this.config.isActive = true;\n\n return this;\n },\n\n /* Remove active */\n removeActive: function Fn() {\n /* Styling */\n this.element.classList.remove(this.config.css.active);\n\n /* Set status */\n this.config.isActive = false;\n\n return this;\n },\n\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 /* Pairing label */\n setPairing: function Fn() {\n if (this.element.querySelector('label')) {\n this.getInput().setAttribute('id', this.id);\n this.getLabel().setAttribute('for', this.id);\n }\n\n return this;\n },\n\n /* Get input */\n getInput: function Fn() {\n return this.element.querySelector('input');\n },\n\n /* Get label */\n getLabel: function Fn() {\n return this.element.querySelector('label');\n },\n\n /* Get value */\n get: function Fn() {\n return this.getInput().value;\n },\n\n /* Set value */\n set: function Fn(value, trigger = true) {\n this.value = value;\n this.getInput().setAttribute('value', value);\n this.getInput().value = value;\n\n if (trigger) this.onChange(this);\n\n return this;\n },\n\n /* On change */\n onChange: function Fn(event = false) {\n /* Get track of the new value in the instance based on the input one */\n if (this.value !== this.getInput().value) this.set(this.getInput().value, false);\n\n /* Fire external callbacks */\n if (this.config.onChange.length > 0) this.config.onChange.forEach(item => item.call(this, this, event));\n\n return this;\n },\n\n /* On Focus In */\n onFocusIn: function Fn() {\n /* Not make useless changes */\n if (this.get().length > 0 && this.isActive()) return this;\n\n this.setActive();\n },\n\n /* On Focus Out */\n onFocusOut: function Fn() {\n /* Not make useless changes */\n if (this.get().length > 0 && this.isActive()) return this;\n\n this.removeActive();\n },\n\n /* On Click */\n onClick: function Fn() {\n /* Use this method instead of select(), to allow safari work */\n if (this.isSelectable() && this.config.autoSelect) this.getInput().setSelectionRange(0, this.get().length);\n },\n\n /* Add event listener */\n addEventListener: function Fn() {\n /* Bind events */\n this.bindEvents();\n\n /* On click */\n this.getInput().addEventListener('click', this.onClick);\n\n /* On change */\n this.getInput().addEventListener('change', this.onChange);\n\n /* On focus in */\n this.getInput().addEventListener('focusin', this.onFocusIn);\n\n /* On focus out */\n this.getInput().addEventListener('focusout', this.onFocusOut);\n\n return this;\n },\n\n /* Remove event listener */\n removeEventListener: function Fn() {\n /* On click */\n this.getInput().removeEventListener('click', this.onClick);\n\n /* On change */\n this.getInput().removeEventListener('change', this.onChange);\n\n /* On focus in */\n this.getInput().removeEventListener('focusin', this.onFocusIn);\n\n /* On focus out */\n this.getInput().removeEventListener('focusout', this.onFocusOut);\n\n return this;\n },\n\n /* Bind events */\n bindEvents: function Fn() {\n this.onFocusIn = this.onFocusIn.bind(this);\n this.onFocusOut = this.onFocusOut.bind(this);\n this.onChange = this.onChange.bind(this);\n this.onClick = this.onClick.bind(this);\n\n return this;\n },\n\n /* Init */\n init: function Fn() {\n /* Connect the label in case it has it with its input */\n this.setPairing();\n\n /* Adding listener */\n if (this.config.domEvents) this.addEventListener();\n\n /* In case we have init value, set active status */\n if (this.get().length > 1) this.setActive();\n }\n};\n\nmodule.exports = input;\n","/* ==========================================================================\n Image > Client > Config\n ========================================================================== */\n\n/* Modules */\n\n/* Config */\nconst config = {\n component: 'Image',\n init: true,\n autoplay: false,\n delay: 3000,\n loops: 1,\n resize: {\n operation: 'resize',\n suboperation: 'crop',\n width: 200,\n height: 200,\n quality: 97\n },\n disableLazy: false,\n image: {\n lazy: '/comun/images/shim.gif'\n },\n css: {\n withBackground: 'image--with-background',\n isVertical: 'image--is-vertical'\n }\n};\n\n/* Export */\nmodule.exports = () => config;\n","/* ==========================================================================\n Dom helpers\n ========================================================================== */\n\nconst elementExist = element => !!document.querySelector(element);\n\nconst toNode = html => new DOMParser().parseFromString(html, 'text/html').body.childNodes;\n\nmodule.exports = {\n elementExist,\n toNode\n};\n","/* ==========================================================================\n Image > Client > Prototype\n ========================================================================== */\n\n/* Modules */\nrequire('lazysizes');\nconst { timer } = require('rxjs');\nconst { take, repeat } = require('rxjs/operators');\nconst ViewHelpers = require('@bluekiri/alexandria/core/ViewHelpers');\n\nlet TRIGGERED = false;\n\n/* Prototype */\nconst prototype = {\n /* Create loop */\n createLoop() {\n /* Exit if we have no images to loop */\n if (!this.config.images) return new Error(\"It seems that you don't have images to loop from\");\n\n return timer(this.config.delay, this.config.delay).pipe(\n take(this.config.images.length),\n repeat(this.config.loops === 0 ? false : this.config.loops)\n );\n },\n /* Start loop */\n startLoop() {\n /* Exit if we have no images to loop */\n if (!this.config.images) return new Error(\"It seems that you don't have images to loop from\");\n\n this.loop = this.createLoop().subscribe({\n next: index => this.setImage(this.config.images[index].src, this.config.resize).init(),\n error: () => {},\n complete: () => {}\n });\n\n return this;\n },\n /* Stop loop */\n stopLoop() {\n /* Exit if we have no images to loop */\n if (!this.config.images) return new Error(\"It seems that you don't have images to loop from\");\n\n this.loop.unsubscribe();\n\n return this;\n },\n /* Get alt */\n getAlt() {\n return this.getImageEl().alt;\n },\n /* Get title */\n getTitle() {\n return this.getImageEl().title;\n },\n /* Get Image element */\n getImageEl: function getImageEl() {\n return this.element.querySelector('img');\n },\n /* Set Image */\n setImage: function setImage(src, options = false) {\n let opts = false;\n\n if (options) {\n opts = {\n operation: options.operation || this.config.resize.operation,\n suboperation: options.suboperation || this.config.resize.suboperation,\n width: options.width || this.config.resize.width,\n height: options.height || this.config.resize.height,\n quality: options.quality || this.config.resize.quality\n };\n }\n\n this.getImageEl().dataset.src = ViewHelpers(this.config.context).renderImage(src, opts);\n\n return this;\n },\n /* Start lazy */\n startLazy: function startLazy() {\n this.getImageEl().classList.remove('lazyloaded');\n this.getImageEl().classList.add('lazyload');\n },\n /* Binding events */\n bindEvents: function bindEvents() {\n this.onError = this.onError.bind(this);\n\n return this;\n },\n /* onError */\n onError: function onError() {\n this.getImageEl().src = this.getImageEl().dataset.alternative;\n\n return this;\n },\n /* Add event listener */\n addEventListener: function addEventListener() {\n /* Bind events */\n this.bindEvents();\n\n /* Error */\n this.getImageEl().addEventListener('error', this.onError, { once: true });\n\n /* Lazy loaded */\n if (!TRIGGERED)\n this.getImageEl().addEventListener(\n 'lazyloaded',\n () => {\n if (this.config.autoplay) this.startLoop();\n TRIGGERED = true;\n },\n { once: true }\n );\n },\n /* Init */\n init: function init() {\n /* Exit in case its not lazy */\n if (this.config.disableLazy) return this;\n\n /* Add event listener */\n this.addEventListener();\n\n /* Start lazy load */\n this.startLazy();\n\n /* Return */\n return this;\n }\n};\n\nmodule.exports = prototype;\n","/* ==========================================================================\n Modal > Client > Config\n ========================================================================== */\n\n/* Base config */\nconst config = {\n component: 'Modal',\n init: true,\n hasClose: true,\n autoDom: true,\n autoStore: true,\n isLoading: false,\n triggers: [],\n type: 'modal-type',\n cssVisible: 'is-visible',\n cssModalBody: 'modal-is-visible',\n modalClose: 'data-modal-close'\n};\n\n/* Not close config */\nconst notClose = {\n hasClose: false\n};\n\nconst getConfig = (type = '') => {\n if (type === 'notClose') return { ...config, ...notClose };\n\n return { ...config };\n};\n\nmodule.exports = getConfig;\n","const { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { randomId } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst prototype = require('./prototype');\nconst baseConfig = require('./config');\n\n/**\n * Input component\n * @param {string} selector selector for the component in the client side.\n * @returns {object} Instance containing the input\n */\nmodule.exports = function InputClient(selector = '[data-component=\"Input\"]', configuration = {}) {\n if (elementExist(selector)) {\n // Build instance based on custom input object so we inherit the proto methods\n const instance = Object.create(prototype);\n\n // Config\n instance.config = { ...baseConfig, ...configuration };\n\n // Element reference\n instance.element = document.querySelector(selector);\n\n // Id reference\n instance.id = randomId(randomId('input'));\n\n // Init error handler\n instance.error = false;\n\n // Value reference\n instance.value = instance.get();\n\n // Auto init\n if (instance.config.init) instance.init();\n\n return instance;\n }\n};\n","/* ==========================================================================\n Data Helpers\n ========================================================================== */\n/* eslint-disable */\n/**\n * Function to prepare the data config\n * @param {object} data Object containing the data config.\n * @param {string} key Key name to start the key name value for the object values.\n * @returns {object} Config data to have available in the template\n */\nfunction prepareDataConfig(data = {}, key = 'data') {\n const name = key;\n\n const result = {};\n result[`${name}Content`] = data.content || false;\n result[`${name}Id`] = data.id || false;\n result[`${name}Latitude`] = data.latitude || 0;\n result[`${name}Longitude`] = data.longitude || 0;\n result[`${name}Max`] = data.max || false;\n result[`${name}Min`] = data.min || false;\n result[`${name}Selected`] = data.selected ? '' : false;\n result[`${name}Token`] = data.token || false;\n result[`${name}Type`] = data.type || false;\n result[`${name}Value`] = data.value || false;\n result[`${name}Items`] = data.items || false;\n result[`${name}DefaultDate`] = data.defaultDate || false;\n\n return result;\n}\n/* eslint-enable */\n\n/**\n * Function to prepare the price\n * @param {object} price Object containing the data model for the price.\n * @param {string} key Key name to start the key name value for the object values.\n * @returns {object} Price data to have available in the template\n */\nfunction preparePrice(price = {}, key = 'price') {\n const name = key;\n\n const result = {};\n result[`${name}Value`] = price.value;\n result[`${name}From`] = price.from || '';\n result[`${name}Currency`] = price.currency;\n\n return result;\n}\n\n/**\n * Function to prepare the link\n * @param {object} link Object containing the data model for the link.\n * @param {string} key Key name to start the key name value for the object values.\n * @returns {object} Link data to have available in the template\n */\nfunction prepareLink(link = {}, key = 'link') {\n const name = key;\n\n const result = {};\n result[`${name}Content`] = link.content || '';\n result[`${name}Href`] = link.href;\n result[`${name}Title`] = link.title;\n result[`${name}Target`] = link.target || '_self';\n result[`${name}Mail`] = link.mail || false;\n\n return result;\n}\n\n/**\n * Function to prepare an array of links\n * @param {array} link Object containing the data model for the links.\n * @param {string} key Key name to start the key name value for the object values.\n * @returns {object} Link data to have available in the template\n */\nfunction prepareLinks(links = [], key) {\n const name = key;\n const temp = links.map(item => prepareLink(item.link, name));\n\n const result = {};\n result[`${name}Content`] = temp.map(item => item[`${name}Content`]);\n result[`${name}Href`] = temp.map(item => item[`${name}Href`]);\n result[`${name}Title`] = temp.map(item => item[`${name}Title`]);\n result[`${name}Target`] = temp.map(item => item[`${name}Target`]);\n result[`${name}Mail`] = temp.map(item => item[`${name}Mail`]);\n\n return result;\n}\n/**\n * Function to prepare the date of a image\n * @param {object} image Object containing the data model for the image.\n * @param {string} key Key name to start the key name value for the object values.\n * @param {object} resize Resize configuration for the image.\n * @returns {object} Image data to have available in the template\n */\nfunction prepareImage(image = {}, key = 'image', resize = {}) {\n const name = key;\n const tempResize = {\n operation: resize.operation || 'resize',\n suboperation: resize.suboperation || 'crop',\n height: resize.height || 75,\n width: resize.width || 75,\n quality: resize.quality || 97\n };\n\n const result = {};\n result[`${name}Src`] = image.src;\n result[`${name}Alt`] = image.alt;\n result[`${name}Alternative`] = image.alternative;\n result[`${name}Title`] = image.title;\n result[`${name}Class`] = image.carousel ? 'carousel__lazy' : 'lazy';\n result[`${name}Lazy`] = 'images/shim.gif';\n result[`${name}Carousel`] = !!image.carousel;\n result.resizeData = tempResize;\n\n // Add link to image\n if (image.link) result[`${name}Link`] = prepareLink(image.link);\n\n return result;\n}\n\n/**\n * Function to format the date\n * @param {object} date Object containing the date\n * @returns {string} Date in format yyyy-mm-dd\n */\nfunction formatDate(date = new Date()) {\n const rDate = date.getDate();\n const rMonth = date.getMonth() + 1;\n const rYear = date.getFullYear();\n\n return `${rYear}-${rMonth < 10 ? `0${rMonth}` : rMonth}-${rDate}`;\n}\n\n/**\n * Function to create random id\n * @param {string} key String containing the key to prepend the id\n * @param {Number} max Max number to calculate random number to\n * @returns {string} Random id with format key-number\n */\nfunction randomId(key = 'id', max = 1000) {\n return `${key}-${Math.floor(Math.random() * max)}`;\n}\n\n/**\n * Function to add styles to the config\n * @param {object} data Object containing the data of the model part\n * @param {Array} styles Collection of styles to add to the data\n * @returns {object} Data object with the styles added to the config\n */\nfunction addStyle(data, styles = []) {\n const result = data;\n const css = styles;\n\n result.config = data.config ? data.config : {};\n result.config.styles = result.config ? result.config.styles : [];\n\n result.config.styles = css;\n\n return result;\n}\n\n/**\n * Function to add styles to the config\n * @param {object} data Object containing the data of the model part\n * @param {object} values Collection of data-values to add to the data\n * @returns {object} Data object with the data added to the config\n */\nfunction addData(data, dataValue = {}) {\n const result = data;\n\n result.config = data.config ? data.config : {};\n result.config.data = result.config\n ? {\n ...result.config.data,\n ...dataValue\n }\n : dataValue;\n\n // result.config.data = css;\n\n return result;\n}\n\nmodule.exports = {\n prepareDataConfig,\n preparePrice,\n prepareLink,\n prepareLinks,\n prepareImage,\n formatDate,\n randomId,\n addStyle,\n addData\n};\n","/* ==========================================================================\n Modal > Client > Prototype\n ========================================================================== */\n\n/* Imports */\nconst tippy = require('tippy.js');\nconst intlTelInput = require('intl-tel-input');\nconst intlTelInputUtils = require('intl-tel-input/build/js/utils');\nconst axios = require('axios');\n\nconst InputClient = require('../../../input/client/js');\nconst ModalClient = require('../../../modal/client/js');\nconst Image = require('../../../image/client/js');\nconst config = require('./config');\n\nconst agentCarousel = {\n initLegalText: function fn() {\n const { legalText } = this.config.type;\n\n const tippyLegalText = tippy(`${this.selector} [data-type='${legalText}-link']`, {\n arrow: true,\n arrowType: 'sharp',\n duration: 0,\n placement: 'bottom',\n theme: 'light base price-info',\n trigger: 'click',\n interactive: true,\n html: this.element.querySelector(`${this.selector} [data-type='${legalText}-message']`)\n });\n\n return tippyLegalText;\n },\n initPhone: function fn(instance, lang) {\n const telInputElement = instance.getInput();\n\n // initialise plugin Intl telephone\n const instancePlugin = intlTelInput(telInputElement, {\n preferredCountries: ['ES', 'PT', 'DE', 'FR', 'GB', 'IT', 'BR', 'FI', 'IL', 'AE', 'MX', 'RU'],\n initialCountry: lang,\n autoPlaceholder: 'off',\n utilsScript: intlTelInputUtils\n });\n\n telInputElement.addEventListener('keyup', () => {\n const number = instancePlugin.getNumber();\n\n if (instancePlugin.isValidNumber()) {\n instancePlugin.setNumber(number);\n }\n });\n\n return instancePlugin;\n },\n initModal: function fn() {\n // Modal\n if (!this.config.c2cMode) {\n if (!this.modalInit) {\n this.modalInit = true;\n\n this.modal = ModalClient(`${this.selector} [data-component=\"Modal\"]`, {\n autoDom: this.config.modal.autoDom,\n triggers: this.carousel.element.querySelectorAll(`[data-type=${this.config.type.cardCarousel}]`),\n onOpen: () => {\n Image(`${this.selector} [data-component=\"Image\"][data-type=\"image-modal\"]`);\n },\n onClose: () => {\n if (this.legalText && this.legalText.tooltips.length > 0) {\n this.legalText.tooltips[0].hide();\n }\n this.previusTarget = undefined;\n this.removeActives(this.cards);\n }\n });\n\n return this.modal;\n }\n\n this.modal.config.triggers = this.carousel.element.querySelectorAll(\n `[data-type=${this.config.type.cardCarousel}]`\n );\n this.modal.init();\n\n return this.modal;\n }\n\n return false;\n },\n initHidden: function fn() {\n this.busy.classList.add(this.config.css.hidden);\n // this.schedule.classList.add(this.config.css.hidden);\n this.description.classList.add(this.config.css.hidden);\n },\n setAgentCarousel: function fn(response) {\n this.initHidden();\n if (response.data.InSchedule) {\n if (this.generateAgents(response.data)) {\n this.description.classList.remove(this.config.css.hidden);\n this.carousel.element.parentNode.classList.remove(this.config.css.hidden);\n this.setCarousel();\n this.initModal();\n return true;\n }\n this.carousel.element.parentNode.classList.add(this.config.css.hidden);\n this.busy.classList.remove(this.config.css.hidden);\n return true;\n }\n\n this.carousel.element.parentNode.classList.add(this.config.css.hidden);\n this.schedule.classList.remove(this.config.css.hidden);\n return true;\n },\n ajaxCall: function fn() {\n return axios\n .get(this.settings.urlList)\n .then(response => {\n this.setAgentCarousel(response);\n })\n .catch(error => console.error(error));\n },\n sendForm: function fn(data = false) {\n const formData = {\n Phone: this.intlTelInput.getNumber(),\n Name: this.name.get(),\n AgentId: this.agentId.value,\n Queue: this.config.queueCall || this.settings.queueCall,\n Recaptcha: data\n };\n\n if (this.formValidate() && !this.submitButton.classList.contains('is-disable')) {\n this.name.element.classList.add('is-disable');\n this.phone.element.classList.add('is-disable');\n this.submitButton.classList.add('is-disable');\n this.submitButton.textContent = this.literals.sending;\n axios\n .post(this.settings.urlCall, formData)\n .then(response => {\n if (!response.data.isAvailable) {\n this.addErrorMessage();\n this.modal.hide();\n }\n this.submitButton.textContent = this.literals.sent;\n\n return true;\n })\n .catch(() => {\n this.submitButton.textContent = this.literals.sentError;\n return false;\n });\n }\n return this;\n },\n formValidate: function fn() {\n this.name.setValid();\n this.phone.setValid();\n if (!this.name.get() || !this.intlTelInput.isValidNumber()) {\n if (!this.name.get()) this.name.setError();\n if (!this.intlTelInput.isValidNumber()) this.phone.setError();\n return false;\n }\n\n return true;\n },\n removeFromDom: function fn(element) {\n if (element) {\n return this.element.removeChild(element);\n }\n return false;\n },\n setCarousel: function fn() {\n this.carousel.swiper.addSlide(0, this.agentsElements);\n this.carousel.swiper.updateSlides();\n this.carousel.swiper.slideTo(0, 0);\n this.cards = this.carousel.element.querySelectorAll(`[data-type=${this.config.type.cardCarousel}]`);\n this.images = this.initImages();\n this.addEventClick();\n return this;\n },\n initImages: function fn() {\n return this.agentsElements.map((item, index) =>\n Image(`${this.selector} [data-component=\"Image\"][data-type=\"agent-card-${index}\"]`)\n );\n },\n addForm: function fn() {\n const { name, phone, submitButton, agentId } = this.config.type;\n const form = this.replaceDataForm();\n this.submitButton = form.querySelector(`[data-type=\"${submitButton}\"]`);\n\n if (this.containerForm) {\n this.containerForm.appendChild(form);\n }\n\n const errorAlert = document.querySelector('.agent-carousel__error');\n if (errorAlert) errorAlert.classList.add('is-hidden');\n\n this.legalText = this.initLegalText();\n\n // INPUT AGENT ID\n this.agentId = form.querySelector(`[data-type=\"${agentId}\"]`);\n // INPUT NAME\n this.name = InputClient(`${this.selector} [data-component=\"Input\"][data-type=${name}]`);\n\n // INPUT PHONE\n this.phone = InputClient(`${this.selector} [data-component=\"Input\"][data-type=${phone}]`);\n this.intlTelInput = this.initPhone(this.phone, this.language);\n\n // EVENT CLICK BUTTON SEND\n this.submitButton.addEventListener('click', e => {\n // Captcha behavior\n if (this.formValidate()) {\n if (this.settings.captcha) {\n const { siteKey } = this.settings.captcha;\n\n e.preventDefault();\n // eslint-disable-next-line\n grecaptcha.ready(() => {\n const instance = this;\n // eslint-disable-next-line\n grecaptcha\n .execute(`${siteKey}`, {\n action: 'submit'\n })\n .then(response => {\n instance.sendForm(response);\n });\n });\n } else {\n this.sendForm();\n }\n }\n });\n\n return this;\n },\n removeForm: function fn() {\n const { agentForm } = this.config.type;\n if (this.containerForm.firstChild && this.containerForm.firstChild.dataset.type === agentForm) {\n this.containerForm.removeChild(this.containerForm.firstChild);\n }\n\n return this;\n },\n replaceDataAgent: function fn(data, index) {\n const newNode = this.agentCardNode.cloneNode(true).lastChild;\n const { src, alt, title, name } = this.config.agentReplace;\n const regExp = new RegExp(name.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g');\n\n newNode.firstChild.dataset.type = `agent-card-${index}`;\n\n newNode.innerHTML = newNode.innerHTML\n .replace(src, data.ImageURLv2)\n .replace(alt, data.Name)\n .replace(title, data.Name)\n .replace(regExp, data.Name);\n\n newNode.dataset.settings = JSON.stringify(data);\n newNode.dataset.type = this.config.type.cardCarousel;\n\n return newNode;\n },\n replaceDataForm: function fn() {\n const { src, alt, title, name, description, agentId } = this.config.agentReplace;\n const data = JSON.parse(this.currentAgent.dataset.settings);\n const form = this.agentFormNode.cloneNode(true).lastChild;\n const regExp = new RegExp(name.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g');\n\n form.innerHTML = form.innerHTML\n .replace(src, data.ImageURLv2)\n .replace(alt, data.Name)\n .replace(title, data.Name)\n .replace(regExp, data.Name)\n .replace(description, '')\n .replace(agentId, data.Code);\n\n return form;\n },\n generateAgents: function fn(data) {\n this.carousel.swiper.removeAllSlides();\n\n this.agentsElements = data.Operators.filter(item => item.Status === 1)\n .map((item, index) => {\n const card = this.replaceDataAgent(item, index);\n return card;\n })\n .sort(() => Math.random() - 0.5);\n\n if (this.agentsElements.length) return true;\n\n return false;\n },\n addEventClick: function fn() {\n this.cards.forEach(item =>\n item.addEventListener('click', event => {\n this.currentAgent = event.currentTarget;\n this.removeActives(this.cards);\n this.addRemoveActive(event);\n })\n );\n },\n addRemoveActive: function fn(ev) {\n const { currentTarget } = ev;\n const children = currentTarget.firstChild;\n const { active, hidden } = config().css;\n\n if (!children.classList.contains(active)) {\n if (this.config.c2cMode) this.info.classList.add(hidden);\n children.classList.add(active);\n this.addForm();\n }\n\n if (currentTarget !== this.previusTarget) {\n this.previusTarget = currentTarget;\n return this;\n }\n\n this.previusTarget = undefined;\n children.classList.remove(active);\n if (this.config.c2cMode) this.info.classList.remove(hidden);\n this.removeForm();\n return this;\n },\n removeActives: function fn(cards) {\n const { active, hidden } = config().css;\n\n if (this.config.c2cMode) this.info.classList.remove(hidden);\n this.removeForm();\n cards.forEach(item => item.firstChild.classList.remove(active));\n return this;\n },\n checkInSchedule: function fn() {\n if (this.settings.inSchedule) {\n this.carousel.element.parentNode.classList.add(this.config.css.hidden);\n this.busy.classList.remove(this.config.css.hidden);\n return true;\n }\n return false;\n },\n addCaptcha: function fn() {\n const bodyNode = document.querySelector('body');\n const captchaNode = document.createElement('script');\n captchaNode.setAttribute('src', `${this.settings.captcha.url}${this.settings.captcha.siteKey}`);\n bodyNode.appendChild(captchaNode);\n },\n addErrorMessage: function fn() {\n this.messageError = this.element.dataset.error ? JSON.parse(this.element.dataset.error) : {};\n\n const errorLocation = document.querySelector('.agent-carousel');\n const errorMessage = `\n
${this.messageError.title || ''}
\n${this.messageError.description || ''}
\n/, '').replace(/<\\/p>$/, '');\n return out;\n }\n};\n","/* ==========================================================================\n Carousel > Prototype\n ========================================================================== */\n\n/* Modules */\nconst Swiper = require('swiper/dist/js/swiper');\n\nconst config = require('./vendor/config');\n\nconst { resizeWindow } = require('../../../../events/resize');\n\n/* Set the multi carousel */\nfunction setMultiCarousel(instance) {\n const result = {};\n const selectorClass = `js-${instance.id}`;\n\n /* Add the custom classes to navigation */\n if (instance.config.hasNavigation) {\n result.navigation = {};\n result.navigation.prevEl = `${instance.swiper.navigation.prevEl}.${selectorClass}`;\n result.navigation.nextEl = `${instance.swiper.navigation.nextEl}.${selectorClass}`;\n\n instance.element.parentNode\n .querySelectorAll('.carousel__navigation')\n .forEach(item => item.classList.add(selectorClass));\n }\n\n /* Add the custom classes to pagination */\n if (instance.config.hasPagination) {\n result.pagination = {};\n result.pagination.el = `${instance.swiper.pagination.el}.${selectorClass}`;\n\n instance.element.parentNode.querySelector('.carousel__pagination').classList.add(selectorClass);\n }\n\n return result;\n}\n\nconst checkHasNavigation = (hasNavigation, instance) => {\n const panel = instance;\n if (hasNavigation) {\n panel.swiper.navigation = { ...instance.swiper.navigation, ...setMultiCarousel(instance).navigation };\n return;\n }\n panel.swiper.navigation = {};\n};\n\nconst checkHasPagination = (hasPagination, instance) => {\n const panel = instance;\n if (hasPagination) {\n panel.swiper.pagination = { ...instance.swiper.pagination, ...setMultiCarousel(instance).pagination };\n return;\n }\n panel.swiper.pagination = {};\n};\n\nconst carousel = {\n /* Update swiper view */\n update() {\n this.swiper.update();\n\n return this;\n },\n /* Add 3rd party library config to the instance config */\n setConfig() {\n /* compose config for 3rd party library */\n const baseConfig = config(this.config);\n this.swiper = { ...baseConfig, ...this.config.swiper };\n\n return this;\n },\n /* Append slide */\n appendSlide(content = '') {\n if (!content) return this;\n\n this.swiper.appendSlide(`
`);\n\n return this;\n },\n /* Init */\n init() {\n /* Set the 3rd party library config */\n this.setConfig();\n\n /* Set the multicarousel */\n if (this.config.isMulti) {\n checkHasNavigation(this.config.hasNavigation, this);\n\n checkHasPagination(this.config.hasPagination, this);\n }\n\n /* Create 3rd party library choices instance */\n this.swiper = new Swiper(this.element, this.swiper);\n\n /* Set auto resize */\n const { autoResize = true } = this.config;\n\n if (autoResize) {\n resizeWindow(250);\n }\n }\n};\n\nmodule.exports = carousel;\n","/* ==========================================================================\n Carousel > Vendor > Config\n ========================================================================== */\n\nconst config = {\n init: true,\n slidesPerView: 6,\n slidesPerGroup: 6,\n spaceBetween: 20,\n speed: 900,\n containerModifierClass: 'carousel--',\n slideClass: 'carousel__slide',\n slideActiveClass: 'carousel__slide--active',\n slideVisibleClass: 'carousel__slide--visible',\n slideNextClass: 'carousel__slide--next',\n slidePrevClass: 'carousel__slide--prev',\n wrapperClass: 'carousel__wrapper'\n};\n\n/* Breakpoints config */\nconst breakpoints = {\n // when window width is <= 480px\n 480: {\n slidesPerView: 1,\n slidesPerGroup: 1\n },\n // when window width is <= 720px\n 720: {\n slidesPerView: 2,\n slidesPerGroup: 2\n },\n // when window width is <= 1200px\n 1200: {\n slidesPerView: 3,\n slidesPerGroup: 3\n },\n // when window width is <= 1600px\n 1600: {\n slidesPerView: 4,\n slidesPerGroup: 4\n }\n};\n\n/* Navigation config */\nconst navigation = {\n nextEl: '.carousel__navigation--next',\n prevEl: '.carousel__navigation--prev',\n hiddenClass: 'carousel__navigation--hidden',\n disabledClass: 'carousel__navigation--disabled'\n};\n\n/* Pagination config */\nconst pagination = {\n el: '.carousel__pagination',\n modifierClass: 'carousel__pagination--',\n currentClass: 'carousel__pagination--current',\n totalClass: 'carousel__pagination--total',\n hiddenClass: 'carousel__pagination--hidden',\n bulletClass: 'carousel__bullet',\n bulletActiveClass: 'carousel__bullet--active',\n clickable: true,\n clickableClass: 'carousel__pagination--clickable'\n};\n\n/* Autoplay config */\nconst autoplay = {\n delay: 7000\n};\n\nmodule.exports = (options = {}) => ({\n ...config,\n breakpoints: options.hasBreakpoints ? breakpoints : false,\n navigation: options.hasNavigation ? navigation : false,\n pagination: options.hasPagination ? pagination : false,\n autoplay: options.hasAutoplay ? autoplay : false\n});\n","module.exports = {\n isLocal(env = process.env.NODE_ENV) {\n if (!env) {\n return false;\n }\n\n return env.toLowerCase() === 'local';\n },\n\n isDevelopment(env = process.env.NODE_ENV) {\n if (!env) {\n return false;\n }\n\n return env.toLowerCase() === 'dev' || env === 'development';\n },\n\n isStaging(env = process.env.NODE_ENV) {\n if (!env) {\n return false;\n }\n\n return env.toLowerCase() === 'staging' || env.toLowerCase() === 'sta';\n },\n\n isProduction(env = process.env.NODE_ENV) {\n if (!env) {\n return false;\n }\n\n return !(\n this.isLocal(env.toLowerCase()) ||\n this.isDevelopment(env.toLowerCase()) ||\n this.isStaging(env.toLowerCase())\n );\n }\n};\n","/**\n * Module that contains utils for text and html\n */\nmodule.exports = {\n linkDataAtribute,\n tagAttributes,\n tagAttributesObject,\n buildTags,\n getConfigPlaceholder,\n setConfigPlaceholder,\n setSpacingPlaceholder,\n cutStringByWords,\n cutParagraphsByWords,\n countStringWords\n};\n\n/**\n * Pug syntax &attributes -> https://pugjs.org/language/attributes.html\n * Build string of the next data structure from an array\n *\n * @param {Array} [dataAttributes=[]]\n * @returns {object}\n */\nfunction linkDataAtribute(dataAttributes = []) {\n const data = {};\n dataAttributes.forEach(item => {\n data[`data-${item.name}`] = item.value;\n });\n return data;\n}\n\n/**\n * Return html tags attributes as a string\n *\n * @param {array} attributesArray array with a data of the tag attributes\n * @returns {string} the string of HTML attrs\n */\nfunction tagAttributes(attributesArray) {\n const attributesObject = tagAttributesObject(attributesArray);\n return Object.keys(attributesObject)\n .map(name => `${name}= \"${attributesObject[name]}\"`)\n .join(' ');\n}\n\n/**\n * Return html tags attributes as an object\n *\n * @param {array} attributesArray array with a data of the tag attributes\n * @returns {object} the object of HTML attrs\n */\nfunction tagAttributesObject(attributesArray) {\n const attributesObject = {};\n\n attributesArray\n .filter(item => !!item.name)\n .forEach(item => {\n // if value is an array, just join the values as a single string\n const value = Array.isArray(item.value) ? item.value.join(' ') : item.value;\n attributesObject[item.name] = value;\n });\n\n return attributesObject;\n}\n\n/**\n * Builds a list of tags\n *\n * @param {Array} tagsData The array of data for each tag. Each one { content, content_tag?, attributes? }\n * @param {string} [tag='span'] The tag name (span by default)\n * @returns markup html tag with your attributes if has it\n */\nfunction buildTags(tagsData, tag = 'span') {\n return tagsData\n .map(item => {\n const attributes = item.attributes ? ` ${tagAttributes(item.attributes)}` : '';\n let html;\n if (item.content_tag) {\n html = `<${tag}${attributes}><${item.content_tag}>${item.content}${item.content_tag}>${tag}>`;\n } else {\n html = `<${tag}${attributes}>${item.content}${tag}>`;\n }\n return html;\n })\n .join('');\n}\n\n/**\n * Generates config for placeholders\n *\n * @param {any} config Model.{placeholder}.data.config\n * @returns config object\n */\nfunction getConfigPlaceholder(config) {\n const newConfig = {};\n newConfig.vertical_spacing_top = config.vertical_spacing_top || false;\n newConfig.vertical_spacing_bottom = config.vertical_spacing_bottom || false;\n newConfig.class = config.class || false;\n return newConfig;\n}\n\n/**\n * Sets placeholders layout\n * @param {object} config - Model.{placeholder}.data.config\n * @returns {string} return class names\n */\nfunction setConfigPlaceholder(config) {\n const newConfig = getConfigPlaceholder(config);\n const spacingClass = setSpacingPlaceholder(newConfig.vertical_spacing_top, newConfig.vertical_spacing_bottom);\n let classes;\n\n if (!spacingClass && !newConfig.class) {\n classes = false;\n } else if (spacingClass) {\n classes = `${spacingClass} `;\n } else {\n classes = '';\n }\n\n if (newConfig.class) {\n newConfig.class.forEach(item => {\n classes += `${item} `;\n });\n }\n\n return classes;\n}\n\n/**\n * Sets class name for the vertical spacing of layout containers(\"placeholder\")\n *\n * @param {any} top Model.{placeholder}.config.vertical_spacing_top\n * @param {any} bottom Model.{placeholder}.config.vertical_spacing_bottom\n * @returns {string} class name\n */\nfunction setSpacingPlaceholder(top, bottom) {\n const verticalSpacingTop = top ? 'spacing-top' : false;\n const verticalSpacingBottom = bottom ? 'spacing-bottom' : false;\n let spacing = false;\n\n if (verticalSpacingBottom && verticalSpacingTop) {\n spacing = `${verticalSpacingTop} ${verticalSpacingBottom}`;\n return spacing;\n }\n\n if (verticalSpacingTop) {\n spacing = verticalSpacingTop;\n }\n\n if (verticalSpacingBottom) {\n spacing = verticalSpacingBottom;\n }\n\n return spacing;\n}\n\n/**\n * Cut long string by words ( or not ) how you want\n *\n * @param {any} text text to be cutted\n * @param {any} [{ limit = 155, splitWord = false, ellipsis = '...' }={}] Options:\n * - limit: maximum of characters to be displayed, NOT WORDS\n * - splitWord: cut words splitting in the middle. if true, will get the last entire words and cut there.\n * - ellipsis: custom ellipsis for the end of the string\n * @returns {string}\n * @example cutStringByWords('my string', { limit: 40} )\n * @example cutStringByWords('my string', { limit: 40, splitWord: true })\n * @example cutStringByWords('my string', { limit: 40, splitWord: true, elipsis: 'xxx' })\n */\nfunction cutStringByWords(text, { limit = 155, splitWord = false, ellipsis = '...' } = {}) {\n const textWithSpace = `${text} `;\n let trimmedString = textWithSpace.substr(0, limit || 155);\n if (!splitWord) {\n trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(' ')));\n }\n if (trimmedString.length + 1 < textWithSpace.length && ellipsis !== ' ') {\n trimmedString += ellipsis;\n }\n return trimmedString;\n}\n\n/**\n * Cuts a list of paragraphs using a character limit\n *\n * @param {Array} paragraphs An array of paragraphs\n * @param {Number} limit The character limit\n * @param {string} [ellipsis='...']\n * @returns {Array} The array of paragraphs\n */\nfunction cutParagraphsByWords(paragraphs, limit, ellipsis = '...') {\n const paragraphsSize = paragraphs.length;\n const paragraphsProcessed = [];\n let wordsTotal = 0;\n\n for (let i = 0; i < paragraphsSize; i++) {\n let words = paragraphs[i].split(' ');\n\n if (wordsTotal + words.length <= limit) {\n wordsTotal += words.length;\n paragraphsProcessed.push(paragraphs[i]);\n } else {\n const elementsToInclude = limit - wordsTotal;\n if (elementsToInclude > 0) {\n words = words.splice(0, elementsToInclude);\n paragraphsProcessed.push(words.join(' ') + ellipsis);\n } else {\n paragraphsProcessed[i - 1] = paragraphsProcessed[i - 1] + ellipsis;\n }\n i = paragraphsSize + 1;\n }\n }\n\n return closeMardownInParagraphs(paragraphsProcessed, ellipsis);\n}\n\nfunction closeMardownInParagraphs(paragraphs, ellipsis = '...') {\n const hasStrongTags = text => text.match(/(\\*\\*)/g) && text.match(/(\\*\\*)/g).length % 2 !== 0;\n\n return paragraphs.map(p => {\n if (hasStrongTags(p)) {\n return p.replace(ellipsis, `**${ellipsis}`);\n }\n return p;\n });\n}\n\n/**\n * @name countStringWords\n * @summary count the words from a string\n * @param {string} text - text to be counted\n * @returns {number} total - returns the total number of words at the string\n * @example countStringWords(Model.title)\n */\nfunction countStringWords(text) {\n let count = 0;\n const words = text.toString().split(' ');\n for (let i = 0, { length } = words; i < length; i++) {\n if (words[i] !== '') {\n count++;\n }\n }\n return count;\n}\n","/* ==========================================================================\n LayoutTemplate > Client\n ========================================================================== */\n\n/* Modules */\nrequire('intersection-observer');\n\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst { resolveComponents, getCookies, getTopButton, getHeader } = require('./components');\n\nmodule.exports = function LayoutTemplate(mainFunction, selector = '[data-component=\"LayoutTemplate\"]') {\n if (elementExist(selector)) {\n const element = document.querySelector(selector);\n\n const config = {\n ...(function getConfig() {\n if (!element.dataset.config) return '';\n\n const result = JSON.parse(element.dataset.config);\n element.dataset.config = '';\n return result;\n })()\n };\n\n /**\n * Setting public path to the webpack exposed variable\n */\n /* eslint-disable */\n __webpack_public_path__ = config.publicPath;\n /* eslint-enable */\n\n const components = resolveComponents()\n .map(component => ({\n loader: component.loader,\n element: document.querySelector(`[data-component=\"${component.name}\"]`)\n }))\n .filter(component => component.element);\n\n /**\n * Execute main function\n */\n mainFunction().then(module => module.default(`[data-component=\"${config.mainComponent}\"]`));\n\n /**\n * Observer to lazy load modules based on\n * currently viewed components in the viewport\n */\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n const { loader } = components\n .filter(component => component.element === entry.target)\n .reduce(acc => acc);\n\n /**\n * Init component with its loader and then\n * unobserve from this entry so we dont\n * call the init of the component more\n * than once\n */\n loader().then(module => {\n module.default();\n\n observer.unobserve(entry.target);\n });\n }\n });\n },\n {\n root: null, // avoiding 'root' or setting it to 'null' sets it to default value: viewport\n rootMargin: '0px',\n threshold: 0.15\n }\n );\n\n components.forEach(component => {\n observer.observe(component.element);\n });\n\n /* Cookies */\n getCookies().then(module => module.default());\n\n /* TopButton */\n getTopButton().then(module => module.default());\n\n /* Header */\n getHeader().then(module => module.default);\n }\n};\n","/* ==========================================================================\n Carousel\n ========================================================================== */\n\n/* Modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { randomId } = require('@bluekiri/alexandria/helpers/dataHelpers');\nconst carouselPrototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * Client/browser JS\n * @param {string} selector String selector\n * @param {object} config Configuration object to create the carousel instance\n */\nmodule.exports = function CarouselClient(selector = '[data-component=\"Carousel\"]', configuration = {}) {\n if (elementExist(selector)) {\n /* Create the instance based on prototype */\n const instance = Object.create(carouselPrototype);\n\n /* Element reference */\n instance.element = document.querySelector(selector);\n\n /* Id reference */\n instance.id = instance.element.dataset.id || randomId('carousel');\n\n /* Config */\n instance.config = {\n ...config(),\n ...configuration,\n swiper: { ...config().swiper, ...configuration.swiper, lazy: false }\n };\n\n /* Set pagination based on data model */\n if (Object.keys(instance.element.dataset).filter(item => item === 'pagination').length > 0) {\n instance.config.hasPagination = true;\n } else {\n instance.config.hasPagination = false;\n }\n\n /* Set navigation based on data model */\n if (Object.keys(instance.element.dataset).filter(item => item === 'navigation').length > 0) {\n instance.config.hasNavigation = true;\n } else {\n instance.config.hasNavigation = false;\n }\n\n /* Auto init */\n if (instance.config.init) instance.init();\n\n return instance;\n }\n};\n","/* ==========================================================================\n LayoutTemplate > Client > Components\n ========================================================================== */\n\n/**\n * Header\n */\nconst getHeader = () => {\n return import(\n /* webpackChunkName: \"header\" */\n '@bluekiri/alexandria-logitravel/components/header/client/js'\n );\n};\n\n/**\n * Footer\n */\nconst getFooter = () => {\n return import(\n /* webpackChunkName: \"footer\" */\n '@bluekiri/alexandria-logitravel/components/footer/client/js'\n );\n};\n\n/**\n * Cookies\n */\nconst getCookies = () => {\n return import(\n /* webpackChunkName: \"cookies\" */\n '@bluekiri/alexandria-contrib-components/components/cookies/client/js'\n );\n};\n\n/**\n * TopButton\n */\nconst getTopButton = () => {\n return import(\n /* webpackChunkName: \"top-button\" */\n '@bluekiri/alexandria-contrib-components/components/top-button/client/js'\n );\n};\n\n/**\n * CruisesCertifications\n */\nconst getCruisesCertifications = () => {\n return import(\n /* webpackChunkName: \"cruises-certifications\" */\n '@logitravel/alex-comp-cru/components/cruises-certifications/client/js'\n );\n};\n\n/**\n * Components\n */\nconst COMPONENTS = [\n {\n loader: getFooter,\n name: 'Footer'\n },\n {\n loader: getCruisesCertifications,\n name: 'CruisesCertifications'\n }\n];\n\n/**\n * Resolver components\n */\nfunction resolveComponents() {\n return COMPONENTS;\n}\n\n/* Exports */\nmodule.exports = {\n getCookies,\n getTopButton,\n getHeader,\n resolveComponents\n};\n","/* ==========================================================================\n Image > Client\n ========================================================================== */\n\n/* Modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * Image component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function Image(selector = '[data-component=\"Image\"]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Element reference */\n instance.element = document.querySelector(selector);\n\n /* Config reference */\n instance.config = {\n ...config(),\n ...configuration,\n ...(function getConfig() {\n const result = instance.element.dataset.config ? JSON.parse(instance.element.dataset.config) : {};\n instance.element.dataset.config = '';\n return result;\n })()\n };\n\n /* Auto init */\n if (instance.config.init) instance.init();\n\n /* Return instance to other components */\n return instance;\n }\n};\n","/* ==========================================================================\n Modal > Client > Prototype\n ========================================================================== */\n\n/* Imports */\nconst { addToStore, removeFromStore } = require('@bluekiri/alexandria/helpers/store');\n\n/* Modal store */\nlet store = [];\n\nconst modal = {\n /* Get header el */\n getHeaderEl() {\n return this.element.querySelector('[data-modal-header]');\n },\n /* Get header text */\n getHeaderText() {\n return this.getHeaderEl().innerText;\n },\n /* Set header text */\n setHeaderText(text = false) {\n if (text) this.getHeaderEl().innerText = text;\n\n return this;\n },\n /* Add triggers */\n addTriggers: function Fn(triggers) {\n triggers.forEach(trigger => {\n this.bindEvents();\n trigger.addEventListener('click', this.onClickTrigger);\n });\n },\n\n /* Set close button */\n setClose: function Fn() {\n if (!this.config.hasClose) return this;\n\n this.closeElement = this.element.querySelector(`[${this.config.modalClose}]`);\n\n return this;\n },\n\n /* Is open status */\n isOpen: function Fn() {\n return this.isVisible;\n },\n\n /* Display modal */\n display: function Fn() {\n /* Add to dom in case it is loading modal */\n if (this.config.autoDom) this.addToDom();\n\n this.element.setAttribute('aria-hidden', 'false');\n this.element.classList.add(this.config.cssVisible);\n document.body.classList.add(this.config.cssModalBody);\n this.isVisible = true;\n if (!this.config.isLoading) this.addEventListener();\n\n // Fire external callbacks before open panel\n this.onOpen();\n\n return this;\n },\n\n /* Hide modal */\n hide: function Fn() {\n this.element.setAttribute('aria-hidden', 'true');\n this.element.classList.remove(this.config.cssVisible);\n document.body.classList.remove(this.config.cssModalBody);\n this.isVisible = false;\n if (!this.config.isLoading) this.removeEventListener();\n\n /* Remove from dom in case it is loading modal */\n if (this.config.isLoading) this.removeFromDom();\n\n /* Fire external callbacks before open panel */\n this.onClose();\n\n return this;\n },\n\n /* Add to dom */\n addToDom: function Fn() {\n document.body.appendChild(this.element);\n\n return this;\n },\n\n /* Remove from dom */\n removeFromDom: function Fn() {\n this.element.parentNode.removeChild(this.element);\n\n return this;\n },\n\n /* onOpen callBacks */\n onOpen: function Fn(event = false) {\n /* Fire external callbacks */\n if (this.config.onOpen) this.config.onOpen.call(this, this, event);\n\n return this;\n },\n\n /* onClose callBacks */\n onClose: function Fn(event = false) {\n /* Fire external callbacks */\n if (this.config.onClose) this.config.onClose.call(this, this, event);\n\n return this;\n },\n\n /* On click close */\n onClickClose: function Fn(event) {\n /* Hide */\n this.hide();\n\n /* Remove from dom */\n if (this.config.autoDom) this.removeFromDom();\n\n /* Prevent bubbling */\n event.stopPropagation();\n event.preventDefault();\n\n return this;\n },\n\n /* On key down */\n onKeydown: function Fn(event) {\n /* Esc key */\n if (!(event.keyCode === 27)) return this;\n\n /* Hide */\n this.hide();\n\n /* Remove from dom */\n if (this.config.autoDom) this.removeFromDom();\n\n /* Prevent bubbling */\n event.stopPropagation();\n\n return this;\n },\n\n /* On click trigger */\n onClickTrigger: function Fn(event) {\n /* Add to dom first */\n if (this.config.autoDom) this.addToDom();\n\n /* Display */\n this.display();\n\n /* Prevent bubbling */\n event.stopPropagation();\n\n return this;\n },\n\n /* On click modal */\n onClickModal: function Fn(event) {\n /* Prevent bubbling */\n event.stopPropagation();\n\n return this;\n },\n\n /* On click window */\n onClickWindow: function Fn() {\n /* Hide */\n this.hide();\n\n /* Remove from dom */\n if (this.config.autoDom) this.removeFromDom();\n\n return this;\n },\n\n /* Bind events */\n bindEvents: function Fn() {\n this.onClickTrigger = this.onClickTrigger.bind(this);\n this.onClickWindow = this.onClickWindow.bind(this);\n this.onClickClose = this.onClickClose.bind(this);\n this.onClickModal = this.onClickModal.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n this.onOpen = this.onOpen.bind(this);\n this.onClose = this.onClose.bind(this);\n },\n\n /* Remove event listener */\n removeEventListener: function Fn() {\n /* Window */\n document.removeEventListener('click', this.onClickWindow);\n\n /* Modal */\n this.element.firstChild.removeEventListener('click', this.onClickModal);\n\n /* Close */\n if (this.config.hasClose) this.closeElement.removeEventListener('click', this.onClickClose);\n document.removeEventListener('keydown', this.onKeydown);\n },\n\n /* Add event listener */\n addEventListener: function Fn() {\n /* Bind events */\n this.bindEvents();\n\n /* Window */\n document.addEventListener('click', this.onClickWindow);\n\n /* Modal */\n this.element.firstChild.addEventListener('click', this.onClickModal);\n\n /* Close */\n if (this.config.hasClose) this.closeElement.addEventListener('click', this.onClickClose);\n document.addEventListener('keydown', this.onKeydown);\n },\n\n /* Add to store */\n addToStore: function Fn() {\n /* Control unique instances of same modal */\n if (this.getStore().filter(item => item.type === this.type).length > 0) return this;\n\n /* Quarry function */\n addToStore(this, store);\n\n return this;\n },\n\n /* Remove from store */\n removeFromStore: function Fn() {\n store = removeFromStore(this, store);\n\n return this;\n },\n\n /* Get store */\n getStore: function Fn() {\n return store;\n },\n\n /* Init */\n init: function Fn() {\n /* Set close button */\n this.setClose();\n\n /* Add triggers */\n if (this.config.triggers.length > 0) this.addTriggers(this.config.triggers);\n\n /* Add to store */\n if (this.config.autoStore) this.addToStore();\n\n /* Remove from dom */\n if (this.config.autoDom) this.removeFromDom();\n }\n};\n\nmodule.exports = modal;\n"],"sourceRoot":""}