{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/js/modules/globals.js","webpack:///./src/assets/js/modules/toolbox.js","webpack:///./src/assets/js/modules/hero-slider.js","webpack:///./src/assets/js/modules/form-validator.js","webpack:///./src/assets/js/modules/form-handler.js","webpack:///./src/assets/js/modules/search-box.js","webpack:///./src/assets/js/modules/tab-bar.js","webpack:///./src/assets/js/modules/box-slider.js","webpack:///./src/assets/js/modules/image-carousel.js","webpack:///./src/assets/js/modules/video-handler.js","webpack:///./src/assets/js/modules/social-media-thumbs.js","webpack:///./src/assets/js/main.js","webpack:///./src/assets/js/modules/smooth-anchors.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","locale","lang","document","querySelector","getAttribute","dir","next","prev","pageVisibilityStatus","hidden","visibilityChange","msHidden","webkitHidden","HeroSlider","el","this","children","length","rtl","initSliders","initPager","slider","Flickity","prevNextButtons","pageDots","wrapAround","rightToLeft","autoPlay","newNode","referenceNode","pager","createElement","classList","add","innerHTML","pagerButton","parentNode","insertBefore","nextSibling","addEventListener","previous","fieldErrors","required","requiredSelect","email","phone","emiratesID","errorLabel","label","init_intlTelInput","style","setAttribute","append","script","event","intlTelInputGlobals","loadUtils","Array","from","querySelectorAll","forEach","elem","appendChild","intlTelInput","preferredCountries","excludeCountries","separateDialCode","formatOnDisplay","autoPlaceholder","fieldUpdate","errorID","errorDom","type","hasAttribute","remove","validateInput","test","checked","window","getInstance","isValidNumber","validateSelect","validate","tagName","forms","SmartForm","init","push","id","requireds","submitHandler","index","initValidation","submitBtn","initSubmitDisable","requirement","disabled","validateForm","valid","preventDefault","stopPropagation","api","setState","responseBox","submitData","testState","setTimeout","XHR","XMLHttpRequest","FD","FormData","response","JSON","parse","target","responseText","status","open","send","state","displayResponse","requestAnimationFrame","location","pathname","undefined","message","SearchBox","button","input","events","clickHandler","blurHandler","submit","blur","focus","arrowBtn","TabBar","list","hasSlideControls","freeScroll","tabAlign","updateEvent","Event","initSlider","initControls","fn","threshhold","scope","last","deferTimer","self","flkty","cellAlign","contain","dragged","on","updatePagerControls","progress","slideState","updateSlideControls","context","now","Date","args","arguments","clearTimeout","apply","cells","cell","element","contains","activateTab","defaultIndex","activeTab","checkHash","hashIndex","hash","tab","prevTab","currentIndex","parseInt","select","tabHref","startsWith","updateHash","activateContent","slice","history","pushState","contents","content","prevContent","parentElement","dispatchEvent","slideControls","initSlideControls","initPagerControls","slide","offset","applyForce","startAnimation","dragEnd","isNaN","Infinity","BoxSlider","firstChild","popupListenerOn","carouselShowing","carouselHiding","ImageCarousel","onScreen","closest","$","instance","$refs","container","carousel","scrollTimeout","resize","setScrollTimeout","item","tabParent","pvs","videoChild","video","VideoHandler","paused","play","removeAttribute","sliderParent","data","pause","postPopup","post","caption","postType","source","media","postPopupHeader","postPopupCaption","postUrl","mediaType","mediaUrl","mediaPoster","join","postThumbImage","string","max","split","thumbnailUrl","postThumbText","SocialMediaThumbs","url","callback","fail","xobj","rowLength","getComputedStyle","getPropertyValue","expandIndex","batch","expandButton","updateList","createThumbs","createPopups","resp","overrideMimeType","onreadystatechange","readyState","statusText","thumbs","thumb","postElem","newList","cloneNode","replaceChild","popups","thumbClicked","openPopups","fancyOptions","baseClass","idleTime","autoStart","afterShow","initPopupContents","fancybox","current","$content","videos","initCarousel","initVideo","box","imageCarousel","videoHandler","click","e","hasClass","replace","hostname","targetPos","a","documentElement","body","width","height","viewport","removeClass","prop","top","animate","scrollTop","toggleClass","moment"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\r\n\r\nexport const locale = {\r\n lang: document.querySelector('html').getAttribute('lang'),\r\n dir: document.querySelector('html').getAttribute('dir'),\r\n next: (document.querySelector('html').getAttribute('dir') == 'ltr') ? 'right' : 'left',\r\n prev: (document.querySelector('html').getAttribute('dir') == 'ltr') ? 'left' : 'right'\r\n};\r\n\r\nexport const root = document.querySelector('body').getAttribute('data-root');\r\n","export function debounce (fn, delay) {\r\n\tvar timer = null;\r\n\treturn function () {\r\n\t\tvar context = this, args = arguments;\r\n\t\tclearTimeout(timer);\r\n\t\ttimer = setTimeout(function () {\r\n\t\t\tfn.apply(context, args);\r\n\t\t}, delay);\r\n\t};\r\n}\r\n\r\nexport function throttle (fn, threshhold, scope) {\r\n\tthreshhold || (threshhold = 250);\r\n\tvar last,\r\n\tdeferTimer;\r\n\treturn function () {\r\n\t\tvar context = scope || this;\r\n\r\n\t\tvar now = +new Date,\r\n\t\targs = arguments;\r\n\t\tif (last && now < last + threshhold) {\r\n\t\t\t// hold on to it\r\n\t\t\tclearTimeout(deferTimer);\r\n\t\t\tdeferTimer = setTimeout(function () {\r\n\t\t\t\tlast = now;\r\n\t\t\t\tfn.apply(context, args);\r\n\t\t\t}, threshhold);\r\n\t\t} else {\r\n\t\t\tlast = now;\r\n\t\t\tfn.apply(context, args);\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport function viewport() {\r\n\tvar e = window, a = 'inner';\r\n\tif ( !( 'innerWidth' in window ) )\r\n\t{\r\n\t\ta = 'client';\r\n\t\te = document.documentElement || document.body;\r\n\t}\r\n\treturn { width : e[ a+'Width' ] , height : e[ a+'Height' ] }\r\n}\r\n\r\nexport function getOffset (element) {\r\n const offset = ({ top, left }, { offsetTop = 0, offsetLeft = 0, offsetParent }) => {\r\n const output = { top: top + offsetTop, left: left + offsetLeft }\r\n return offsetParent ? offset({ ...output }, offsetParent) : output\r\n }\r\n\r\n return offset({ top: 0, left: 0 }, element)\r\n}\r\n\r\nexport function getRandomInt(min, max) {\r\n\treturn Math.floor(Math.random() * (max - min)) + min;\r\n}\r\n\r\nexport function watchScroll (elem) {\r\n\t$(elem).on('scroll', exports.throttle(function(){\r\n\t\t$(elem).trigger('scrolled');\r\n\t}, 50));\r\n}\r\n\r\nexport function getQueryVariable (variable) {\r\n\tvar query = window.location.search.substring(1);\r\n\tvar vars = query.split(\"&\");\r\n\tfor (var i=0;i max) {\r\n\t\treturn `${string.slice(0, max).split(' ').slice(0, -1).join(' ')} `;\r\n\t} else {\r\n\t\treturn string\r\n\t}\r\n}\r\n\r\nexport function hexToRgb(hex) {\r\n\tvar shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n\thex = hex.replace(shorthandRegex, function(m, r, g, b) {\r\n\t\t\treturn r + r + g + g + b + b;\r\n\t});\r\n\r\n\tvar result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\treturn result ? {\r\n\t\t\tr: parseInt(result[1], 16),\r\n\t\t\tg: parseInt(result[2], 16),\r\n\t\t\tb: parseInt(result[3], 16)\r\n\t} : null;\r\n}\r\n\r\nexport function removeHash() {\r\n\tvar scrollV, scrollH, loc = window.location;\r\n\tif ('pushState' in history)\r\n\t\thistory.pushState(\"\", document.title, loc.pathname + loc.search);\r\n\telse {\r\n\t\t// Prevent scrolling by storing the page's current scroll offset\r\n\t\tscrollV = document.body.scrollTop;\r\n\t\tscrollH = document.body.scrollLeft;\r\n\r\n\t\tloc.hash = \"\";\r\n\r\n\t\t// Restore the scroll offset, should be flicker free\r\n\t\tdocument.body.scrollTop = scrollV;\r\n\t\tdocument.body.scrollLeft = scrollH;\r\n\t}\r\n}\r\n\r\n// support test for event listener options like 'passive' or 'once'\r\nexport function eventOptionSupport(option) {\r\n\tvar supported = false;\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, option, {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupported = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener(\"testPassive\", null, opts);\r\n\t\twindow.removeEventListener(\"testPassive\", null, opts);\r\n\t} catch (e) { supported = false }\r\n\treturn supported;\r\n}\r\n\r\nexport function getDocumentScrollTop() {\r\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n};\r\n\r\nexport function getDocumentScrollLeft() {\r\n return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\r\n};\r\n\r\nexport function unique(value, index, self) {\r\n\treturn self.indexOf(value) === index;\r\n}\r\n\r\nexport function pageVisibilityStatus() {\r\n\tlet hidden, visibilityChange; \r\n\tif (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 and later support \r\n\t\thidden = \"hidden\";\r\n\t\tvisibilityChange = \"visibilitychange\";\r\n\t} else if (typeof document.msHidden !== \"undefined\") {\r\n\t\thidden = \"msHidden\";\r\n\t\tvisibilityChange = \"msvisibilitychange\";\r\n\t} else if (typeof document.webkitHidden !== \"undefined\") {\r\n\t\thidden = \"webkitHidden\";\r\n\t\tvisibilityChange = \"webkitvisibilitychange\";\r\n\t}\r\n\treturn { hidden, visibilityChange }\r\n}\r\n","\r\nimport { locale } from './globals.js';\r\nimport { insertAfter } from './toolbox.js';\r\n\r\nclass HeroSlider {\r\n constructor(el) {\r\n if(!el) return false;\r\n this.el = el;\r\n if(this.el.children.length < 2) {\r\n return;\r\n };\r\n this.rtl = (locale.dir == 'rtl');\r\n this.initSliders();\r\n this.initPager();\r\n }\r\n initSliders () {\r\n this.slider = new Flickity(this.el, {\r\n prevNextButtons: false,\r\n pageDots: false,\r\n wrapAround: true,\r\n rightToLeft: this.rtl,\r\n autoPlay: 5000\r\n });\r\n }\r\n initPager () {\r\n let pager = document.createElement('div');\r\n pager.classList.add('pager-arrows');\r\n pager.innerHTML = `${this.pagerButton('prev')}${this.pagerButton('next')}`;\r\n insertAfter(pager, this.el.querySelector('.flickity-viewport'));\r\n pager.querySelector('.arrow.prev').addEventListener('click', () => {\r\n this.slider.previous();\r\n });\r\n pager.querySelector('.arrow.next').addEventListener('click', () => {\r\n this.slider.next();\r\n });\r\n }\r\n pagerButton (dir) {\r\n return ``\r\n }\r\n \r\n}\r\nexport default function () {\r\n new HeroSlider(document.querySelector('[data-hero-slider]'));\r\n}\r\n","\r\nimport { locale } from './globals.js';\r\n\r\nconst fieldErrors = {\r\n\trequired: {\r\n\t\t'en': 'This field is required.',\r\n\t\t'ar': 'هذا الحقل إلزامي'\r\n\t},\r\n\trequiredSelect: {\r\n\t\t'en': 'Please select.',\r\n\t\t'ar': 'الرجاء اختيار'\r\n\t},\r\n\temail: {\r\n\t\t'en': 'Please enter a valid email address.',\r\n\t\t'ar': 'رجاء إدخال عنوان بريد إلكتروني صحيح'\r\n\t},\r\n\tphone: {\r\n\t\t'en': 'Please enter a valid phone number',\r\n\t\t'ar': 'صحيح يرجى إدخال رقم هاتف'\r\n\t},\r\n\temiratesID: {\r\n\t\t'en': 'Please enter a valid Emirate ID number',\r\n\t\t'ar': 'يرجى إدخال رقم الهوية الإماراتية'\r\n\t}\r\n}\r\nfunction errorLabel () {\r\n var label = document.createElement('div');\r\n label.classList.add('error-msg');\r\n return label;\r\n}\r\nfunction init_intlTelInput () {\r\n let style = document.createElement('link');\r\n style.setAttribute('rel', 'stylesheet');\r\n style.setAttribute('href', '/assets/lib/intl-tel-input/css/intlTelInput.min.css');\r\n document.querySelector('head').append(style);\r\n\r\n let script = document.createElement('script');\r\n script.setAttribute('src', '/assets/lib/intl-tel-input/js/intlTelInput.min.js')\r\n script.addEventListener('load', (event) => {\r\n init_intlTelInput_fields();\r\n })\r\n document.querySelector('body').append(script);\r\n}\r\nfunction init_intlTelInput_fields () {\r\n intlTelInputGlobals.loadUtils('/assets/lib/intl-tel-input/js/utils.js');\r\n\r\n let telFields = Array.from(document.querySelectorAll('input[type=\"tel\"]'));\r\n\r\n telFields.forEach((elem) => {\r\n elem.parentNode.appendChild(errorLabel());\r\n elem.setAttribute('data-state', 'ready');\r\n let iti = intlTelInput(elem, {\r\n preferredCountries: ['ae','kw','sa','bh','om','qa'],\r\n excludeCountries: ['il'],\r\n separateDialCode: true,\r\n formatOnDisplay: true,\r\n autoPlaceholder: 'aggressive'\r\n })\r\n })\r\n}\r\nfunction fieldUpdate (elem, errorID) {\r\n let errorDom = elem.parentNode.querySelector('.error-msg');\r\n if(elem.type === 'tel' && elem.hasAttribute('data-intl-tel-input-id'))\r\n errorDom = elem.parentNode.parentNode.querySelector('.error-msg')\r\n\r\n if(errorID) {\r\n elem.setAttribute('data-state', 'error');\r\n errorDom.innerHTML = fieldErrors[errorID][locale.lang];\r\n errorDom.classList.add('show');\r\n } else {\r\n elem.setAttribute('data-state', 'valid');\r\n errorDom.classList.remove('show');\r\n }\r\n}\r\n\r\nexport function validateInput (elem) {\r\n if(elem.value == '') {\r\n fieldUpdate(elem, 'required');\r\n\t} else {\r\n\t\tif(elem.type === 'email') {\r\n\t\t\tif (validateEmail(elem.value)) {\r\n fieldUpdate(elem);\r\n\t\t\t} else {\r\n fieldUpdate(elem, 'email');\r\n\t\t\t}\r\n\t\t} else if(elem.type === 'checkbox') {\r\n\t\t\tif (elem.checked) {\r\n fieldUpdate(elem);\r\n\t\t\t} else {\r\n fieldUpdate(elem, 'required');\r\n\t\t\t}\r\n\t\t} else if(elem.type === 'tel') {\r\n let tElem = window.intlTelInputGlobals.getInstance(elem);\r\n if(tElem.isValidNumber()) {\r\n fieldUpdate(elem);\r\n } else {\r\n fieldUpdate(elem, 'phone');\r\n }\r\n\t\t} else {\r\n fieldUpdate(elem);\r\n\t\t}\r\n\t}\r\n};\r\nexport function validateSelect (elem) {\r\n if (elem.value == 'n/a') {\r\n\t\telem.setAttribute('data-state', 'error');\r\n\t\telem.parentNode.querySelector('.error-msg').innerHTML = fieldErrors.requiredSelect[locale.lang];\r\n\t} else {\r\n\t\telem.setAttribute('data-state', 'valid');\r\n\t}\r\n};\r\nexport function validateEmail (email) {\r\n\tvar re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n};\r\n\r\nexport function validate (elem) {\r\n\tif(elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') {\r\n\t\tvalidateInput(elem);\r\n\t}\r\n\tif(elem.tagName === 'SELECT') {\r\n\t\tvalidateSelect(elem);\r\n\t}\r\n\treturn (elem.getAttribute('data-state') === 'valid');\r\n};\r\n\r\nexport function initValidation (elem) {\r\n if(elem.tagName === 'INPUT' && elem.type === 'tel') {\r\n try { intlTelInput }\r\n catch { init_intlTelInput() }\r\n } else {\r\n elem.parentNode.appendChild(errorLabel());\r\n elem.setAttribute('data-state', 'ready');\r\n }\r\n\r\n elem.addEventListener('blur', (event) => {\r\n if(elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') {\r\n validateInput(elem);\r\n }\r\n });\r\n elem.addEventListener('input', (event) => {\r\n if(elem.tagName === 'SELECT') {\r\n validateSelect(elem);\r\n }\r\n if((elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') && elem.getAttribute('data-state') === 'error') {\r\n validateInput(elem);\r\n }\r\n if(elem.tagName === 'INPUT' && elem.type === 'checkbox') {\r\n validateInput(elem);\r\n }\r\n if(elem.tagName === 'INPUT' && elem.type === 'tel') {\r\n validateInput(elem);\r\n }\r\n });\r\n};\r\n\r\n","\r\nimport { locale } from './globals.js';\r\nimport { initValidation, validate } from './form-validator';\r\n\r\nconst forms = [];\r\n\r\nfunction SmartForm(el) {\r\n\tthis.el = el;\r\n\tthis.init();\r\n};\r\nSmartForm.prototype.init = function() {\r\n this.id = `f${forms.length-1}`\r\n\tthis.el.setAttribute('novalidate', '');\r\n\tthis.el.setAttribute('data-state', 'ready');\r\n this.requireds = this.el.querySelectorAll('[required]');\r\n\r\n\tif (this.el.hasAttribute('data-api')) {\r\n\t\tthis.el.addEventListener('submit', this.submitHandler.bind(this));\r\n\t}\r\n\tthis.requireds.forEach((elem, index) => {\r\n\t\tinitValidation(elem);\r\n\t});\r\n\r\n\tthis.submitBtn = this.el.querySelector('[type=\"submit\"]');\r\n\tif(this.submitBtn.hasAttribute('data-require')) {\r\n\t\tthis.initSubmitDisable();\r\n\t}\r\n}\r\nSmartForm.prototype.initSubmitDisable = function () {\r\n\tvar requirement = this.el.querySelector(this.submitBtn.getAttribute('data-require'));\r\n\tthis.submitBtn.disabled = !validate(requirement);\r\n\trequirement.addEventListener('input', (event) => {\r\n\t\tthis.submitBtn.disabled = !validate(requirement);\r\n\t})\r\n}\r\nSmartForm.prototype.validateForm = function() {\r\n\tvar valid = true;\r\n\tthis.requireds.forEach((elem) => {\r\n\t\tvalidate(elem);\r\n\t\tif(elem.getAttribute('data-state') === 'error') valid = false;\r\n\t})\r\n\treturn valid;\r\n}\r\nSmartForm.prototype.submitHandler = function (event) {\r\n\tevent.preventDefault();\r\n event.stopPropagation();\r\n\r\n\tif(!this.validateForm()) return;\r\n\r\n\t// get api url\r\n\tthis.api = this.el.getAttribute('data-api');\r\n\r\n\tthis.setState('working');\r\n\tif (this.responseBox) this.responseBox.remove();\r\n\r\n\tif (this.api.length == 0 || this.api == 'test') {\r\n\t\tvar testState = (this.el.hasAttribute('data-test-state')) ? this.el.getAttribute('data-test-state') : 'error';\r\n\t\tsetTimeout(function(){\r\n\t this.setState(testState);\r\n\t }.bind(this), 1000);\r\n\t return;\r\n\t}\r\n\tthis.submitData();\r\n}\r\nSmartForm.prototype.submitData = function() {\r\n\tvar XHR = new XMLHttpRequest();\r\n var FD = new FormData(this.el);\r\n // Success\r\n XHR.addEventListener('load', (event) => {\r\n\t\tthis.response = JSON.parse(event.target.responseText);\r\n\t\tif(event.target.status == 200) {\r\n\t\t\tthis.setState('success');\r\n\t\t} else {\r\n\t\t\tthis.setState('error');\r\n\t\t}\r\n\t});\r\n\tXHR.open(\"POST\", this.api);\r\n XHR.send(FD);\r\n}\r\nSmartForm.prototype.setState = function(state) {\r\n\tthis.el.setAttribute('data-state', state);\r\n\tthis.state = state;\r\n\tif (state == 'error') {\r\n\t\t// if(this.el.hasAttribute('data-response')) {\r\n\t\t\tthis.displayResponse();\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tthis.setState('error-response');\r\n\t\t\t})\r\n\t\t// }\r\n\t\tsetTimeout(function(){\r\n\t\t\tthis.el.setAttribute('data-state', 'ready');\r\n\t\t\tif (this.responseBox) this.responseBox.remove();\r\n\t\t}.bind(this), 4000);\r\n\t}\r\n\tif (state == 'success') {\r\n\t\tsetTimeout(function(){\r\n\t\t\tif(this.el.hasAttribute('data-redirect')) {\r\n\t\t\t\twindow.location.pathname = this.el.getAttribute('data-redirect');\r\n\t\t\t}\r\n\t\t\tif(this.el.hasAttribute('data-collapse')) {\r\n\t\t\t\tthis.el.classList.add('collapse');\r\n\t\t\t}\r\n\t\t\t// if(this.el.hasAttribute('data-success-response')) {\r\n\t\t\t\tthis.displayResponse();\r\n\t\t\t// }\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tthis.setState('success-response');\r\n\t\t\t})\r\n\t\t}.bind(this), 1000);\r\n\t}\r\n}\r\nSmartForm.prototype.displayResponse = function() {\r\n\tif(this.response == undefined) {\r\n\t\tif (this.state == 'success') {\r\n\t\t\tthis.response = {\r\n\t\t\t\tmessage: (this.el.getAttribute('data-success-response').length > 0) ? this.el.getAttribute('data-success-response') : 'Thank you!'\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.state == 'error') {\r\n\t\t\tthis.response = {\r\n\t\t\t\tmessage: (this.el.getAttribute('data-error-response').length > 0) ? this.el.getAttribute('data-error-response') : 'Error!'\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t}\r\n\tthis.responseBox = document.createElement('div');\r\n\tthis.responseBox.classList.add('response-box');\r\n\tthis.responseBox.innerHTML = this.response.message;\r\n\tthis.el.parentNode.insertBefore(this.responseBox, this.el.nextSibling);\r\n}\r\n\r\nexport function initAll () {\r\n\tArray.from(document.querySelectorAll('[data-smart-form]')).forEach(function(elem, index) {\r\n\t\tinit(elem);\r\n\t});\r\n};\r\nexport function init(elem) {\r\n\tif(elem.hasAttribute('data-state')) return;\r\n forms.push(elem)\r\n var form = new SmartForm(elem);\r\n}\r\n\r\nexport default function (elem) {\r\n\tif (!elem || elem.length < 1) {\r\n\t\tinitAll();\r\n\t} else {\r\n\t init(elem);\r\n\t}\r\n}\r\n","\r\n\r\nclass SearchBox {\r\n constructor(el) {\r\n if(!el) return false;\r\n this.el = el;\r\n this.button = this.el.querySelector('button');\r\n this.input = this.el.querySelector('input');\r\n this.events();\r\n this.setState('ready');\r\n }\r\n events() {\r\n this.button.addEventListener('click', this.clickHandler.bind(this));\r\n this.input.addEventListener('blur', this.blurHandler.bind(this));\r\n }\r\n clickHandler(event) {\r\n if(this.state == 'ready') {\r\n event.preventDefault();\r\n this.setState('search');\r\n } else if(this.state == 'search') {\r\n this.el.submit();\r\n }\r\n }\r\n blurHandler(event) {\r\n setTimeout(() => {\r\n if(this.state == 'search') {\r\n this.setState('ready');\r\n this.input.blur();\r\n }\r\n }, 300);\r\n }\r\n setState(state) {\r\n this.state = state;\r\n this.el.setAttribute('data-state', state);\r\n if(this.state == 'search') {\r\n this.input.focus();\r\n document.querySelector('html').classList.add('search-mode');\r\n } else if(this.state == 'ready') {\r\n document.querySelector('html').classList.remove('search-mode');\r\n }\r\n }\r\n}\r\nexport default function () {\r\n new SearchBox(document.querySelector('[data-search-box]'));\r\n}\r\n","\r\nimport { locale } from './globals.js';\r\nimport { getOffset, throttle, viewport } from './toolbox.js';\r\n\r\nconst arrowBtn = function (dir) {\r\n return ``\r\n}\r\nclass TabBar {\r\n constructor(el) {\r\n if(!el) return false;\r\n this.el = el;\r\n this.id = this.el.getAttribute('id');\r\n this.list = this.el.querySelector('[data-tab-list]');\r\n this.hasSlideControls = this.el.hasAttribute('data-slide-controls');\r\n this.freeScroll = this.el.hasAttribute('data-free-scroll');\r\n this.rtl = (locale.dir == 'rtl');\r\n this.tabAlign = (locale.dir == 'ltr') ? 'left' : 'right';\r\n this.updateEvent = new Event('tab-content-update');\r\n this.initSlider();\r\n this.initControls();\r\n }\r\n initSlider () {\r\n let self = this;\r\n this.flkty = new Flickity(this.list, {\r\n cellAlign: this.tabAlign,\r\n contain: true,\r\n prevNextButtons: false,\r\n pageDots: false,\r\n rightToLeft: this.rtl,\r\n freeScroll: this.freeScroll/*,\r\n friction: 0.15,\r\n selectedAttraction: 0.01*/\r\n });\r\n this.dragged = false;\r\n this.flkty.on('change', () => {\r\n this.updatePagerControls();\r\n });\r\n if(this.hasSlideControls) {\r\n this.flkty.on('scroll', throttle( (progress) => {\r\n self.slideState = progress;\r\n self.updateSlideControls();\r\n }, 50) );\r\n this.flkty.on('settle', () => {\r\n this.updateSlideControls();\r\n });\r\n }\r\n this.flkty.on('dragStart', () => { this.dragged = true; })\r\n this.flkty.on('dragEnd', () => {\r\n setTimeout( () => { this.dragged = false; }, 50);\r\n })\r\n this.flkty.cells.forEach( (cell, index) => {\r\n cell.element.setAttribute('data-index', index);\r\n cell.element.addEventListener('click', function(event) {\r\n if(this.classList.contains('.active')) return;\r\n self.activateTab(this, event);\r\n })\r\n })\r\n\r\n // initialize an active tab\r\n let defaultIndex = 0; // default is the first tab\r\n let activeTab = this.el.querySelector('.tab.active'); // if the dom has one, activate that\r\n if(activeTab) {\r\n this.activateTab(activeTab, false, true);\r\n } else {\r\n defaultIndex = this.checkHash(); // if our tabs have the hash, use that tab\r\n if(defaultIndex < 0) { defaultIndex = 0} // otherwise 0\r\n this.activateTab(this.flkty.cells[defaultIndex].element, false, true);\r\n }\r\n window.addEventListener('hashchange', (event) => {\r\n let hashIndex = this.checkHash();\r\n if (hashIndex > -1) this.activateTab(this.flkty.cells[hashIndex].element);\r\n })\r\n }\r\n // activateIndex(index) {\r\n // this.activateTab(this.flkty.cells[index], false);\r\n // }\r\n checkHash (hash) {\r\n let index = -1;\r\n if(hash == undefined) hash = location.hash;\r\n this.flkty.cells.forEach((cell, i) => {\r\n if(hash == cell.element.getAttribute('href')) {\r\n index = i;\r\n }\r\n })\r\n return index;\r\n // if(index > -1) {\r\n // this.activateIndex(index);\r\n // if(this.parentSlide) {\r\n // $(this.parentSlide).trigger('initslide.carousel');\r\n // }\r\n // }\r\n }\r\n activateTab(tab, event, init) {\r\n if (!init) {\r\n // skip these for initial setup\r\n if(!tab) return;\r\n if (tab.classList.contains('active')) return;\r\n if (this.dragged) { this.dragged = false; return; }\r\n let prevTab = this.el.querySelector('.tab.active');\r\n if (prevTab) prevTab.classList.remove('active')\r\n }\r\n\r\n tab.classList.add('active'); // activate tab\r\n this.currentIndex = parseInt(tab.getAttribute('data-index')); //save active index\r\n this.flkty.select(this.currentIndex); // select flkty cell to slide in position\r\n\r\n let tabHref = tab.getAttribute('href'); // check if #href for content\r\n if(tabHref && tabHref.startsWith('#') && tabHref.length > 1) {\r\n if(event) event.preventDefault(); \r\n this.updateHash(tabHref);\r\n this.activateContent(tabHref.slice(1));\r\n }\r\n \r\n }\r\n updateHash (hash) {\r\n // if (index == undefined) index = this.current;\r\n // let hash = this.tabs[index].getAttribute('href');\r\n if (location.hash == hash) {\r\n return;\r\n }\r\n if(history && history.pushState) {\r\n history.pushState(null, null, hash);\r\n } else {\r\n location.hash = hash;\r\n }\r\n }\r\n activateContent(tabHref) {\r\n let contents = Array.from(document.querySelectorAll(`[data-tab-content=${tabHref}]`));\r\n if (contents.length < 1) return;\r\n contents.forEach((content) => {\r\n let prevContent = content.parentElement.querySelector('.tab-content.active');\r\n if(prevContent) {\r\n prevContent.classList.remove('active');\r\n prevContent.dispatchEvent(this.updateEvent);\r\n }\r\n content.classList.add('active');\r\n content.dispatchEvent(this.updateEvent);\r\n });\r\n }\r\n\r\n initControls () {\r\n // slide controls\r\n if(this.hasSlideControls) {\r\n this.slideControls = document.createElement('div');\r\n this.slideControls.classList.add('tab-controls');\r\n this.slideControls.innerHTML = arrowBtn('prev') + arrowBtn('next');\r\n this.el.insertBefore(this.slideControls, this.list);\r\n requestAnimationFrame(this.initSlideControls.bind(this));\r\n }\r\n // pre-defined pager controls\r\n let pagers = Array.from(document.querySelectorAll(`[data-tab-pager=${this.id}]`));\r\n pagers.forEach((pager, index) => {\r\n pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\r\n requestAnimationFrame(() => {\r\n this.initPagerControls(pager); \r\n });\r\n });\r\n }\r\n initPagerControls(pager) {\r\n pager.querySelector('.arrow.prev').addEventListener('click', () => {\r\n if(this.flkty.cells[this.currentIndex - 1])\r\n this.activateTab(this.flkty.cells[this.currentIndex - 1].element);\r\n else \r\n this.activateTab(this.flkty.cells[this.flkty.cells.length - 1].element);\r\n })\r\n pager.querySelector('.arrow.next').addEventListener('click', () => {\r\n if(this.flkty.cells[this.currentIndex + 1])\r\n this.activateTab(this.flkty.cells[this.currentIndex + 1].element);\r\n else \r\n this.activateTab(this.flkty.cells[0].element);\r\n })\r\n }\r\n updatePagerControls() {\r\n\r\n }\r\n initSlideControls () {\r\n this.slideControls.querySelector('.arrow.prev').addEventListener('click', () => {\r\n this.slide(20);\r\n })\r\n this.slideControls.querySelector('.arrow.next').addEventListener('click', () => {\r\n this.slide(-20);\r\n })\r\n }\r\n slide(offset) {\r\n this.flkty.applyForce(offset);\r\n this.flkty.startAnimation();\r\n this.flkty.dragEnd();\r\n }\r\n updateSlideControls () {\r\n if (isNaN(this.slideState) || this.slideState === Infinity || this.slideState === -Infinity ) {\r\n this.slideControls.querySelector('.arrow.prev').classList.add('disabled');\r\n this.slideControls.querySelector('.arrow.next').classList.add('disabled');\r\n } else {\r\n if(this.slideState < 0.05) {\r\n this.slideControls.querySelector('.arrow.prev').classList.add('disabled');\r\n this.list.classList.remove('overflown-prev');\r\n } else {\r\n this.slideControls.querySelector('.arrow.prev').classList.remove('disabled');\r\n this.list.classList.add('overflown-prev');\r\n }\r\n if(this.slideState > 0.95) {\r\n this.slideControls.querySelector('.arrow.next').classList.add('disabled');\r\n this.list.classList.remove('overflown-next');\r\n } else {\r\n this.slideControls.querySelector('.arrow.next').classList.remove('disabled');\r\n this.list.classList.add('overflown-next');\r\n }\r\n }\r\n }\r\n}\r\nexport default function () {\r\n Array.from(document.querySelectorAll('[data-tab-bar]')).forEach( (item, index) => {\r\n new TabBar(item, index);\r\n });\r\n}\r\n","\r\nimport { locale } from './globals.js';\r\n\r\nconst arrowBtn = function (dir) {\r\n return ``\r\n}\r\n\r\nclass BoxSlider {\r\n constructor(el) {\r\n if(!el) return false;\r\n this.el = el;\r\n this.list = this.el.querySelector('[data-box-slider-list]');\r\n this.rtl = (locale.dir == 'rtl');\r\n if(this.list.children.length > 1) {\r\n this.initSlider();\r\n }\r\n }\r\n initSlider () {\r\n this.flkty = new Flickity(this.list, {\r\n contain: true,\r\n prevNextButtons: false,\r\n pageDots: false,\r\n rightToLeft: this.rtl,\r\n autoPlay: 4000\r\n });\r\n this.pager = document.createElement('div');\r\n this.pager.classList.add('box-slider-pager', 'pager-arrows');\r\n this.pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\r\n this.el.insertBefore(this.pager, this.el.firstChild);\r\n requestAnimationFrame(() => {\r\n this.initPagerControls(); \r\n });\r\n\r\n }\r\n initPagerControls() {\r\n this.pager.querySelector('.arrow.prev').addEventListener('click', () => {\r\n this.flkty.previous(true);\r\n })\r\n this.pager.querySelector('.arrow.next').addEventListener('click', () => {\r\n this.flkty.next(true);\r\n })\r\n }\r\n}\r\nexport default function () {\r\n Array.from(document.querySelectorAll('[data-box-slider]')).forEach( (box) => {\r\n new BoxSlider(box);\r\n });\r\n}\r\n","\r\nimport { locale } from './globals.js';\r\nimport { pageVisibilityStatus as pvs } from './toolbox.js';\r\n\r\nconst arrowBtn = function (dir) {\r\n return ``\r\n}\r\nlet popupListenerOn = false;\r\nlet carouselShowing = new Event('carousel-showing');\r\nlet carouselHiding = new Event('carousel-hiding');\r\nfunction popupListener() {\r\n if(popupListenerOn) return;\r\n popupListenerOn = true;\r\n $(document).on('beforeShow.fb', (instance, slide) => {\r\n requestAnimationFrame(() => {\r\n Array.from(slide.$refs.container[0].querySelectorAll('[data-image-carousel]')).forEach((carousel) => {\r\n carousel.dispatchEvent(carouselShowing);\r\n })\r\n });\r\n })\r\n $(document).on('afterClose.fb', (instance, slide) => {\r\n requestAnimationFrame(() => {\r\n Array.from(slide.$refs.container[0].querySelectorAll('[data-image-carousel]')).forEach((carousel) => {\r\n carousel.dispatchEvent(carouselHiding);\r\n })\r\n });\r\n })\r\n}\r\nclass ImageCarousel {\r\n constructor(el) {\r\n if(!el) return false;\r\n if (el.hasAttribute('data-inited')) return;\r\n this.el = el;\r\n this.el.setAttribute('data-inited', true);\r\n this.rtl = (locale.dir == 'rtl');\r\n this.onScreen = true;\r\n if(this.el.children.length > 1) {\r\n this.initSlider();\r\n }\r\n \r\n if(this.el.closest('.popup-buffer')) {\r\n popupListener();\r\n this.onScreen = false;\r\n clearTimeout(this.scrollTimeout);\r\n this.el.addEventListener('carousel-showing', () => {\r\n this.onScreen = true;\r\n if(this.flkty) {\r\n this.flkty.resize();\r\n this.setScrollTimeout();\r\n }\r\n })\r\n this.el.addEventListener('carousel-hiding', () => {\r\n this.onScreen = false;\r\n if(this.flkty) {\r\n clearTimeout(this.scrollTimeout);\r\n }\r\n })\r\n }\r\n }\r\n initSlider () {\r\n \r\n Array.from(this.el.children).forEach((item) => {\r\n item.classList.add('image-carousel-item');\r\n })\r\n \r\n this.flkty = new Flickity(this.el, {\r\n contain: true,\r\n prevNextButtons: false,\r\n pageDots: false,\r\n rightToLeft: this.rtl,\r\n wrapAround: true\r\n });\r\n this.el.classList.add('image-carousel');\r\n this.pager = document.createElement('div');\r\n this.pager.classList.add('image-carousel-pager', 'pager-arrows');\r\n this.pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\r\n this.el.insertBefore(this.pager, this.el.firstChild);\r\n this.tabParent = this.el.closest('[data-tab-content]');\r\n if(this.tabParent) {\r\n this.tabParent.addEventListener('tab-content-update', () => {\r\n if(this.tabParent.classList.contains('active')) {\r\n this.setScrollTimeout();\r\n } else {\r\n clearTimeout(this.scrollTimeout);\r\n }\r\n });\r\n }\r\n document.addEventListener(pvs().visibilityChange, () => {\r\n if(document[pvs().hidden]) {\r\n clearTimeout(this.scrollTimeout)\r\n } else {\r\n this.setScrollTimeout();\r\n }\r\n }, false);\r\n requestAnimationFrame(() => {\r\n this.initPagerControls();\r\n });\r\n this.flkty.on('change', this.setScrollTimeout.bind(this));\r\n this.setScrollTimeout();\r\n setTimeout(this.videoChild.bind(this), 500);\r\n }\r\n setScrollTimeout() {\r\n if(document[pvs().hidden] || !this.onScreen) return;\r\n if(!this.tabParent || this.tabParent.classList.contains('active')) {\r\n clearTimeout(this.scrollTimeout);\r\n this.scrollTimeout = setTimeout(() => {\r\n this.flkty.next(true);\r\n }, 7000);\r\n }\r\n }\r\n initPagerControls() {\r\n this.pager.querySelector('.arrow.prev').addEventListener('click', () => {\r\n this.flkty.previous(true);\r\n })\r\n this.pager.querySelector('.arrow.next').addEventListener('click', () => {\r\n this.flkty.next(true);\r\n })\r\n }\r\n videoChild() {\r\n this.flkty.cells.forEach((cell) => {\r\n let video = cell.element.querySelector('video');\r\n if(video) {\r\n video.addEventListener('play', () => {\r\n clearTimeout(this.scrollTimeout);\r\n })\r\n video.addEventListener('pause', () => {\r\n this.setScrollTimeout();\r\n })\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function initAll () {\r\n\tArray.from(document.querySelectorAll('[data-image-carousel]')).forEach((elem, index) => {\r\n\t\tinit(elem);\r\n\t});\t\r\n};\r\n\r\nexport function init(elem) {\r\n new ImageCarousel(elem);\r\n}\r\n\r\nexport default function (elem) {\r\n\tif (!elem || elem.length < 1) {\r\n\t\tinitAll();\r\n\t} else {\r\n\t init(elem);\r\n\t}\r\n}","\r\nimport { locale } from './globals.js';\r\nconst playButton = function (date) {\r\n return `
`\r\n}\r\nclass VideoHandler {\r\n constructor(el) {\r\n if(!el) return false;\r\n if (el.hasAttribute('data-inited')) return;\r\n this.el = el;\r\n this.el.setAttribute('data-inited', true);\r\n this.el.innerHTML += playButton();\r\n this.video = this.el.querySelector('video');\r\n this.video.addEventListener('click', () => {\r\n if(this.video.paused) {\r\n if(this.dragged) return;\r\n this.video.play();\r\n }\r\n })\r\n this.video.addEventListener('play', () => {\r\n this.video.classList.add('playing');\r\n this.video.setAttribute('controls', true);\r\n })\r\n this.video.addEventListener('pause', () => {\r\n this.video.classList.remove('playing');\r\n this.video.removeAttribute('controls');\r\n })\r\n \r\n setTimeout(this.sliderParent.bind(this), 500);\r\n }\r\n sliderParent() {\r\n let slider = this.el.closest('.flickity-enabled');\r\n if (slider) {\r\n this.flkty = Flickity.data(slider);\r\n this.flkty.on('dragStart', () => {\r\n this.dragged = true;\r\n this.video.pause();\r\n })\r\n this.flkty.on('change', () => {\r\n this.video.pause();\r\n })\r\n this.flkty.on('dragEnd', () => {\r\n setTimeout(() => {this.dragged = false;}, 200);\r\n })\r\n }\r\n }\r\n \r\n}\r\nexport function initAll () {\r\n\tArray.from(document.querySelectorAll('[data-video-handler]')).forEach((elem, index) => {\r\n\t\tinit(elem);\r\n\t});\t\r\n};\r\n\r\nexport function init(elem) {\r\n new VideoHandler(elem);\r\n}\r\n\r\nexport default function (elem) {\r\n\tif (!elem || elem.length < 1) {\r\n\t\tinitAll();\r\n\t} else {\r\n\t init(elem);\r\n\t}\r\n}","\r\nimport { locale } from './globals.js';\r\nimport { loadJSON, throttle, truncateString } from './toolbox.js';\r\nimport { init as initCarousel } from './image-carousel.js';\r\nimport { init as initVideo } from './video-handler.js';\r\n\r\nconst defaultApi = '/assets/data/instagram.json';\r\n\r\nconst postPopup = function (post) {\r\n // ${post.caption ? (postPopupCaption(post)) : ''}\r\n let imgOnly = (post.caption == null) ? 'image-only' : '';\r\n if (post.caption == null) {\r\n\r\n }\r\n return `\r\n
\r\n
\r\n ${post.media ? (postPopupHeader(post)) : ''}\r\n ${postPopupCaption(post)}\r\n
\r\n
\r\n `\r\n}\r\nconst postPopupCaption = function (post) {\r\n return `\r\n
\r\n \r\n
@zayedsportscity
\r\n
\r\n
\r\n

\r\n ${(post.caption) ? post.caption : ''}\r\n

\r\n
\r\n `\r\n}\r\nconst postPopupHeader = function (post) {\r\n let media = [];\r\n post.media.forEach((item) => {\r\n if (item.mediaType === 'image') {\r\n media.push(`\r\n
\r\n \"\"\r\n
\r\n `)\r\n } else if (item.mediaType === 'video') {\r\n media.push(`\r\n
\r\n \r\n
\r\n `)\r\n }\r\n })\r\n return `\r\n
\r\n ${media.join(' ')}\r\n
\r\n `\r\n}\r\nconst postElem = function (post, index) {\r\n let item = document.createElement('div');\r\n item.classList.add('post-item');\r\n let thumb = (post.postType == 'text') ? postThumbText(post, index) : postThumbImage(post, index);\r\n item.innerHTML = `\r\n ${thumb}\r\n \r\n @zayedsportscity\r\n `\r\n return item;\r\n}\r\nconst postThumbImage = function (post, index) {\r\n let caption = '';\r\n if (post.caption) caption = `
${truncateString(post.caption, 100)}
`;\r\n return `\r\n \r\n
\r\n ${caption}\r\n
`\r\n}\r\nconst postThumbText = function (post, index) {\r\n return `\r\n \r\n

${post.caption}

\r\n
`\r\n}\r\n\r\nclass SocialMediaThumbs {\r\n constructor (el) {\r\n if(!el) return false;\r\n this.el = el;\r\n this.api = this.el.getAttribute('data-api') ? this.el.getAttribute('data-api') : defaultApi;\r\n this.rowLength = parseInt(window.getComputedStyle( this.el, ':before').getPropertyValue('content').split('\"')[1]);\r\n this.expandIndex = 1;\r\n this.batch = this.rowLength * 2;\r\n this.list = this.el.querySelector('[data-post-list]');\r\n this.expandButton = this.el.querySelector('[data-post-list-expand]');\r\n if(this.expandButton) {\r\n this.expandButton.addEventListener('click', () => {\r\n this.expandIndex += 1;\r\n this.updateList();\r\n });\r\n }\r\n loadJSON(this.api, (data) => {\r\n this.data = JSON.parse(data);\r\n requestAnimationFrame(() => {\r\n this.createThumbs();\r\n this.createPopups();\r\n this.updateList();\r\n })\r\n }, (resp) => {});\r\n }\r\n createThumbs() {\r\n this.thumbs = [];\r\n this.data.forEach((post, index) => {\r\n this.thumbs.push(postElem(post, index));\r\n })\r\n }\r\n updateList() {\r\n this.rowLength = parseInt(window.getComputedStyle( this.el, ':before').getPropertyValue('content').split('\"')[1]);\r\n this.batch = this.rowLength * 2 * this.expandIndex;\r\n\r\n let newList = this.list.cloneNode(true);\r\n newList.innerHTML = '';\r\n this.thumbs.forEach((post, index) => {\r\n if (index < this.batch) {\r\n newList.appendChild(post);\r\n }\r\n })\r\n requestAnimationFrame(() => {\r\n this.list.parentNode.replaceChild(newList, this.list);\r\n this.list = newList;\r\n if(this.list.children.length >= this.thumbs.length) {\r\n this.expandButton.setAttribute('disabled', 'disabled');\r\n }\r\n requestAnimationFrame(() => {\r\n //this.prepPopups();\r\n });\r\n })\r\n }\r\n createPopups() {\r\n let thumbItems = Array.from(this.list.querySelectorAll('.post-thumb'));\r\n this.popups = [];\r\n this.thumbs.forEach((thumb, index) => {\r\n this.popups.push({content: postPopup(this.data[index])});\r\n let t = thumb.querySelector('.post-thumb');\r\n t.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n this.thumbClicked(thumb, index);\r\n })\r\n })\r\n }\r\n thumbClicked(thumb, index) {\r\n this.openPopups(index)\r\n }\r\n openPopups(index) {\r\n let fancyOptions = {\r\n type: 'html',\r\n baseClass: 'event-popup content-view',\r\n idleTime: false,\r\n video: { autoStart: false },\r\n afterShow: this.initPopupContents\r\n }\r\n $.fancybox.open(this.popups, fancyOptions, index);\r\n }\r\n initPopupContents (instance, current) {\r\n let carousel = current.$content[0].querySelector('[data-image-carousel]');\r\n let videos = Array.from(current.$content[0].querySelectorAll('[data-video-handler]'));\r\n initCarousel(carousel);\r\n if (videos && videos.length > 0) {\r\n videos.forEach((video) => {\r\n initVideo(video);\r\n })\r\n }\r\n }\r\n\r\n \r\n}\r\nexport default function () {\r\n new SocialMediaThumbs(document.querySelector('[data-social-media-thumbs]'));\r\n}\r\n","\r\nimport { locale } from './modules/globals.js';\r\n\r\nimport heroSlider from './modules/hero-slider';\r\nimport forms from './modules/form-handler';\r\nimport searchBox from './modules/search-box';\r\nimport tabBar from './modules/tab-bar';\r\nimport boxSlider from './modules/box-slider';\r\nimport imageCarousel from './modules/image-carousel';\r\nimport smThumbs from './modules/social-media-thumbs';\r\nimport videoHandler from './modules/video-handler';\r\nimport smoothAnchors from './modules/smooth-anchors';\r\n\r\nheroSlider();\r\nsearchBox();\r\ntabBar();\r\nforms();\r\nboxSlider();\r\nimageCarousel();\r\nsmThumbs();\r\nvideoHandler();\r\nsmoothAnchors();\r\n\r\n$('[data-nav-trigger]').on('click', () => {\r\n $('html').toggleClass('show-nav');\r\n})\r\n\r\n$('.addthis-toggle').on('click', function() {\r\n $(this).toggleClass('show-tools');\r\n})\r\n\r\n\r\n$('[data-fancybox]').fancybox();\r\n\r\ntry {\r\n if (moment) {\r\n if (locale.dir == \"ltr\") {\r\n moment.locale('en-gb');\r\n } else {\r\n moment.locale('ar-ae');\r\n }\r\n }\r\n} catch {\r\n\r\n}\r\n\r\n","\r\nimport { viewport } from './toolbox.js';\r\n\r\n\r\nexport default function () {\r\n\t$('a[href*=\"#\"]:not([href=\"#\"])').click(function(e) {\r\n\r\n\t\t// if($('html').hasClass('ios') || viewport().width < 1050) {\r\n\t\t// \t$('body, html').removeClass('navigation');\r\n\t\t// \treturn;\r\n\t\t// }\r\n\r\n\t\tif($(e.target).hasClass('popup-inline-videobox') || $(e.target).hasClass('dynamic-video-player')) return;\r\n\r\n\t\tif (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\r\n\r\n\t\t\tvar hash = this.hash;\r\n\t\t\tvar target = $(hash);\r\n\t\t\ttarget = target.length ? target : $('[name=' + this.hash.slice(1) +']');\r\n\t\t\tvar targetPos, currentPos, delta, dur;\r\n\t\t\tvar offset = (viewport().width < 1050) ? 59 : 69;\r\n\t\t\tif(target.hasClass('tab-content')) return;\r\n\t\t\tif (target.length) {\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t$('body, html').removeClass('navigation');\r\n\t\t\t\ttarget.prop('id', 'target');\r\n\t\t\t\ttargetPos = target.offset().top - offset;\r\n\r\n\t\t\t\t// currentPos = $(window).scrollTop()\r\n\t\t\t\t// delta = Math.abs(targetPos - currentPos);\r\n\t\t\t\t// dur = delta/2000;\r\n\t\t\t\tlocation.hash = hash;\r\n\r\n\t\t\t\t//console.log(delta, dur)\r\n\t\t\t\t// TweenMax.to(window, 1, {scrollTo:targetPos, delay: 0.1, ease:Power2.easeInOut, onComplete:function(){\r\n\t\t\t\t// \ttarget.prop('id', hash.split('#')[1]);\r\n\t\t\t\t// }});\r\n\t\t\t\t$('html, body').animate({scrollTop: targetPos}, 1000, 'swing', function() {\r\n\t\t\t\t target.prop('id', hash.split('#')[1]);\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n};\r\n"],"sourceRoot":""}