{"version":3,"sources":["webpack:///./app/javascript/packs/vof/index.js"],"names":["browserUpdate","required","i","e","test","noclose","no_permanent_hide","smoothscroll","polyfill","document","addEventListener","yall","observeChanges","lazyClass","idleLoadTimeout","threshold","close","imagePopups","querySelectorAll","imageModal","querySelector","forEach","popup","newImagePlacement","createElement","classList","add","imagePlacement","currentTarget","tagName","image","src","parentNode","replaceChild","appendChild","remove","preventDefault","hotelDescs","desc","$parent","toggle","className","_toggleClassFallback","blogSignUpFormButton","getElementById","blogCloseBtn","blogForm","el","classes","split","existingIndex","indexOf","splice","push","join","window","NodeList","prototype","Array","flat","depth","flattend","array","isArray","this","Math","floor","Object","keys","obj","hasOwnProperty","String","repeat","count","TypeError","str","RangeError","Infinity","length","maxCount","log","substring","padStart","targetLength","padString","slice","Number","isInteger","value","isFinite"],"mappings":"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","file":"js/vof/index-ec5b1a3bfd4e4bfd4256.chunk.js","sourcesContent":["import forEach from 'lodash/forEach'\nimport 'intersection-observer'\nimport browserUpdate from 'browser-update'\nimport yall from 'yall-js'\nimport smoothscroll from 'smoothscroll-polyfill'\n\nbrowserUpdate({ required: { i: 12, e: 16 }, test: false, noclose: true, no_permanent_hide: true})\n\nsmoothscroll.polyfill();\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n yall({\n observeChanges: true,\n lazyClass: 'lazy-load-resource',\n idleLoadTimeout: 200,\n threshold: 400,\n })\n\n // Single image modal pop up\n let imagePopups = document.querySelectorAll(\".launch-image-popup\")\n const imageModal = document.querySelector(\".image-pop-up.modal\")\n let close\n\n // If Image Modal exists on page\n if(imageModal) {\n close = imageModal.querySelector(\".close\")\n\n forEach(imagePopups, popup => {\n popup.addEventListener(\"click\", e => {\n\n let newImagePlacement = document.createElement(\"figure\")\n newImagePlacement.classList.add(\"image\",\"single\")\n const imagePlacement = imageModal.querySelector(\".image\")\n\n if(e.currentTarget.tagName == \"IMG\") {\n var image = document.createElement(\"img\")\n image.src = e.currentTarget.src\n imagePlacement.parentNode.replaceChild(newImagePlacement, imagePlacement)\n newImagePlacement.appendChild(image)\n imageModal.classList.add(\"show\")\n imageModal.classList.remove(\"hide\")\n }\n })\n })\n\n close.addEventListener(\"click\", e => {\n e.preventDefault()\n imageModal.classList.remove(\"show\")\n imageModal.classList.add(\"hide\")\n })\n }\n\n // Hotel Descriptions Toggle for Small Devices\n let hotelDescs = document.querySelectorAll(\".view-more-description\")\n forEach(hotelDescs, desc => {\n desc.addEventListener(\"click\", () => {\n let $parent = desc.parentNode\n\n if(desc.classList) {\n $parent.classList.toggle(\"open\")\n desc.classList.toggle(\"less\")\n } else {\n $parent.className = _toggleClassFallback($parent, \"open\")\n desc.className = _toggleClassFallback(desc, \"less\")\n }\n })\n })\n\n // Blog Page\n let blogSignUpFormButton = document.getElementById(\"toggle-blog-sign-up-form\")\n if(blogSignUpFormButton) {\n let blogCloseBtn = document.getElementById(\"close-blog-sign-up-form\")\n let blogForm = document.getElementById(\"new_vof_news_letter_recipient\")\n\n blogSignUpFormButton.addEventListener(\"click\", () => {\n blogForm.classList.toggle(\"open\")\n blogSignUpFormButton.classList.toggle(\"hidden\")\n blogCloseBtn.classList.toggle(\"hidden\")\n })\n\n blogCloseBtn.addEventListener(\"click\", () => {\n blogForm.classList.toggle(\"open\")\n blogSignUpFormButton.classList.toggle(\"hidden\")\n blogCloseBtn.classList.toggle(\"hidden\")\n })\n }\n\n})\n\nconst _toggleClassFallback = (el, className) => {\n var classes = el.className.split(' ')\n var existingIndex = classes.indexOf(className)\n\n if (existingIndex >= 0)\n classes.splice(existingIndex, 1)\n else\n classes.push(className)\n\n return classes.join(' ')\n}\n\n// Polyfills\n\n// missing forEach on NodeList for IE11\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\nif (!Array.prototype.flat) {\n Array.prototype.flat = function(depth) {\n var flattend = [];\n (function flat(array, depth) {\n for (let el of array) {\n if (Array.isArray(el) && depth > 0) {\n flat(el, depth - 1);\n } else {\n flattend.push(el);\n }\n }\n })(this, Math.floor(depth) || 1);\n return flattend;\n };\n}\n\n// Object.keys polyfill\n\nif (!Object.keys) {\n Object.keys = function(obj) {\n var keys = [];\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n keys.push(i);\n }\n }\n\n return keys;\n };\n}\n\n// Polyfill for IE11 padStart\n\n// Polyfill for Repeat\nif (!String.prototype.repeat) {\n String.prototype.repeat = function(count) {\n 'use strict';\n if (this == null) {\n throw new TypeError('can\\'t convert ' + this + ' to object');\n }\n var str = '' + this;\n count = +count;\n if (count != count) {\n count = 0;\n }\n if (count < 0) {\n throw new RangeError('repeat count must be non-negative');\n }\n if (count == Infinity) {\n throw new RangeError('repeat count must be less than infinity');\n }\n count = Math.floor(count);\n if (str.length == 0 || count == 0) {\n return '';\n }\n // Ensuring count is a 31-bit integer allows us to heavily optimize the\n // main part. But anyway, most current (August 2014) browsers can't handle\n // strings 1 << 28 chars or longer, so:\n if (str.length * count >= 1 << 28) {\n throw new RangeError('repeat count must not overflow maximum string size');\n }\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n }\n}\n\n// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\nif (!String.prototype.padStart) {\n String.prototype.padStart = function padStart(targetLength,padString) {\n targetLength = targetLength>>0; //truncate if number or convert non-number to 0;\n padString = String((typeof padString !== 'undefined' ? padString : ' '));\n if (this.length > targetLength) {\n return String(this);\n }\n else {\n targetLength = targetLength-this.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed\n }\n return padString.slice(0,targetLength) + String(this);\n }\n };\n}\n\n//Polyfil for Number.isInteger\nNumber.isInteger = Number.isInteger || function(value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value;\n}\n"],"sourceRoot":""}