index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import getMeta from '@/utils/meta'
  2. function loadGA() {
  3. if (window.olLoadGA) {
  4. window.olLoadGA()
  5. }
  6. }
  7. function setConsent(value) {
  8. document.querySelector('.cookie-banner').classList.add('hidden')
  9. const cookieDomain = getMeta('ol-ExposedSettings').cookieDomain
  10. const oneYearInSeconds = 60 * 60 * 24 * 365
  11. const cookieAttributes =
  12. '; path=/' +
  13. '; domain=' +
  14. cookieDomain +
  15. '; max-age=' +
  16. oneYearInSeconds +
  17. '; SameSite=Lax; Secure'
  18. if (value === 'all') {
  19. document.cookie = 'oa=1' + cookieAttributes
  20. loadGA()
  21. window.dispatchEvent(new CustomEvent('cookie-consent', { detail: true }))
  22. } else {
  23. document.cookie = 'oa=0' + cookieAttributes
  24. window.dispatchEvent(new CustomEvent('cookie-consent', { detail: false }))
  25. }
  26. }
  27. if (
  28. getMeta('ol-ExposedSettings').gaToken ||
  29. getMeta('ol-ExposedSettings').gaTokenV4 ||
  30. getMeta('ol-ExposedSettings').propensityId ||
  31. getMeta('ol-ExposedSettings').hotjarId
  32. ) {
  33. document
  34. .querySelectorAll('[data-ol-cookie-banner-set-consent]')
  35. .forEach(el => {
  36. el.addEventListener('click', function (e) {
  37. e.preventDefault()
  38. const consentType = el.getAttribute('data-ol-cookie-banner-set-consent')
  39. setConsent(consentType)
  40. })
  41. })
  42. const oaCookie = document.cookie.split('; ').find(c => c.startsWith('oa='))
  43. if (!oaCookie) {
  44. const cookieBannerEl = document.querySelector('.cookie-banner')
  45. if (cookieBannerEl) {
  46. cookieBannerEl.classList.remove('hidden')
  47. }
  48. }
  49. }