{"version":3,"sources":["block-conditional-display.js"],"names":["BlockConditionalDisplay","constructor","container","options","this","Object","assign","condition","defaultCondition","document","querySelector","conditions","querySelectorAll","geoData","localStorage","getItem","dateNow","Date","activeCondition","onLoad","forEach","elem","isActive","classList","add","console","warn","let","active","ticks","endMinute","endSecond","startDate","dataset","endDate","startTime","endTime","countries","regions","getTime","startDateTime","endDateTime","startHour","startMinute","startSecond","split","setHours","parseInt","setMinutes","setSeconds","endHour","geo","JSON","parse","map","item","trim","indexOf","countryCode"],"mappings":"qBAAqBA,wBACjBC,YAAYC,EAAWC,GAKnBC,KAAKD,QAAUE,OAAOC,OAAO,GAJN,CACnBC,UAAW,aACXC,iBAAkB,oBACtB,EACiDL,CAAO,EAExDC,KAAKF,UAAYO,SAASC,cAAcR,CAAS,EACjDE,KAAKO,WAAaP,KAAKF,UAAUU,iBAAiBR,KAAKD,QAAQI,SAAS,EACxEH,KAAKI,iBAAmBJ,KAAKF,UAAUQ,cAAcN,KAAKD,QAAQK,gBAAgB,EAClFJ,KAAKS,QAAUC,aAAaC,QAAQ,KAAK,EACzCX,KAAKY,QAAU,IAAIC,KACnBb,KAAKc,gBAAkB,KAEvBd,KAAKe,OAAO,CAChB,CAEAA,SACIf,KAAKO,WAAWS,QAAQC,IACQ,OAAzBjB,KAAKc,iBAA4Bd,KAAKkB,SAASD,CAAI,IAClDjB,KAAKc,gBAAkBG,EACvBjB,KAAKc,gBAAgBK,UAAUC,IAAI,QAAQ,EAEnD,CAAC,EAEIpB,KAAKc,kBACwB,OAA1Bd,KAAKI,iBACLJ,KAAKI,iBAAiBe,UAAUC,IAAI,QAAQ,EAE5CC,QAAQC,KAAK,2BAA2B,EAGpD,CAEAJ,SAASD,GACLM,IAAIC,EAAS,CAAA,EACbD,IAWIE,EAcgBC,EAAWC,EAzB3BC,EAAYX,EAAKY,QAAQD,UACzBE,EAAUb,EAAKY,QAAQC,QACvBC,EAAYd,EAAKY,QAAQE,UACzBC,EAAUf,EAAKY,QAAQG,QACvBC,EAAYhB,EAAKY,QAAQI,UACzBC,EAAUjB,EAAKY,QAAQK,QAE3B,OAAyB,KAAA,IAAdN,GAAgD,KAAA,IAAZE,IAI3CL,EAAQzB,KAAKY,QAAQuB,QAAQ,EAC7BC,EAAgB,IAAIvB,KAAKe,CAAS,EAClCS,EAAc,IAAIxB,KAAKiB,CAAO,EAET,KAAA,IAAdC,GACD,CAACO,EAAWC,EAAaC,GAAeT,EAAUU,MAAM,GAAG,EACjEL,EAAcM,SAASC,SAASL,EAAW,EAAE,CAAC,EAC9CF,EAAcQ,WAAWD,SAASJ,EAAa,EAAE,CAAC,EAClDH,EAAcS,WAAWF,SAASH,EAAa,EAAE,CAAC,GAElDhB,EAAS,CAAA,EAGU,KAAA,IAAZQ,GACD,CAACc,EAASpB,EAAWC,GAAaK,EAAQS,MAAM,GAAG,EACzDJ,EAAYK,SAASC,SAASG,EAAS,EAAE,CAAC,EAC1CT,EAAYO,WAAWD,SAASjB,EAAW,EAAE,CAAC,EAC9CW,EAAYQ,WAAWF,SAAShB,EAAW,EAAE,CAAC,GAE9CH,EAAS,CAAA,GAGTC,EAAQW,EAAcD,QAAQ,GAAKV,EAAQY,EAAYF,QAAQ,KAC/DX,EAAS,CAAA,GAGO,OAAjBxB,KAAKS,UACAsC,EAAMC,KAAKC,MAAMjD,KAAKS,OAAO,EAChB,KAAdwB,GAE6C,CAAC,IAD3BA,EAAUQ,MAAM,GAAG,EAAES,IAAIC,GAAQA,EAAKC,KAAK,CAAC,EAC/CC,QAAQN,EAAIO,WAAW,IAClC9B,EAAS,CAAA,GAIF,KAAZU,IACmBA,EAAQO,MAAM,GAAG,EAAES,IAAIC,GAAQA,EAAKC,KAAK,CAAC,EAQ7D5B,EACX,CACJ","file":"block-conditional-display.min.js","sourcesContent":["export default class BlockConditionalDisplay {\r\n constructor(container, options) {\r\n const defaultOptions = {\r\n condition: '.condition',\r\n defaultCondition: '.condition.default'\r\n };\r\n this.options = Object.assign({}, defaultOptions, options);\r\n\r\n this.container = document.querySelector(container);\r\n this.conditions = this.container.querySelectorAll(this.options.condition);\r\n this.defaultCondition = this.container.querySelector(this.options.defaultCondition);\r\n this.geoData = localStorage.getItem('geo');\r\n this.dateNow = new Date();\r\n this.activeCondition = null;\r\n\r\n this.onLoad();\r\n }\r\n\r\n onLoad() {\r\n this.conditions.forEach(elem => {\r\n if(this.activeCondition === null && this.isActive(elem)) {\r\n this.activeCondition = elem;\r\n this.activeCondition.classList.add('active');\r\n }\r\n });\r\n\r\n if (!this.activeCondition) {\r\n if (this.defaultCondition !== null) {\r\n this.defaultCondition.classList.add('active')\r\n } else {\r\n console.warn('default condition not set')\r\n }\r\n }\r\n }\r\n\r\n isActive(elem) {\r\n let active = true;\r\n let startDate = elem.dataset.startDate;\r\n let endDate = elem.dataset.endDate;\r\n let startTime = elem.dataset.startTime;\r\n let endTime = elem.dataset.endTime;\r\n let countries = elem.dataset.countries;\r\n let regions = elem.dataset.regions;\r\n\r\n if (typeof startDate === 'undefined' || typeof endDate === 'undefined') {\r\n return false;\r\n }\r\n\r\n let ticks = this.dateNow.getTime()\r\n let startDateTime = new Date(startDate)\r\n let endDateTime = new Date(endDate)\r\n\r\n if (typeof startTime !== 'undefined') {\r\n const [startHour, startMinute, startSecond] = startTime.split(':')\r\n startDateTime.setHours(parseInt(startHour, 10))\r\n startDateTime.setMinutes(parseInt(startMinute, 10))\r\n startDateTime.setSeconds(parseInt(startSecond, 10))\r\n } else {\r\n active = false\r\n }\r\n\r\n if (typeof endTime !== 'undefined') {\r\n const [endHour, endMinute, endSecond] = endTime.split(':')\r\n endDateTime.setHours(parseInt(endHour, 10))\r\n endDateTime.setMinutes(parseInt(endMinute, 10))\r\n endDateTime.setSeconds(parseInt(endSecond, 10))\r\n } else {\r\n active = false\r\n }\r\n \r\n if (ticks < startDateTime.getTime() || ticks > endDateTime.getTime()) {\r\n active = false\r\n }\r\n\r\n if(this.geoData !== null) {\r\n let geo = JSON.parse(this.geoData)\r\n if(countries !== '') {\r\n var countryList = countries.split(',').map(item => item.trim())\r\n if(countryList.indexOf(geo.countryCode) === -1) {\r\n active = false\r\n }\r\n }\r\n\r\n if(regions !== '') {\r\n var regionsList = regions.split(',').map(item => item.trim())\r\n // TODO need to get the data when its not expired.\r\n // if(regionsList.indexOf(geo.geo.regionCode) === -1) {\r\n // active = false;\r\n // }\r\n }\r\n }\r\n\r\n return active;\r\n }\r\n}\r\n"]}