{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/js/main.js","webpack:///./src/assets/js/modules/box-slider.js","webpack:///./src/assets/js/modules/event-browser.js","webpack:///./src/assets/js/modules/event-popup.js","webpack:///./src/assets/js/modules/events-loader.js","webpack:///./src/assets/js/modules/form-handler.js","webpack:///./src/assets/js/modules/form-validator.js","webpack:///./src/assets/js/modules/globals.js","webpack:///./src/assets/js/modules/hero-slider.js","webpack:///./src/assets/js/modules/image-carousel.js","webpack:///./src/assets/js/modules/list-filter.js","webpack:///./src/assets/js/modules/search-box.js","webpack:///./src/assets/js/modules/smooth-anchors.js","webpack:///./src/assets/js/modules/social-media-thumbs.js","webpack:///./src/assets/js/modules/tab-bar.js","webpack:///./src/assets/js/modules/toolbox.js","webpack:///./src/assets/js/modules/video-handler.js"],"names":["heroSlider","searchBox","tabBar","forms","boxSlider","imageCarousel","smThumbs","videoHandler","smoothAnchors","eventBrowser","eventLoader","eventPopup","listFilter","toolbox","$","on","toggleClass","fancybox","moment","locale","dir","arrowBtn","BoxSlider","el","list","querySelector","rtl","children","length","initSlider","flkty","Flickity","contain","prevNextButtons","pageDots","rightToLeft","autoPlay","pager","document","createElement","classList","add","innerHTML","insertBefore","firstChild","requestAnimationFrame","initPagerControls","addEventListener","previous","next","Array","from","querySelectorAll","forEach","box","oneoffEvents","eos","defaultApi","todayISOstring","Date","format","split","today","monthSeparator","date","eventThumb","event","url","isToday","day","getDate","isPast","past","lastDateEntry","days","lastDateEntrySplit","comma","lang","indexOf","dateDisplay","month","thumb","title","join","peekView","events","peek","emptyThumb","msg","EventBrowser","api","getAttribute","calendarArrows","HelloWeek","helloWeek","langFolder","weekStart","disablePastDays","onNavigation","update","bind","nav","loadJSON","data","JSON","parse","highlightCalendar","resp","calendar","peekingHandler","window","peeking","peekingClose","stopPropagation","target","hasAttribute","remove","entries","addToMonth","id","dayLast","d","index","push","setAttribute","eventsToday","titles","uniqueEntries","find","e","appendChild","calendarEvents","dates","hasRange","some","isArray","updateEntries","createUniqueEntries","calendarMarkers","sortUniqueEntries","pastRestictions","updateList","dateStart","dateEnd","isCurrent","sortDay","closeDay","undefined","calendarDate","getYear","getMonth","isBefore","getFullYear","endOf","startOf","isAfter","currentDates","sort","a","b","ids","filter","self","uev","ev","hidePastEntries","preventListUpdate","dom","shareLabel","popupDom","hero","info","content","media","EventPopup","href","getUrl","setState","preventDefault","state","popup","loadHTML","response","parseResponse","charAt","location","origin","mediaElem","console","log","open","type","baseClass","idleTime","video","autoStart","afterShow","instance","current","carousel","$content","videos","addthis","layers","refresh","initCarousel","initVideo","initAll","elem","init","EventsLoader","replace","renderEvents","bumpDate","parseInt","year","nextDate","SmartForm","prototype","requireds","submitHandler","initValidation","submitBtn","initSubmitDisable","requirement","disabled","validate","validateForm","valid","responseBox","testState","setTimeout","submitData","XHR","XMLHttpRequest","FD","FormData","responseText","status","send","displayResponse","pathname","message","parentNode","nextSibling","form","fieldErrors","required","requiredSelect","email","phone","emiratesID","errorLabel","label","init_intlTelInput","style","append","script","init_intlTelInput_fields","intlTelInputGlobals","loadUtils","telFields","iti","intlTelInput","preferredCountries","excludeCountries","separateDialCode","formatOnDisplay","autoPlaceholder","fieldUpdate","errorID","errorDom","validateInput","value","validateEmail","checked","tElem","getInstance","isValidNumber","validateSelect","re","test","tagName","prev","root","HeroSlider","initSliders","initPager","slider","wrapAround","pagerButton","insertAfter","popupListenerOn","carouselShowing","Event","carouselHiding","popupListener","slide","$refs","container","dispatchEvent","ImageCarousel","onScreen","closest","clearTimeout","scrollTimeout","resize","setScrollTimeout","item","tabParent","contains","pvs","visibilityChange","hidden","videoChild","cells","cell","element","Filter","initList","initSearch","domLists","items","domItems","text","tags","innerText","searchUpdate","pos","getOffset","top","scroll","left","behavior","term","trim","results","terms","pass","toUpperCase","includes","t","SearchBox","button","input","clickHandler","blurHandler","submit","blur","focus","click","hasClass","hostname","hash","slice","targetPos","currentPos","delta","dur","offset","viewport","width","removeClass","prop","animate","scrollTop","postPopup","post","imgOnly","caption","postType","source","postPopupHeader","postPopupCaption","postUrl","mediaType","mediaUrl","mediaPoster","postElem","postThumbText","postThumbImage","truncateString","thumbnailUrl","SocialMediaThumbs","rowLength","getComputedStyle","getPropertyValue","expandIndex","batch","expandButton","createThumbs","createPopups","thumbs","newList","cloneNode","replaceChild","thumbItems","popups","thumbClicked","openPopups","fancyOptions","initPopupContents","TabBar","hasSlideControls","freeScroll","tabAlign","updateEvent","initControls","cellAlign","dragged","updatePagerControls","throttle","progress","slideState","updateSlideControls","activateTab","defaultIndex","activeTab","checkHash","hashIndex","i","tab","prevTab","currentIndex","select","tabHref","startsWith","updateHash","activateContent","history","pushState","contents","prevContent","parentElement","slideControls","initSlideControls","pagers","applyForce","startAnimation","dragEnd","isNaN","Infinity","debounce","fn","delay","timer","context","args","arguments","apply","threshhold","scope","last","deferTimer","now","documentElement","body","height","offsetTop","offsetLeft","offsetParent","output","getRandomInt","min","max","Math","floor","random","watchScroll","exports","trigger","getQueryVariable","variable","query","search","substring","vars","pair","newNode","referenceNode","callback","fail","xobj","overrideMimeType","onreadystatechange","readyState","statusText","responseType","responseXML","shuffle","array","temporaryValue","randomIndex","string","hexToRgb","hex","shorthandRegex","m","r","g","result","exec","removeHash","scrollV","scrollH","loc","scrollLeft","eventOptionSupport","option","supported","opts","Object","defineProperty","get","removeEventListener","getDocumentScrollTop","pageYOffset","getDocumentScrollLeft","pageXOffset","unique","pageVisibilityStatus","msHidden","webkitHidden","playButton","VideoHandler","paused","play","removeAttribute","sliderParent","pause"],"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 = \"./src/assets/js/main.js\");\n","\nimport { locale } from './modules/globals.js';\n\nimport heroSlider from './modules/hero-slider';\nimport forms from './modules/form-handler';\nimport searchBox from './modules/search-box';\nimport tabBar from './modules/tab-bar';\nimport boxSlider from './modules/box-slider';\nimport imageCarousel from './modules/image-carousel';\nimport smThumbs from './modules/social-media-thumbs';\nimport videoHandler from './modules/video-handler';\nimport smoothAnchors from './modules/smooth-anchors';\nimport eventPopup from './modules/event-popup';\nimport toolbox from './modules/toolbox';\nimport eventBrowser from './modules/event-browser';\nimport eventLoader from './modules/events-loader';\nimport listFilter from './modules/list-filter';\n\nheroSlider();\nsearchBox();\ntabBar();\nforms();\nboxSlider();\nimageCarousel();\nsmThumbs();\nvideoHandler();\nsmoothAnchors();\neventBrowser();\neventLoader();\neventPopup();\nlistFilter();\ntoolbox;\n\n$('[data-nav-trigger]').on('click', () => {\n $('html').toggleClass('show-nav');\n})\n\n$('.addthis-toggle').on('click', function() {\n $(this).toggleClass('show-tools');\n})\n\n\n$('[data-fancybox]').fancybox();\n\ntry {\n if (moment) {\n if (locale.dir == \"ltr\") {\n moment.locale('en-gb');\n } else {\n moment.locale('ar-ae');\n }\n }\n} catch {\n\n}\n\n","\nimport { locale } from './globals.js';\n\nconst arrowBtn = function (dir) {\n return ``\n}\n\nclass BoxSlider {\n constructor(el) {\n if(!el) return false;\n this.el = el;\n this.list = this.el.querySelector('[data-box-slider-list]');\n this.rtl = (locale.dir == 'rtl');\n if(this.list.children.length > 1) {\n this.initSlider();\n }\n }\n initSlider () {\n this.flkty = new Flickity(this.list, {\n contain: true,\n prevNextButtons: false,\n pageDots: false,\n rightToLeft: this.rtl,\n autoPlay: 4000\n });\n this.pager = document.createElement('div');\n this.pager.classList.add('box-slider-pager', 'pager-arrows');\n this.pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\n this.el.insertBefore(this.pager, this.el.firstChild);\n requestAnimationFrame(() => {\n this.initPagerControls(); \n });\n\n }\n initPagerControls() {\n this.pager.querySelector('.arrow.prev').addEventListener('click', () => {\n this.flkty.previous(true);\n })\n this.pager.querySelector('.arrow.next').addEventListener('click', () => {\n this.flkty.next(true);\n })\n }\n}\nexport default function () {\n Array.from(document.querySelectorAll('[data-box-slider]')).forEach( (box) => {\n new BoxSlider(box);\n });\n}\n","\nimport { locale } from './globals.js';\nimport { loadJSON, eventOptionSupport as eos } from './toolbox.js';\nimport eventPopup from './event-popup';\n\nlet oneoffEvents = eos('once');\n\nconst defaultApi = '/assets/data/events.json';\n\nconst todayISOstring = moment(new Date()).format().split('T')[0];\nconst today = new Date(todayISOstring);\n\nconst monthSeparator = function (date) {\n return `
  • ${date}
  • `\n}\nconst eventThumb = function (event) {\n let url = event.url;\n let isToday = (event.day == today.getDate()) ? 'is-today' : '';\n let isPast = event.past ? 'is-past' : '';\n let lastDateEntry = event.days[event.days.length - 1];\n let lastDateEntrySplit = lastDateEntry.split(' ');\n let comma = (locale.lang == \"ar\") ? '، ' : ',';\n\n \n // only add locale if it's not present already\n if (url.indexOf(`/${locale.lang}/`) === -1 ) url = `/${locale.lang}${event.url}`;\n\n return `\n
  • \n
    ${event.dateDisplay.day}
    ${event.dateDisplay.month}
    \n
    \n
    \n

    ${event.title}

    \n
    ${event.days.join(`${comma} `)} ${(lastDateEntrySplit[lastDateEntrySplit.length - 1].length <= 2) ? event.dateDisplay.month : ''}
    \n
    \n
  • \n `\n}\nconst peekView = function (events, date) {\n let peek = document.createElement('div');\n peek.classList.add('day-peek');\n peek.innerHTML += `
    ${date}
    `;\n events.forEach((event) => {\n let url = event.url;\n if (url.indexOf(`/${locale.lang}/`) === -1 ) url = `/${locale.lang}${event.url}`;\n peek.innerHTML += `${event.title}`;\n })\n return peek;\n}\nconst emptyThumb = function (msg) {\n return `\n
  • ${msg}
  • \n `\n}\n\nclass EventBrowser {\n constructor (el) {\n if(!el) return false;\n this.el = el;\n this.list = this.el.querySelector('[data-event-list]');\n this.api = this.el.getAttribute('data-event-api') ? this.el.getAttribute('data-event-api') : defaultApi;\n let calendarArrows = ['◀', '▶'];\n //if (locale.dir == 'rtl') calendarArrows = ['▶', '◀'];\n try { HelloWeek } catch { return; }\n this.helloWeek = new HelloWeek({\n langFolder: '/assets/lib/hello-week/langs/',\n weekStart: 0,\n disablePastDays: true,\n onNavigation: this.update.bind(this),\n // onSelect: this.daySelected.bind(this),\n nav: calendarArrows,\n rtl: (locale.dir == 'rtl'),\n lang: locale.lang\n });\n loadJSON(this.api, (data) => {\n this.data = JSON.parse(data);\n requestAnimationFrame(() => {\n this.highlightCalendar();\n this.update();\n })\n }, (resp) => {});\n this.el.querySelector('[data-event-nav=\"next-month\"]').addEventListener('click', () => {this.helloWeek.next()});\n this.helloWeek.calendar.month.addEventListener('click', this.peekingHandler.bind(this));\n window.addEventListener('click', () => {\n if(this.peeking) this.peekingClose();\n })\n }\n peekingHandler(event) {\n event.stopPropagation();\n if (event.target.hasAttribute('data-event-popup')) return;\n \n if (this.peeking) this.peekingClose();\n if (event.target.hasAttribute('data-events')) {\n requestAnimationFrame(() => {\n this.peeking = true;\n event.target.classList.add('peeking');\n })\n }\n }\n peekingClose() {\n this.peeking = false;\n Array.from(this.helloWeek.calendar.month.querySelectorAll('.peeking')).forEach((day) => {\n day.classList.remove('peeking');\n })\n }\n calendarMarkers() {\n let days = Array.from(this.helloWeek.calendar.month.children)\n let month = new Array(days.length);\n this.entries.forEach((event) => {\n days[event.day - 1].classList.add('is-highlight');\n //this.addEventToDay(days[event.day - 1], event.id);\n addToMonth(event.day - 1, event.id);\n \n if (event.dayLast) {\n for (let d = event.day; d < event.dayLast; d++) {\n days[d].classList.add('is-highlight');\n addToMonth(d, event.id);\n }\n }\n })\n function addToMonth(index, id) {\n if (month[index]) month[index].push(id)\n else month[index] = [`${id}`];\n }\n days.forEach((day, index) => {\n if(month[index]) {\n day.setAttribute('data-events', month[index].join(','));\n let eventsToday = [];\n let titles = [];\n month[index].forEach((id) => {\n let event = this.uniqueEntries.find((e) => {\n return e.id == id;\n })\n if (event) {\n eventsToday.push(event);\n titles.push(event.title);\n }\n })\n day.setAttribute('title', titles.join(', '));\n let date = `${index+1} ${eventsToday[0].dateDisplay.month}`\n day.appendChild(peekView(eventsToday, date));\n }\n })\n }\n\n highlightCalendar() {\n let calendarEvents = [];\n this.data.forEach((event) => {\n calendarEvents.push(\n {\n days: event.dates,\n title: event.title[locale.lang]\n }\n )\n })\n this.helloWeek.update();\n }\n normalizeDates() {\n this.data.forEach((event, e) => {\n let hasRange = false;\n this.data[e].dates.some((date) => {\n if(Array.isArray(date)) {\n hasRange = true;\n }\n })\n if (hasRange) {\n this.data[e].dates.forEach((date, d) => {\n if(!Array.isArray(date)) this.data[e].dates[d] = [date, date];\n })\n }\n });\n }\n update() {\n this.updateEntries();\n this.createUniqueEntries();\n this.calendarMarkers();\n this.sortUniqueEntries();\n this.pastRestictions();\n requestAnimationFrame(() => {\n // if (this.preventListUpdate) return;\n this.updateList();\n requestAnimationFrame(() => {\n eventPopup();\n })\n })\n }\n updateEntries() {\n this.entries = [];\n\n //console.log(moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]).endOf('month').format('D'));\n this.data.forEach((event, e) => {\n event.dates.forEach((date, d) => {\n let dateStart, dateEnd;\n let isCurrent = false;\n let isPast = false;\n let sortDay = 1;\n let closeDay = undefined;\n let calendarDate = moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]);\n\n \n if (Array.isArray(date)) dateStart = new Date(date[0]);\n else dateStart = new Date(date);\n\n if(moment(dateStart).isBefore(today)) isPast = true;\n\n if (Array.isArray(date) && date[0] != date[1] ) {\n dateEnd = new Date(date[1]);\n \n if(moment(dateEnd).isBefore(today)) isPast = true;\n else isPast = false;\n\n if (this.helloWeek.getYear() === dateStart.getFullYear()) {\n if (this.helloWeek.getMonth() === dateStart.getMonth() + 1) {\n // starts this month\n isCurrent = true;\n sortDay = dateStart.getDate();\n if (this.helloWeek.getMonth() === dateEnd.getMonth() + 1) {\n // starts and ends this month\n closeDay = dateEnd.getDate();\n } else {\n // starts this month and ends later\n closeDay = moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]).endOf('month').format('D');\n }\n } else {\n if (this.helloWeek.getMonth() === dateEnd.getMonth() + 1) {\n // starts earlier and ends this month\n isCurrent = true;\n closeDay = dateEnd.getDate();\n } else {\n if (calendarDate.startOf('month').isAfter(dateStart) && calendarDate.endOf('month').isBefore(dateEnd)) {\n // starts earlier and ends later\n closeDay = moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]).endOf('month').format('D');\n isCurrent = true;\n }\n }\n }\n } else if (this.helloWeek.getYear() === dateEnd.getFullYear()) {\n if (this.helloWeek.getMonth() === dateEnd.getMonth() + 1) {\n isCurrent = true;\n closeDay = dateEnd.getDate();\n }\n }\n } else {\n if (this.helloWeek.getYear() === dateStart.getFullYear()) {\n if (this.helloWeek.getMonth() === dateStart.getMonth() + 1) {\n isCurrent = true;\n sortDay = dateStart.getDate();\n }\n }\n }\n\n if (isCurrent) {\n\n this.entries.push({\n id: event.id,\n day: sortDay,\n dayLast: closeDay,\n past: isPast,\n dateDisplay: {\n day: moment(dateStart).format('DD'),\n month: moment(dateStart).format('MMM')\n },\n dates: event.dates,\n currentDates: (dateEnd) ? [dateStart, dateEnd] : [dateStart],\n title: event.title[locale.lang],\n thumb: event.thumb,\n url: event.url\n })\n }\n })\n })\n this.entries.sort((a, b) => (a.day - b.day) );\n \n }\n createUniqueEntries() {\n let ids = [];\n let calendarDate = moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]);\n this.uniqueEntries = this.entries.filter((event, index, self) => {\n ids.push(event.id);\n return ids.indexOf(event.id) == index;\n })\n this.uniqueEntries.forEach((uev) => {\n uev.days = [];\n this.entries.forEach((ev) => {\n if (ev.id == uev.id) {\n if(ev.dayLast) {\n if (calendarDate.startOf('month').isAfter(ev.currentDates[0])) {\n //console.log(ev.title, calendarDate.format(\"D MMM\"), moment(ev.currentDates[0]).format(\"D MMM\"));\n // starts earlier\n uev.days.push(`${moment(ev.currentDates[0]).format(\"D MMM\")} – ${moment(ev.currentDates[1]).format(\"D MMM\")}`);\n } else {\n // starts this month\n\n if (calendarDate.endOf('month').isBefore(ev.currentDates[1])) {\n // starts this month and ends later\n uev.days.push(`${moment(ev.currentDates[0]).format(\"D MMM\")} – ${moment(ev.currentDates[1]).format(\"D MMM\")}`);\n } else {\n // starts and ends this month\n uev.days.push(`${ev.day} – ${ev.dayLast}`);\n }\n }\n\n } else {\n uev.days.push(`${ev.day}`);\n }\n }\n })\n });\n \n }\n sortUniqueEntries() {\n this.uniqueEntries.forEach((uev) => {\n this.entries.forEach((ev) => {\n if (ev.id == uev.id) {\n if(uev.past && !ev.past) {\n uev.past = false;\n if(ev.dayLast) {\n if (ev.day > today.getDate()) {\n uev.day = ev.day;\n uev.dateDisplay.day = moment(ev.currentDates[0]).format('DD');\n } else {\n uev.day = today.getDate();\n uev.dateDisplay.day = moment(today).format('DD');\n }\n \n } else {\n uev.day = ev.day;\n uev.dateDisplay.day = moment(ev.currentDates[0]).format('DD');\n }\n }\n }\n })\n });\n this.uniqueEntries.sort((a, b) => (a.day - b.day) );\n }\n pastRestictions() {\n // hide list items from the past\n this.hidePastEntries = true;\n // get current calendar date\n let calendarDate = moment([this.helloWeek.getYear(), this.helloWeek.getMonth() - 1]);\n if (calendarDate.endOf('month').isBefore(today)) {\n this.preventListUpdate = true;\n } else {\n this.preventListUpdate = false;\n }\n // prevent calendar from navigating to past months\n /* if (moment(today).startOf('month').isSame(calendarDate.startOf('month')) || calendarDate.endOf('month').isBefore(today)) {\n this.helloWeek.calendar.prevMonth.classList.add('past');\n } else {\n this.helloWeek.calendar.prevMonth.classList.remove('past');\n } */\n }\n updateList () {\n if (this.preventListUpdate) return;\n let msg = '';\n let dom = '';\n let month = (this.helloWeek.getMonth() > 9) ? this.helloWeek.getMonth() : '0'+this.helloWeek.getMonth();\n let title = moment(`${this.helloWeek.getYear()}-${month}-01`).format('MMMM YYYY');\n let entries = this.uniqueEntries;\n dom += monthSeparator(title);\n if (entries && entries.length > 0) {\n entries.forEach(event => {\n if(event.past && this.hidePastEntries) return;\n dom += eventThumb(event);\n });\n } else {\n msg = this.list.getAttribute('data-event-empty') ? this.list.getAttribute('data-event-empty') : 'No events';\n dom += emptyThumb(msg);\n }\n requestAnimationFrame(() => {\n this.list.innerHTML = dom;\n })\n }\n}\nexport default function () {\n new EventBrowser(document.querySelector('[data-event-browser]'));\n}\n","import { locale } from \"./globals.js\";\nimport { loadHTML } from \"./toolbox.js\";\nimport { init as initCarousel } from \"./image-carousel.js\";\nimport { init as initVideo } from \"./video-handler.js\";\nlet shareLabel = locale.lang == 'en' ? 'Share' : 'شارك';\n\nconst popupDom = function(event) {\n return `\n
    \n
    ${\n event.hero.innerHTML\n }
    \n
    \n ${event.info.innerHTML}\n
    \n
    \n

    ${event.title.innerHTML}

    \n\n ${event.content.innerHTML}\n
    \n
    \n \n \n
    \n
    \n ${shareLabel}\n
    \n
    \n
    \n \n \n
    \n
    \n `;\n};\nclass EventPopup {\n constructor(el) {\n if (!el) return false;\n if (el.hasAttribute(\"data-state\")) return;\n this.el = el;\n this.href = this.getUrl();\n this.el.innerHTML +=\n '
    ';\n this.setState(\"inited\");\n this.el.addEventListener(\"click\", event => {\n event.preventDefault();\n if (this.state == \"loaded\") {\n this.popup();\n } else {\n this.el.classList.add(\"loading\");\n loadHTML(this.href, data => {\n this.response = data;\n this.parseResponse();\n this.el.classList.remove(\"loading\");\n this.popup();\n });\n }\n });\n }\n getUrl() {\n let url = this.el.getAttribute(\"href\");\n if (url.charAt(0) == \"/\") url = `${window.location.origin}${url}`;\n return url;\n }\n parseResponse() {\n this.event = {\n hero: this.response.querySelector(\".page-cover\"),\n title: this.response.querySelector(\".page-header h1\"),\n info: this.response.querySelector(\".page-header .event-info\"),\n content: this.response.querySelector(\".page-content\"),\n url: this.href,\n media: ''\n };\n let mediaElem = this.event.hero.querySelector('figure')\n if (mediaElem && mediaElem.hasAttribute('data-media')) {\n this.event.media = mediaElem.getAttribute('data-media')\n }\n //this.event.media = this.event.hero.querySelector('figure')\n console.log(this.event.media);\n this.setState(\"loaded\");\n }\n popup() {\n $.fancybox.open({\n type: \"html\",\n content: popupDom(this.event),\n baseClass: \"event-popup content-view\",\n idleTime: false,\n video: {\n autoStart: false\n },\n afterShow: (instance, current) => {\n let carousel = current.$content[0].querySelector(\n \"[data-image-carousel]\"\n );\n let videos = Array.from(\n current.$content[0].querySelectorAll(\"[data-video-handler]\")\n );\n addthis.layers.refresh()\n current.$content.find('.addthis-toggle').on('click', function() {\n $(this).toggleClass('show-tools');\n })\n\n initCarousel(carousel);\n if (videos && videos.length > 0) {\n videos.forEach(video => {\n initVideo(video);\n });\n }\n }\n });\n }\n setState(state) {\n this.state = state;\n this.el.setAttribute(\"data-state\", state);\n }\n}\n\nexport function initAll() {\n Array.from(document.querySelectorAll(\"[data-event-popup]\")).forEach(\n (elem, index) => {\n init(elem);\n }\n );\n}\n\nexport function init(elem) {\n if (elem.hasAttribute(\"data-status\")) return;\n new EventPopup(elem);\n}\n\nexport default function(elem) {\n if (!elem || elem.length < 1) {\n initAll();\n } else {\n init(elem);\n }\n}\n","\nimport { locale } from './globals.js';\nimport { loadJSON } from './toolbox.js';\n\nconst monthSeparator = function (date) {\n return `
  • ${date}
  • `\n}\nconst eventThumb = function (event) {\n return `\n
  • \n
    ${event.date.day}
    ${event.date.month}
    \n
    \n

    ${event.title}

    \n
  • \n `\n}\nconst emptyThumb = function (msg) {\n return `\n
  • ${msg}
  • \n `\n}\nclass EventsLoader {\n constructor (el) {\n if(!el) return false;\n this.el = el;\n this.list = document.querySelector('[data-events-list]');\n this.api = this.el.getAttribute('data-api');\n this.date = this.el.getAttribute('data-date');\n this.el.addEventListener('click', () => {\n this.el.setAttribute('data-state', 'working');\n let url = this.api.replace('%date%', this.date);\n loadJSON(url, this.renderEvents.bind(this), (resp) => {\n this.el.setAttribute('disabled', 'disabled');\n this.el.setAttribute('data-state', 'error');\n });\n })\n }\n renderEvents (data) {\n data = JSON.parse(data);\n let msg = '';\n let dom = '';\n dom += monthSeparator(data['date']);\n if (data.events && data.events.length > 0) {\n data.events.forEach(event => {\n dom += eventThumb(event);\n });\n } else {\n msg = data.msg ? data.msg : 'No events this month';\n dom += emptyThumb(msg);\n }\n requestAnimationFrame(() => {\n this.list.innerHTML += dom;\n this.bumpDate();\n this.el.setAttribute('data-state', 'ready');\n })\n }\n bumpDate() {\n let month = parseInt(this.date.split('-')[1]);\n let year = parseInt(this.date.split('-')[0]);\n let nextDate = '';\n if (month < 9) {\n nextDate = `${year}-0${month+1}`;\n } else if ( month >= 9 && month < 12) {\n nextDate = `${year}-${month+1}`;\n } else {\n nextDate = `${year+1}-01`;\n }\n this.date = nextDate;\n this.el.setAttribute('data-date', this.date);\n }\n \n}\nexport default function () {\n new EventsLoader(document.querySelector('[data-events-loader]'));\n}\n","\nimport { locale } from './globals.js';\nimport { initValidation, validate } from './form-validator';\n\nconst forms = [];\n\nfunction SmartForm(el) {\n\tthis.el = el;\n\tthis.init();\n};\nSmartForm.prototype.init = function() {\n this.id = `f${forms.length-1}`\n\tthis.el.setAttribute('novalidate', '');\n\tthis.el.setAttribute('data-state', 'ready');\n this.requireds = this.el.querySelectorAll('[required]');\n\n\tif (this.el.hasAttribute('data-api')) {\n\t\tthis.el.addEventListener('submit', this.submitHandler.bind(this));\n\t}\n\tthis.requireds.forEach((elem, index) => {\n\t\tinitValidation(elem);\n\t});\n\n\tthis.submitBtn = this.el.querySelector('[type=\"submit\"]');\n\tif(this.submitBtn.hasAttribute('data-require')) {\n\t\tthis.initSubmitDisable();\n\t}\n}\nSmartForm.prototype.initSubmitDisable = function () {\n\tvar requirement = this.el.querySelector(this.submitBtn.getAttribute('data-require'));\n\tthis.submitBtn.disabled = !validate(requirement);\n\trequirement.addEventListener('input', (event) => {\n\t\tthis.submitBtn.disabled = !validate(requirement);\n\t})\n}\nSmartForm.prototype.validateForm = function() {\n\tvar valid = true;\n\tthis.requireds.forEach((elem) => {\n\t\tvalidate(elem);\n\t\tif(elem.getAttribute('data-state') === 'error') valid = false;\n\t})\n\treturn valid;\n}\nSmartForm.prototype.submitHandler = function (event) {\n\tevent.preventDefault();\n event.stopPropagation();\n\n\tif(!this.validateForm()) return;\n\n\t// get api url\n\tthis.api = this.el.getAttribute('data-api');\n\n\tthis.setState('working');\n\tif (this.responseBox) this.responseBox.remove();\n\n\tif (this.api.length == 0 || this.api == 'test') {\n\t\tvar testState = (this.el.hasAttribute('data-test-state')) ? this.el.getAttribute('data-test-state') : 'error';\n\t\tsetTimeout(function(){\n\t this.setState(testState);\n\t }.bind(this), 1000);\n\t return;\n\t}\n\tthis.submitData();\n}\nSmartForm.prototype.submitData = function() {\n\tvar XHR = new XMLHttpRequest();\n var FD = new FormData(this.el);\n // Success\n XHR.addEventListener('load', (event) => {\n\t\tthis.response = JSON.parse(event.target.responseText);\n\t\tif(event.target.status == 200) {\n\t\t\tthis.setState('success');\n\t\t} else {\n\t\t\tthis.setState('error');\n\t\t}\n\t});\n\tXHR.open(\"POST\", this.api);\n XHR.send(FD);\n}\nSmartForm.prototype.setState = function(state) {\n\tthis.el.setAttribute('data-state', state);\n\tthis.state = state;\n\tif (state == 'error') {\n\t\t// if(this.el.hasAttribute('data-response')) {\n\t\t\tthis.displayResponse();\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.setState('error-response');\n\t\t\t})\n\t\t// }\n\t\tsetTimeout(function(){\n\t\t\tthis.el.setAttribute('data-state', 'ready');\n\t\t\tif (this.responseBox) this.responseBox.remove();\n\t\t}.bind(this), 4000);\n\t}\n\tif (state == 'success') {\n\t\tsetTimeout(function(){\n\t\t\tif(this.el.hasAttribute('data-redirect')) {\n\t\t\t\twindow.location.pathname = this.el.getAttribute('data-redirect');\n\t\t\t}\n\t\t\tif(this.el.hasAttribute('data-collapse')) {\n\t\t\t\tthis.el.classList.add('collapse');\n\t\t\t}\n\t\t\t// if(this.el.hasAttribute('data-success-response')) {\n\t\t\t\tthis.displayResponse();\n\t\t\t// }\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.setState('success-response');\n\t\t\t})\n\t\t}.bind(this), 1000);\n\t}\n}\nSmartForm.prototype.displayResponse = function() {\n\tif(this.response == undefined) {\n\t\tif (this.state == 'success') {\n\t\t\tthis.response = {\n\t\t\t\tmessage: (this.el.getAttribute('data-success-response').length > 0) ? this.el.getAttribute('data-success-response') : 'Thank you!'\n\t\t\t}\n\t\t}\n\t\tif (this.state == 'error') {\n\t\t\tthis.response = {\n\t\t\t\tmessage: (this.el.getAttribute('data-error-response').length > 0) ? this.el.getAttribute('data-error-response') : 'Error!'\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\tthis.responseBox = document.createElement('div');\n\tthis.responseBox.classList.add('response-box');\n\tthis.responseBox.innerHTML = this.response.message;\n\tthis.el.parentNode.insertBefore(this.responseBox, this.el.nextSibling);\n}\n\nexport function initAll () {\n\tArray.from(document.querySelectorAll('[data-smart-form]')).forEach(function(elem, index) {\n\t\tinit(elem);\n\t});\n};\nexport function init(elem) {\n\tif(elem.hasAttribute('data-state')) return;\n forms.push(elem)\n var form = new SmartForm(elem);\n}\n\nexport default function (elem) {\n\tif (!elem || elem.length < 1) {\n\t\tinitAll();\n\t} else {\n\t init(elem);\n\t}\n}\n","\nimport { locale } from './globals.js';\n\nconst fieldErrors = {\n\trequired: {\n\t\t'en': 'This field is required.',\n\t\t'ar': 'هذا الحقل إلزامي'\n\t},\n\trequiredSelect: {\n\t\t'en': 'Please select.',\n\t\t'ar': 'الرجاء اختيار'\n\t},\n\temail: {\n\t\t'en': 'Please enter a valid email address.',\n\t\t'ar': 'رجاء إدخال عنوان بريد إلكتروني صحيح'\n\t},\n\tphone: {\n\t\t'en': 'Please enter a valid phone number',\n\t\t'ar': 'صحيح يرجى إدخال رقم هاتف'\n\t},\n\temiratesID: {\n\t\t'en': 'Please enter a valid Emirate ID number',\n\t\t'ar': 'يرجى إدخال رقم الهوية الإماراتية'\n\t}\n}\nfunction errorLabel () {\n var label = document.createElement('div');\n label.classList.add('error-msg');\n return label;\n}\nfunction init_intlTelInput () {\n let style = document.createElement('link');\n style.setAttribute('rel', 'stylesheet');\n style.setAttribute('href', '/assets/lib/intl-tel-input/css/intlTelInput.min.css');\n document.querySelector('head').append(style);\n\n let script = document.createElement('script');\n script.setAttribute('src', '/assets/lib/intl-tel-input/js/intlTelInput.min.js')\n script.addEventListener('load', (event) => {\n init_intlTelInput_fields();\n })\n document.querySelector('body').append(script);\n}\nfunction init_intlTelInput_fields () {\n intlTelInputGlobals.loadUtils('/assets/lib/intl-tel-input/js/utils.js');\n\n let telFields = Array.from(document.querySelectorAll('input[type=\"tel\"]'));\n\n telFields.forEach((elem) => {\n elem.parentNode.appendChild(errorLabel());\n elem.setAttribute('data-state', 'ready');\n let iti = intlTelInput(elem, {\n preferredCountries: ['ae','kw','sa','bh','om','qa'],\n excludeCountries: ['il'],\n separateDialCode: true,\n formatOnDisplay: true,\n autoPlaceholder: 'aggressive'\n })\n })\n}\nfunction fieldUpdate (elem, errorID) {\n let errorDom = elem.parentNode.querySelector('.error-msg');\n if(elem.type === 'tel' && elem.hasAttribute('data-intl-tel-input-id'))\n errorDom = elem.parentNode.parentNode.querySelector('.error-msg')\n\n if(errorID) {\n elem.setAttribute('data-state', 'error');\n errorDom.innerHTML = fieldErrors[errorID][locale.lang];\n errorDom.classList.add('show');\n } else {\n elem.setAttribute('data-state', 'valid');\n errorDom.classList.remove('show');\n }\n}\n\nexport function validateInput (elem) {\n if(elem.value == '') {\n fieldUpdate(elem, 'required');\n\t} else {\n\t\tif(elem.type === 'email') {\n\t\t\tif (validateEmail(elem.value)) {\n fieldUpdate(elem);\n\t\t\t} else {\n fieldUpdate(elem, 'email');\n\t\t\t}\n\t\t} else if(elem.type === 'checkbox') {\n\t\t\tif (elem.checked) {\n fieldUpdate(elem);\n\t\t\t} else {\n fieldUpdate(elem, 'required');\n\t\t\t}\n\t\t} else if(elem.type === 'tel') {\n let tElem = window.intlTelInputGlobals.getInstance(elem);\n if(tElem.isValidNumber()) {\n fieldUpdate(elem);\n } else {\n fieldUpdate(elem, 'phone');\n }\n\t\t} else {\n fieldUpdate(elem);\n\t\t}\n\t}\n};\nexport function validateSelect (elem) {\n if (elem.value == 'n/a') {\n\t\telem.setAttribute('data-state', 'error');\n\t\telem.parentNode.querySelector('.error-msg').innerHTML = fieldErrors.requiredSelect[locale.lang];\n\t} else {\n\t\telem.setAttribute('data-state', 'valid');\n\t}\n};\nexport function validateEmail (email) {\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,}))$/;\n return re.test(email);\n};\n\nexport function validate (elem) {\n\tif(elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') {\n\t\tvalidateInput(elem);\n\t}\n\tif(elem.tagName === 'SELECT') {\n\t\tvalidateSelect(elem);\n\t}\n\treturn (elem.getAttribute('data-state') === 'valid');\n};\n\nexport function initValidation (elem) {\n if(elem.tagName === 'INPUT' && elem.type === 'tel') {\n try { intlTelInput }\n catch { init_intlTelInput() }\n } else {\n elem.parentNode.appendChild(errorLabel());\n elem.setAttribute('data-state', 'ready');\n }\n\n elem.addEventListener('blur', (event) => {\n if(elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') {\n validateInput(elem);\n }\n });\n elem.addEventListener('input', (event) => {\n if(elem.tagName === 'SELECT') {\n validateSelect(elem);\n }\n if((elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA') && elem.getAttribute('data-state') === 'error') {\n validateInput(elem);\n }\n if(elem.tagName === 'INPUT' && elem.type === 'checkbox') {\n validateInput(elem);\n }\n if(elem.tagName === 'INPUT' && elem.type === 'tel') {\n validateInput(elem);\n }\n });\n};\n\n","\n\nexport const locale = {\n lang: document.querySelector('html').getAttribute('lang'),\n dir: document.querySelector('html').getAttribute('dir'),\n next: (document.querySelector('html').getAttribute('dir') == 'ltr') ? 'right' : 'left',\n prev: (document.querySelector('html').getAttribute('dir') == 'ltr') ? 'left' : 'right'\n};\n\nexport const root = document.querySelector('body').getAttribute('data-root');\n","\nimport { locale } from './globals.js';\nimport { insertAfter } from './toolbox.js';\n\nclass HeroSlider {\n constructor(el) {\n if(!el) return false;\n this.el = el;\n if(this.el.children.length < 2) {\n return;\n };\n this.rtl = (locale.dir == 'rtl');\n this.initSliders();\n this.initPager();\n }\n initSliders () {\n this.slider = new Flickity(this.el, {\n prevNextButtons: false,\n pageDots: false,\n wrapAround: true,\n rightToLeft: this.rtl,\n autoPlay: 5000\n });\n }\n initPager () {\n let pager = document.createElement('div');\n pager.classList.add('pager-arrows');\n pager.innerHTML = `${this.pagerButton('prev')}${this.pagerButton('next')}`;\n insertAfter(pager, this.el.querySelector('.flickity-viewport'));\n pager.querySelector('.arrow.prev').addEventListener('click', () => {\n this.slider.previous();\n });\n pager.querySelector('.arrow.next').addEventListener('click', () => {\n this.slider.next();\n });\n }\n pagerButton (dir) {\n return ``\n }\n \n}\nexport default function () {\n new HeroSlider(document.querySelector('[data-hero-slider]'));\n}\n","\nimport { locale } from './globals.js';\nimport { pageVisibilityStatus as pvs } from './toolbox.js';\n\nconst arrowBtn = function (dir) {\n return ``\n}\nlet popupListenerOn = false;\nlet carouselShowing = new Event('carousel-showing');\nlet carouselHiding = new Event('carousel-hiding');\nfunction popupListener() {\n if(popupListenerOn) return;\n popupListenerOn = true;\n $(document).on('beforeShow.fb', (instance, slide) => {\n requestAnimationFrame(() => {\n Array.from(slide.$refs.container[0].querySelectorAll('[data-image-carousel]')).forEach((carousel) => {\n carousel.dispatchEvent(carouselShowing);\n })\n });\n })\n $(document).on('afterClose.fb', (instance, slide) => {\n requestAnimationFrame(() => {\n Array.from(slide.$refs.container[0].querySelectorAll('[data-image-carousel]')).forEach((carousel) => {\n carousel.dispatchEvent(carouselHiding);\n })\n });\n })\n}\nclass ImageCarousel {\n constructor(el) {\n if(!el) return false;\n if (el.hasAttribute('data-inited')) return;\n this.el = el;\n this.el.setAttribute('data-inited', true);\n this.rtl = (locale.dir == 'rtl');\n this.onScreen = true;\n if(this.el.children.length > 1) {\n this.initSlider();\n }\n \n if(this.el.closest('.popup-buffer')) {\n popupListener();\n this.onScreen = false;\n clearTimeout(this.scrollTimeout);\n this.el.addEventListener('carousel-showing', () => {\n this.onScreen = true;\n if(this.flkty) {\n this.flkty.resize();\n this.setScrollTimeout();\n }\n })\n this.el.addEventListener('carousel-hiding', () => {\n this.onScreen = false;\n if(this.flkty) {\n clearTimeout(this.scrollTimeout);\n }\n })\n }\n }\n initSlider () {\n \n Array.from(this.el.children).forEach((item) => {\n item.classList.add('image-carousel-item');\n })\n \n this.flkty = new Flickity(this.el, {\n contain: true,\n prevNextButtons: false,\n pageDots: false,\n rightToLeft: this.rtl,\n wrapAround: true\n });\n this.el.classList.add('image-carousel');\n this.pager = document.createElement('div');\n this.pager.classList.add('image-carousel-pager', 'pager-arrows');\n this.pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\n this.el.insertBefore(this.pager, this.el.firstChild);\n this.tabParent = this.el.closest('[data-tab-content]');\n if(this.tabParent) {\n this.tabParent.addEventListener('tab-content-update', () => {\n if(this.tabParent.classList.contains('active')) {\n this.setScrollTimeout();\n } else {\n clearTimeout(this.scrollTimeout);\n }\n });\n }\n document.addEventListener(pvs().visibilityChange, () => {\n if(document[pvs().hidden]) {\n clearTimeout(this.scrollTimeout)\n } else {\n this.setScrollTimeout();\n }\n }, false);\n requestAnimationFrame(() => {\n this.initPagerControls();\n });\n this.flkty.on('change', this.setScrollTimeout.bind(this));\n this.setScrollTimeout();\n setTimeout(this.videoChild.bind(this), 500);\n }\n setScrollTimeout() {\n if(document[pvs().hidden] || !this.onScreen) return;\n if(!this.tabParent || this.tabParent.classList.contains('active')) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(() => {\n this.flkty.next(true);\n }, 7000);\n }\n }\n initPagerControls() {\n this.pager.querySelector('.arrow.prev').addEventListener('click', () => {\n this.flkty.previous(true);\n })\n this.pager.querySelector('.arrow.next').addEventListener('click', () => {\n this.flkty.next(true);\n })\n }\n videoChild() {\n this.flkty.cells.forEach((cell) => {\n let video = cell.element.querySelector('video');\n if(video) {\n video.addEventListener('play', () => {\n clearTimeout(this.scrollTimeout);\n })\n video.addEventListener('pause', () => {\n this.setScrollTimeout();\n })\n }\n });\n }\n}\n\nexport function initAll () {\n\tArray.from(document.querySelectorAll('[data-image-carousel]')).forEach((elem, index) => {\n\t\tinit(elem);\n\t});\t\n};\n\nexport function init(elem) {\n new ImageCarousel(elem);\n}\n\nexport default function (elem) {\n\tif (!elem || elem.length < 1) {\n\t\tinitAll();\n\t} else {\n\t init(elem);\n\t}\n}","\nimport { locale } from './globals.js';\nimport { getOffset } from './toolbox.js';\n\nclass Filter {\n constructor (el) {\n if(!el) return false;\n this.el = el;\n this.id = this.el.getAttribute('data-filter');\n this.initList();\n this.initSearch();\n }\n initList () {\n this.domLists = Array.from(document.querySelectorAll(`[data-filter-list=${this.id}]`));\n this.items = [];\n this.domLists.forEach( (list) => {\n list.classList.add('filter-list');\n let domItems = Array.from(list.children);\n domItems.forEach((elem) => {\n let text = elem.querySelector('[data-filter-text]')\n let tags = elem.querySelector('[data-filter-tags]');\n let content = \"\";\n if (text) content += text.innerText;\n if (tags) content += ` ${tags.getAttribute('data-filter-tags')}`;\n elem.classList.add('filter-list-item');\n this.items.push (\n { content, elem }\n )\n })\n });\n }\n initSearch () {\n this.el.addEventListener('submit', (event) => {event.preventDefault()});\n this.searchBox = this.el.querySelector('[data-filter-search]');\n this.searchBox.addEventListener('input', this.searchUpdate.bind(this));\n this.searchBox.addEventListener('focus', () => {\n let pos = getOffset(this.searchBox).top - 50;\n window.scroll({ top: pos, left: 0, behavior: 'smooth' });\n });\n }\n searchUpdate (event) {\n let term = this.searchBox.value.trim();\n let results = 0;\n if (term.length > 2) {\n this.items.forEach((item) => {\n let terms = term.split(' ');\n let pass = true;\n if (terms.length < 2) {\n if(item.content.toUpperCase().includes(term.toUpperCase())) {\n item.elem.classList.remove('hide');\n results++;\n } else {\n item.elem.classList.add('hide');\n }\n } else {\n terms.forEach((t) => {\n if(!item.content.toUpperCase().includes(t.toUpperCase())) {\n pass = false;\n }\n })\n if (pass) {\n item.elem.classList.remove('hide');\n results++;\n } else {\n item.elem.classList.add('hide');\n }\n }\n\n \n })\n if (results == 0) {\n this.domLists.forEach((list) => {\n list.classList.add('no-results')\n let msg = list.getAttribute('data-filter-no-results').split(':');\n if (msg) list.setAttribute('data-filter-no-results', `${msg[0]}: ${term}`);\n })\n } else {\n this.domLists.forEach((list) => { list.classList.remove('no-results')})\n }\n } else {\n this.domLists.forEach((list) => { list.classList.remove('no-results')})\n this.items.forEach((item) => {\n item.elem.classList.remove('hide');\n })\n }\n \n }\n\n \n}\nexport default function () {\n new Filter(document.querySelector('[data-filter]'));\n}\n","\n\nclass SearchBox {\n constructor(el) {\n if(!el) return false;\n this.el = el;\n this.button = this.el.querySelector('button');\n this.input = this.el.querySelector('input');\n this.events();\n this.setState('ready');\n }\n events() {\n this.button.addEventListener('click', this.clickHandler.bind(this));\n this.input.addEventListener('blur', this.blurHandler.bind(this));\n }\n clickHandler(event) {\n if(this.state == 'ready') {\n event.preventDefault();\n this.setState('search');\n } else if(this.state == 'search') {\n this.el.submit();\n }\n }\n blurHandler(event) {\n setTimeout(() => {\n if(this.state == 'search') {\n this.setState('ready');\n this.input.blur();\n }\n }, 300);\n }\n setState(state) {\n this.state = state;\n this.el.setAttribute('data-state', state);\n if(this.state == 'search') {\n this.input.focus();\n document.querySelector('html').classList.add('search-mode');\n } else if(this.state == 'ready') {\n document.querySelector('html').classList.remove('search-mode');\n }\n }\n}\nexport default function () {\n new SearchBox(document.querySelector('[data-search-box]'));\n}\n","\nimport { viewport } from './toolbox.js';\n\n\nexport default function () {\n\t$('a[href*=\"#\"]:not([href=\"#\"])').click(function(e) {\n\n\t\t// if($('html').hasClass('ios') || viewport().width < 1050) {\n\t\t// \t$('body, html').removeClass('navigation');\n\t\t// \treturn;\n\t\t// }\n\n\t\tif($(e.target).hasClass('popup-inline-videobox') || $(e.target).hasClass('dynamic-video-player')) return;\n\n\t\tif (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\n\n\t\t\tvar hash = this.hash;\n\t\t\tvar target = $(hash);\n\t\t\ttarget = target.length ? target : $('[name=' + this.hash.slice(1) +']');\n\t\t\tvar targetPos, currentPos, delta, dur;\n\t\t\tvar offset = (viewport().width < 1050) ? 59 : 69;\n\t\t\tif(target.hasClass('tab-content')) return;\n\t\t\tif (target.length) {\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t$('body, html').removeClass('navigation');\n\t\t\t\ttarget.prop('id', 'target');\n\t\t\t\ttargetPos = target.offset().top - offset;\n\n\t\t\t\t// currentPos = $(window).scrollTop()\n\t\t\t\t// delta = Math.abs(targetPos - currentPos);\n\t\t\t\t// dur = delta/2000;\n\t\t\t\tlocation.hash = hash;\n\n\t\t\t\t//console.log(delta, dur)\n\t\t\t\t// TweenMax.to(window, 1, {scrollTo:targetPos, delay: 0.1, ease:Power2.easeInOut, onComplete:function(){\n\t\t\t\t// \ttarget.prop('id', hash.split('#')[1]);\n\t\t\t\t// }});\n\t\t\t\t$('html, body').animate({scrollTop: targetPos}, 1000, 'swing', function() {\n\t\t\t\t target.prop('id', hash.split('#')[1]);\n\t\t\t\t});\n\n\t\t\t}\n\t\t}\n\t});\n\n};\n","\nimport { locale } from './globals.js';\nimport { loadJSON, throttle, truncateString } from './toolbox.js';\nimport { init as initCarousel } from './image-carousel.js';\nimport { init as initVideo } from './video-handler.js';\n\nconst defaultApi = '/assets/data/instagram.json';\n\nconst postPopup = function (post) {\n // ${post.caption ? (postPopupCaption(post)) : ''}\n let imgOnly = (post.caption == null) ? 'image-only' : '';\n if (post.caption == null) {\n\n }\n return `\n
    \n
    \n ${post.media ? (postPopupHeader(post)) : ''}\n ${postPopupCaption(post)}\n
    \n
    \n `\n}\nconst postPopupCaption = function (post) {\n return `\n
    \n \n
    @zayedsportscity
    \n
    \n
    \n

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

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

    ${post.caption}

    \n
    `\n}\n\nclass SocialMediaThumbs {\n constructor (el) {\n if(!el) return false;\n this.el = el;\n this.api = this.el.getAttribute('data-api') ? this.el.getAttribute('data-api') : defaultApi;\n this.rowLength = parseInt(window.getComputedStyle( this.el, ':before').getPropertyValue('content').split('\"')[1]);\n this.expandIndex = 1;\n this.batch = this.rowLength * 2;\n this.list = this.el.querySelector('[data-post-list]');\n this.expandButton = this.el.querySelector('[data-post-list-expand]');\n if(this.expandButton) {\n this.expandButton.addEventListener('click', () => {\n this.expandIndex += 1;\n this.updateList();\n });\n }\n loadJSON(this.api, (data) => {\n this.data = JSON.parse(data);\n requestAnimationFrame(() => {\n this.createThumbs();\n this.createPopups();\n this.updateList();\n })\n }, (resp) => {});\n }\n createThumbs() {\n this.thumbs = [];\n this.data.forEach((post, index) => {\n this.thumbs.push(postElem(post, index));\n })\n }\n updateList() {\n this.rowLength = parseInt(window.getComputedStyle( this.el, ':before').getPropertyValue('content').split('\"')[1]);\n this.batch = this.rowLength * 2 * this.expandIndex;\n\n let newList = this.list.cloneNode(true);\n newList.innerHTML = '';\n this.thumbs.forEach((post, index) => {\n if (index < this.batch) {\n newList.appendChild(post);\n }\n })\n requestAnimationFrame(() => {\n this.list.parentNode.replaceChild(newList, this.list);\n this.list = newList;\n if(this.list.children.length >= this.thumbs.length) {\n this.expandButton.setAttribute('disabled', 'disabled');\n }\n requestAnimationFrame(() => {\n //this.prepPopups();\n });\n })\n }\n createPopups() {\n let thumbItems = Array.from(this.list.querySelectorAll('.post-thumb'));\n this.popups = [];\n this.thumbs.forEach((thumb, index) => {\n this.popups.push({content: postPopup(this.data[index])});\n let t = thumb.querySelector('.post-thumb');\n t.addEventListener('click', (event) => {\n event.preventDefault();\n this.thumbClicked(thumb, index);\n })\n })\n }\n thumbClicked(thumb, index) {\n this.openPopups(index)\n }\n openPopups(index) {\n let fancyOptions = {\n type: 'html',\n baseClass: 'event-popup content-view',\n idleTime: false,\n video: { autoStart: false },\n afterShow: this.initPopupContents\n }\n $.fancybox.open(this.popups, fancyOptions, index);\n }\n initPopupContents (instance, current) {\n let carousel = current.$content[0].querySelector('[data-image-carousel]');\n let videos = Array.from(current.$content[0].querySelectorAll('[data-video-handler]'));\n initCarousel(carousel);\n if (videos && videos.length > 0) {\n videos.forEach((video) => {\n initVideo(video);\n })\n }\n }\n\n \n}\nexport default function () {\n new SocialMediaThumbs(document.querySelector('[data-social-media-thumbs]'));\n}\n","\nimport { locale } from './globals.js';\nimport { getOffset, throttle, viewport } from './toolbox.js';\n\nconst arrowBtn = function (dir) {\n return ``\n}\nclass TabBar {\n constructor(el) {\n if(!el) return false;\n this.el = el;\n this.id = this.el.getAttribute('id');\n this.list = this.el.querySelector('[data-tab-list]');\n this.hasSlideControls = this.el.hasAttribute('data-slide-controls');\n this.freeScroll = this.el.hasAttribute('data-free-scroll');\n this.rtl = (locale.dir == 'rtl');\n this.tabAlign = (locale.dir == 'ltr') ? 'left' : 'right';\n this.updateEvent = new Event('tab-content-update');\n this.initSlider();\n this.initControls();\n }\n initSlider () {\n let self = this;\n this.flkty = new Flickity(this.list, {\n cellAlign: this.tabAlign,\n contain: true,\n prevNextButtons: false,\n pageDots: false,\n rightToLeft: this.rtl,\n freeScroll: this.freeScroll/*,\n friction: 0.15,\n selectedAttraction: 0.01*/\n });\n this.dragged = false;\n this.flkty.on('change', () => {\n this.updatePagerControls();\n });\n if(this.hasSlideControls) {\n this.flkty.on('scroll', throttle( (progress) => {\n self.slideState = progress;\n self.updateSlideControls();\n }, 50) );\n this.flkty.on('settle', () => {\n this.updateSlideControls();\n });\n }\n this.flkty.on('dragStart', () => { this.dragged = true; })\n this.flkty.on('dragEnd', () => {\n setTimeout( () => { this.dragged = false; }, 50);\n })\n this.flkty.cells.forEach( (cell, index) => {\n cell.element.setAttribute('data-index', index);\n cell.element.addEventListener('click', function(event) {\n if(this.classList.contains('.active')) return;\n self.activateTab(this, event);\n })\n })\n\n // initialize an active tab\n let defaultIndex = 0; // default is the first tab\n let activeTab = this.el.querySelector('.tab.active'); // if the dom has one, activate that\n if(activeTab) {\n this.activateTab(activeTab, false, true);\n } else {\n defaultIndex = this.checkHash(); // if our tabs have the hash, use that tab\n if(defaultIndex < 0) { defaultIndex = 0} // otherwise 0\n this.activateTab(this.flkty.cells[defaultIndex].element, false, true);\n }\n window.addEventListener('hashchange', (event) => {\n let hashIndex = this.checkHash();\n if (hashIndex > -1) this.activateTab(this.flkty.cells[hashIndex].element);\n })\n }\n // activateIndex(index) {\n // this.activateTab(this.flkty.cells[index], false);\n // }\n checkHash (hash) {\n let index = -1;\n if(hash == undefined) hash = location.hash;\n this.flkty.cells.forEach((cell, i) => {\n if(hash == cell.element.getAttribute('href')) {\n index = i;\n }\n })\n return index;\n // if(index > -1) {\n // this.activateIndex(index);\n // if(this.parentSlide) {\n // $(this.parentSlide).trigger('initslide.carousel');\n // }\n // }\n }\n activateTab(tab, event, init) {\n if (!init) {\n // skip these for initial setup\n if(!tab) return;\n if (tab.classList.contains('active')) return;\n if (this.dragged) { this.dragged = false; return; }\n let prevTab = this.el.querySelector('.tab.active');\n if (prevTab) prevTab.classList.remove('active')\n }\n\n tab.classList.add('active'); // activate tab\n this.currentIndex = parseInt(tab.getAttribute('data-index')); //save active index\n this.flkty.select(this.currentIndex); // select flkty cell to slide in position\n\n let tabHref = tab.getAttribute('href'); // check if #href for content\n if(tabHref && tabHref.startsWith('#') && tabHref.length > 1) {\n if(event) event.preventDefault(); \n this.updateHash(tabHref);\n this.activateContent(tabHref.slice(1));\n }\n \n }\n updateHash (hash) {\n // if (index == undefined) index = this.current;\n // let hash = this.tabs[index].getAttribute('href');\n if (location.hash == hash) {\n return;\n }\n if(history && history.pushState) {\n history.pushState(null, null, hash);\n } else {\n location.hash = hash;\n }\n }\n activateContent(tabHref) {\n let contents = Array.from(document.querySelectorAll(`[data-tab-content=${tabHref}]`));\n if (contents.length < 1) return;\n contents.forEach((content) => {\n let prevContent = content.parentElement.querySelector('.tab-content.active');\n if(prevContent) {\n prevContent.classList.remove('active');\n prevContent.dispatchEvent(this.updateEvent);\n }\n content.classList.add('active');\n content.dispatchEvent(this.updateEvent);\n });\n }\n\n initControls () {\n // slide controls\n if(this.hasSlideControls) {\n this.slideControls = document.createElement('div');\n this.slideControls.classList.add('tab-controls');\n this.slideControls.innerHTML = arrowBtn('prev') + arrowBtn('next');\n this.el.insertBefore(this.slideControls, this.list);\n requestAnimationFrame(this.initSlideControls.bind(this));\n }\n // pre-defined pager controls\n let pagers = Array.from(document.querySelectorAll(`[data-tab-pager=${this.id}]`));\n pagers.forEach((pager, index) => {\n pager.innerHTML = arrowBtn('prev') + arrowBtn('next');\n requestAnimationFrame(() => {\n this.initPagerControls(pager); \n });\n });\n }\n initPagerControls(pager) {\n pager.querySelector('.arrow.prev').addEventListener('click', () => {\n if(this.flkty.cells[this.currentIndex - 1])\n this.activateTab(this.flkty.cells[this.currentIndex - 1].element);\n else \n this.activateTab(this.flkty.cells[this.flkty.cells.length - 1].element);\n })\n pager.querySelector('.arrow.next').addEventListener('click', () => {\n if(this.flkty.cells[this.currentIndex + 1])\n this.activateTab(this.flkty.cells[this.currentIndex + 1].element);\n else \n this.activateTab(this.flkty.cells[0].element);\n })\n }\n updatePagerControls() {\n\n }\n initSlideControls () {\n this.slideControls.querySelector('.arrow.prev').addEventListener('click', () => {\n this.slide(20);\n })\n this.slideControls.querySelector('.arrow.next').addEventListener('click', () => {\n this.slide(-20);\n })\n }\n slide(offset) {\n this.flkty.applyForce(offset);\n this.flkty.startAnimation();\n this.flkty.dragEnd();\n }\n updateSlideControls () {\n if (isNaN(this.slideState) || this.slideState === Infinity || this.slideState === -Infinity ) {\n this.slideControls.querySelector('.arrow.prev').classList.add('disabled');\n this.slideControls.querySelector('.arrow.next').classList.add('disabled');\n } else {\n if(this.slideState < 0.05) {\n this.slideControls.querySelector('.arrow.prev').classList.add('disabled');\n this.list.classList.remove('overflown-prev');\n } else {\n this.slideControls.querySelector('.arrow.prev').classList.remove('disabled');\n this.list.classList.add('overflown-prev');\n }\n if(this.slideState > 0.95) {\n this.slideControls.querySelector('.arrow.next').classList.add('disabled');\n this.list.classList.remove('overflown-next');\n } else {\n this.slideControls.querySelector('.arrow.next').classList.remove('disabled');\n this.list.classList.add('overflown-next');\n }\n }\n }\n}\nexport default function () {\n Array.from(document.querySelectorAll('[data-tab-bar]')).forEach( (item, index) => {\n new TabBar(item, index);\n });\n}\n","export function debounce (fn, delay) {\n\tvar timer = null;\n\treturn function () {\n\t\tvar context = this, args = arguments;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(function () {\n\t\t\tfn.apply(context, args);\n\t\t}, delay);\n\t};\n}\n\nexport function throttle (fn, threshhold, scope) {\n\tthreshhold || (threshhold = 250);\n\tvar last,\n\tdeferTimer;\n\treturn function () {\n\t\tvar context = scope || this;\n\n\t\tvar now = +new Date,\n\t\targs = arguments;\n\t\tif (last && now < last + threshhold) {\n\t\t\t// hold on to it\n\t\t\tclearTimeout(deferTimer);\n\t\t\tdeferTimer = setTimeout(function () {\n\t\t\t\tlast = now;\n\t\t\t\tfn.apply(context, args);\n\t\t\t}, threshhold);\n\t\t} else {\n\t\t\tlast = now;\n\t\t\tfn.apply(context, args);\n\t\t}\n\t};\n}\n\nexport function viewport() {\n\tvar e = window, a = 'inner';\n\tif ( !( 'innerWidth' in window ) )\n\t{\n\t\ta = 'client';\n\t\te = document.documentElement || document.body;\n\t}\n\treturn { width : e[ a+'Width' ] , height : e[ a+'Height' ] }\n}\n\nexport function getOffset (element) {\n const offset = ({ top, left }, { offsetTop = 0, offsetLeft = 0, offsetParent }) => {\n const output = { top: top + offsetTop, left: left + offsetLeft }\n return offsetParent ? offset({ ...output }, offsetParent) : output\n }\n\n return offset({ top: 0, left: 0 }, element)\n}\n\nexport function getRandomInt(min, max) {\n\treturn Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport function watchScroll (elem) {\n\t$(elem).on('scroll', exports.throttle(function(){\n\t\t$(elem).trigger('scrolled');\n\t}, 50));\n}\n\nexport function getQueryVariable (variable) {\n\tvar query = window.location.search.substring(1);\n\tvar vars = query.split(\"&\");\n\tfor (var i=0;i max) {\n\t\treturn `${string.slice(0, max).split(' ').slice(0, -1).join(' ')} `;\n\t} else {\n\t\treturn string\n\t}\n}\n\nexport function hexToRgb(hex) {\n\tvar shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\thex = hex.replace(shorthandRegex, function(m, r, g, b) {\n\t\t\treturn r + r + g + g + b + b;\n\t});\n\n\tvar result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\treturn result ? {\n\t\t\tr: parseInt(result[1], 16),\n\t\t\tg: parseInt(result[2], 16),\n\t\t\tb: parseInt(result[3], 16)\n\t} : null;\n}\n\nexport function removeHash() {\n\tvar scrollV, scrollH, loc = window.location;\n\tif ('pushState' in history)\n\t\thistory.pushState(\"\", document.title, loc.pathname + loc.search);\n\telse {\n\t\t// Prevent scrolling by storing the page's current scroll offset\n\t\tscrollV = document.body.scrollTop;\n\t\tscrollH = document.body.scrollLeft;\n\n\t\tloc.hash = \"\";\n\n\t\t// Restore the scroll offset, should be flicker free\n\t\tdocument.body.scrollTop = scrollV;\n\t\tdocument.body.scrollLeft = scrollH;\n\t}\n}\n\n// support test for event listener options like 'passive' or 'once'\nexport function eventOptionSupport(option) {\n\tvar supported = false;\n\ttry {\n\t\tvar opts = Object.defineProperty({}, option, {\n\t\t\tget: function() {\n\t\t\t\tsupported = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener(\"testPassive\", null, opts);\n\t\twindow.removeEventListener(\"testPassive\", null, opts);\n\t} catch (e) { supported = false }\n\treturn supported;\n}\n\nexport function getDocumentScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n};\n\nexport function getDocumentScrollLeft() {\n return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n};\n\nexport function unique(value, index, self) {\n\treturn self.indexOf(value) === index;\n}\n\nexport function pageVisibilityStatus() {\n\tlet hidden, visibilityChange; \n\tif (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 and later support \n\t\thidden = \"hidden\";\n\t\tvisibilityChange = \"visibilitychange\";\n\t} else if (typeof document.msHidden !== \"undefined\") {\n\t\thidden = \"msHidden\";\n\t\tvisibilityChange = \"msvisibilitychange\";\n\t} else if (typeof document.webkitHidden !== \"undefined\") {\n\t\thidden = \"webkitHidden\";\n\t\tvisibilityChange = \"webkitvisibilitychange\";\n\t}\n\treturn { hidden, visibilityChange }\n}\n","\nimport { locale } from './globals.js';\nconst playButton = function (date) {\n return `
    `\n}\nclass VideoHandler {\n constructor(el) {\n if(!el) return false;\n if (el.hasAttribute('data-inited')) return;\n this.el = el;\n this.el.setAttribute('data-inited', true);\n this.el.innerHTML += playButton();\n this.video = this.el.querySelector('video');\n this.video.addEventListener('click', () => {\n if(this.video.paused) {\n if(this.dragged) return;\n this.video.play();\n }\n })\n this.video.addEventListener('play', () => {\n this.video.classList.add('playing');\n this.video.setAttribute('controls', true);\n })\n this.video.addEventListener('pause', () => {\n this.video.classList.remove('playing');\n this.video.removeAttribute('controls');\n })\n \n setTimeout(this.sliderParent.bind(this), 500);\n }\n sliderParent() {\n let slider = this.el.closest('.flickity-enabled');\n if (slider) {\n this.flkty = Flickity.data(slider);\n this.flkty.on('dragStart', () => {\n this.dragged = true;\n this.video.pause();\n })\n this.flkty.on('change', () => {\n this.video.pause();\n })\n this.flkty.on('dragEnd', () => {\n setTimeout(() => {this.dragged = false;}, 200);\n })\n }\n }\n \n}\nexport function initAll () {\n\tArray.from(document.querySelectorAll('[data-video-handler]')).forEach((elem, index) => {\n\t\tinit(elem);\n\t});\t\n};\n\nexport function init(elem) {\n new VideoHandler(elem);\n}\n\nexport default function (elem) {\n\tif (!elem || elem.length < 1) {\n\t\tinitAll();\n\t} else {\n\t init(elem);\n\t}\n}"],"sourceRoot":""}