{"version":3,"file":"footer.756551d104a4473d621f.js","mappings":"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","sources":["webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/cordial-footer.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/ads/cls.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/utils/script-loaded.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/video-jw.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/tvguide.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/blocks/tv-guide.js","webpack://essence_site/external var \"jQuery\"","webpack://essence_site/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/typeof.js","webpack://essence_site/./node_modules/@babel/runtime/regenerator/index.js","webpack://essence_site/webpack/bootstrap","webpack://essence_site/webpack/runtime/compat get default export","webpack://essence_site/webpack/runtime/define property getters","webpack://essence_site/webpack/runtime/hasOwnProperty shorthand","webpack://essence_site/webpack/runtime/make namespace object","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/ads/ias-video.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/util.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/preferences.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/unsubscribe.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/modal.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/newsletter/block.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/footer.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/article/article-oembed.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/expanded-menu.js","webpack://essence_site/./wp/wp-content/themes/beautycon/assets/js/carousel-products.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/blocks/load-more.js"],"sourcesContent":["if (location.hostname === \"www.beautycon.com\") {\n  (function (C, O, R, D, I, A, L) {\n    (C.CordialObject = I),\n      (C[I] =\n        C[I] ||\n        function () {\n          (C[I].q = C[I].q || []).push(arguments);\n        });\n    (C[I].l = 1 * new Date()), (C[I].q = []), (A = O.createElement(R));\n    (L = O.getElementsByTagName(R)[0]),\n      (A.async = 1),\n      (A.src = D),\n      L.parentNode.insertBefore(A, L);\n  })(window, document, \"script\", \"//track.cordial.io/track.v2.js\", \"crdl\");\n  crdl(\"connect\", \"essence\", {\n    trackUrl: \"//se.connect.beautycon.com\",\n    connectUrl: \"//d.connect.beautycon.com\",\n    cookieDomain: \"beautycon.com\",\n    cookieLife: 365,\n  });\n  let post_data = jQuery(\".pubstack-post-header\").first().data(\"post-info\");\n  let post_targ = jQuery(\".pubstack-post-header\")\n    .first()\n    .data(\"page_targeting\");\n  if (typeof post_data !== \"undefined\" && post_data !== \"\") {\n    if (post_data.page_url === \"https://www.beautycon.com/\") {\n      post_data.pagetype = \"homepage\";\n    }\n    crdl(\"event\", \"browse\", {\n      page_type: post_data.pagetype,\n      page_name: post_data.post_title,\n      page_url: post_data.page_url,\n      category: post_targ.ch,\n      tags: post_targ.tags,\n    });\n  } else {\n    crdl(\"event\", \"browse\", {\n      page_type: \"page\",\n      page_name: document.title,\n      page_url: window.location,\n      category: \"\",\n      tags: \"\",\n    });\n  }\n}\n","/**\n * Javascript for Essence Ads\n *\n **/\n\ngoogletag.cmd.push(function () {\n  const adWidthCheck = ($ad, old) => {\n    const ad_iframe = $ad.find(\"iframe:first\");\n    const ratio = 100 * (ad_iframe.width() / ad_iframe.height());\n    const target_ratio = 100 * (944 / 250);\n    const ad_iframe_sz = ad_iframe.width() + \"x\" + ad_iframe.height();\n    let type = \"unknown\";\n    if ($(window).width() - 4 <= ad_iframe.width()) {\n      if (target_ratio <= ratio * 1.06 && target_ratio >= ratio * 0.94) {\n        type = \"flex\";\n      } else {\n        type = \"xlflex\";\n      }\n    } else if (ad_iframe_sz !== \"728x90\" && ad_iframe_sz !== \"320x50\") {\n      if (old !== \"standard\" || ad_iframe.height() > $ad.height()) {\n        type = \"standard\";\n      }\n    }\n    return type;\n  };\n\n  const adStyleSet = ($ad, type) => {\n    if (type === \"flex\") {\n      $ad.css(\"aspect-ratio\", \"auto\");\n      $ad.css(\"padding-top\", \"0px\");\n      $ad.css(\"padding-bottom\", \"0px\");\n    } else if (type === \"xlflex\") {\n      $ad.css(\"aspect-ratio\", \"auto\");\n      $ad.css(\"padding-top\", \"0px\");\n      $ad.css(\"padding-bottom\", \"0px\");\n    } else if (type === \"standard\" || type === \"unknown\") {\n      $ad.css(\"aspect-ratio\", \"1920/250\");\n      const ad_iframe = $ad.find(\"iframe:first\");\n      const padding = Math.round(($ad.height() - ad_iframe.height()) / 2);\n      if (padding >= 0 && $ad.css(\"padding-top\") === \"0px\") {\n        $ad.css(\"padding-top\", padding + \"px\");\n        $ad.css(\"padding-bottom\", padding + \"px\");\n      } else {\n        $ad.css(\"aspect-ratio\", \"auto\");\n        $ad.css(\"padding-top\", \"15px\");\n        $ad.css(\"padding-bottom\", \"15px\");\n      }\n    }\n  };\n\n  googletag.pubads().addEventListener(\"slotRenderEnded\", function (event) {\n    let slot_id = event.slot.getSlotElementId();\n    let ad_id = \"#\" + slot_id;\n    $(ad_id).addClass(\"rendered\");\n    if (slot_id.includes(\"leaderboard\")) {\n      let type = \"unknown\";\n      let old = \"unknown\";\n      const started = Date.now();\n      const interval = setInterval(function () {\n        if (Date.now() - started > 1000) {\n          adStyleSet($(ad_id), type);\n          clearInterval(interval);\n        } else {\n          type = adWidthCheck($(ad_id), old);\n        }\n        if (old !== type) {\n          old = type;\n          adStyleSet($(ad_id), type);\n          clearInterval(interval);\n        }\n      }, 100);\n    }\n  });\n});\n","// Callback on script loaded\nexport default function extScriptLoaded(test, fn) {\n  const callbackTimer = setInterval(function () {\n    let call = false;\n    try {\n      call = test.call();\n    } catch (e) {}\n\n    if (call) {\n      clearInterval(callbackTimer);\n      fn.call();\n    }\n  }, 100);\n}\n","/**\n * JWPlayer\n *\n **/\n\nconst { default: extScriptLoaded } = require(\"./utils/script-loaded\");\n\nwindow.is_essence_video_playing = false;\nwindow.essence_video_currently_playing = false;\nwindow.essence_video_in_view = null;\n\nfunction VideoJw() {\n  this.observer = null;\n  this.init = function () {\n    extScriptLoaded(\n      () => typeof jwplayer !== \"undefined\",\n      () => {\n        this.setupPlayers();\n        this.initObserver();\n        $(window).on(\"jw:loadplayers\", this, this.loadPlayers);\n        $(window).on(\"jw:loadplayers\", this, this.observeNewPlayers);\n      }\n    );\n  };\n\n  this.setupPlayers = () => {\n    const options = {\n      root: null, // Use the viewport as the root\n      rootMargin: \"0px\", // No margin around the root\n      threshold: 0.5, // Fire the callback when 50% of the player is visible\n    };\n\n    while (typeof (i = jwplayerQueue.shift()) !== \"undefined\") {\n      const { instanceId, playerId, config } = i;\n\n      // Get the JWPlayer element\n      const playerElement = document.getElementById(playerId);\n\n      // Intersection Observer callback function\n      const handleIntersection = (entries) => {\n        entries.forEach((entry) => {\n          if (\n            entry.isIntersecting ||\n            $(\"#\" + playerId)\n              .parent()\n              .hasClass(\"no-ads\")\n          ) {\n            // If player is 50% in view, play the video\n            jwplayer(playerId).play();\n          } else {\n            // If player is not in view, pause the video\n            jwplayer(playerId).pause();\n          }\n        });\n      };\n\n      // Create an Intersection Observer\n      const observer = new IntersectionObserver(handleIntersection, options);\n\n      // Observe the player element\n      observer.observe(playerElement);\n\n      // Setup JWPlayer instance with config\n      const instance = jwplayer(playerId).setup(config);\n      if (instanceId) {\n        window[instanceId] = instance;\n      }\n    }\n  };\n\n  this.initObserver = () => {\n    this.observer = new IntersectionObserver(\n      (entries, observer) => {\n        entries.forEach((entry) => {\n          const $videoBox = $(entry.target);\n          const player_id = $videoBox.addClass(\"played\").data(\"video\");\n\n          if (!entry.isIntersecting) {\n            // Out of view. Enable floating of the current playing video.\n            if (window.essence_video_currently_playing === player_id) {\n              const myPlayer = window[\"playerInstance_\" + player_id];\n              if (myPlayer) {\n                myPlayer.setFloating(true);\n              }\n            }\n\n            // Remove the video from the in-view list\n            if (window.essence_video_in_view === player_id) {\n              window.essence_video_in_view = null;\n            }\n          } else if (entry.intersectionRatio > 0) {\n            const myPlayer = window[\"playerInstance_\" + player_id];\n            // In view. Disable floating.\n            if (myPlayer) {\n              myPlayer.setFloating(false);\n            }\n\n            // Store the video currently in view\n            window.essence_video_in_view = player_id;\n\n            // Check if no one else is playing or is forced to play.\n            if (\n              $videoBox.attr(\"force-autoplay\") ||\n              !window.is_essence_video_playing\n            ) {\n              // Autoplay the new video\n              const myPlayer = window[\"playerInstance_\" + player_id];\n              if (myPlayer) {\n                myPlayer.play();\n              }\n            }\n          }\n        });\n      },\n      { threshold: 0.5 }\n    );\n  };\n\n  this.observeNewPlayers = () => {\n    if (!this.observer) {\n      this.initObserver();\n    }\n    $(\".jw-video-box\")\n      .not(\".observed\")\n      .each((index, box) => {\n        this.observer.observe(box);\n        $(box).addClass(\"observed\");\n\n        this.observer.observe(box, (entry) => {\n          // Check if entry is 50% visible, then autoplay\n          if (entry.intersectionRatio >= 0.5) {\n            const player_id = $(box).data(\"video\");\n            const myPlayer = window[\"playerInstance_\" + player_id];\n            if (myPlayer) {\n              myPlayer.play();\n            }\n          }\n        });\n      });\n  };\n\n  this.onPlay = (player_id, event) => {\n    // Check if user clicked play.\n    if (event.playReason === \"interaction\") {\n      // Stop the existing autoplay/pip\n      if (\n        window.essence_video_currently_playing &&\n        window.essence_video_currently_playing !== player_id\n      ) {\n        const oldPlayer =\n          window[\"playerInstance_\" + window.essence_video_currently_playing];\n        oldPlayer.pause();\n        // Force to disable floating.\n        oldPlayer.setFloating(false);\n      }\n    }\n\n    window.is_essence_video_playing = true;\n    window.essence_video_currently_playing = player_id;\n  };\n\n  this.onStop = (player_id, paused = false) => {\n    if (window.essence_video_currently_playing === player_id) {\n      window.essence_video_currently_playing = null;\n      window.is_essence_video_playing = false;\n\n      // When video is paused, if another video is already in view, play it.\n      // Because at this point, intersection observer is not triggered.\n      if (\n        paused &&\n        window.essence_video_in_view &&\n        window.essence_video_in_view !== player_id\n      ) {\n        const playerInView =\n          window[\"playerInstance_\" + window.essence_video_in_view];\n        playerInView.play();\n      }\n    }\n  };\n\n  this.loadPlayers = () => {\n    if (typeof jwplayer === \"undefined\") {\n      return;\n    }\n\n    this.setupPlayers();\n\n    const instance = this;\n\n    $(\".jw-video-box\")\n      .not(\".loaded\")\n      .each(function (index, box) {\n        const player_id = $(box).data(\"video\");\n        const myPlayer = window[\"playerInstance_\" + player_id];\n\n        if (!myPlayer) {\n          return;\n        }\n\n        myPlayer.on(\"play\", function (event) {\n          instance.onPlay(player_id, event);\n        });\n\n        myPlayer.on(\"adPlay\", function (event) {\n          instance.onPlay(player_id, event);\n        });\n\n        myPlayer.on(\"pause\", function (event) {\n          instance.onStop(player_id, true);\n        });\n        myPlayer.on(\"adPause\", function (event) {\n          instance.onStop(player_id, true);\n        });\n\n        // Completing a PiP video does not close the PiP window\n        // Completing a non-PiP video negates the PiP for that video from opening\n        myPlayer.on(\"complete\", function (event) {\n          if (!this.getFloating()) {\n            instance.onStop(player_id);\n          }\n        });\n        myPlayer.on(\"adComplete\", function (event) {\n          if (!this.getFloating()) {\n            instance.onStop(player_id);\n          }\n        });\n\n        // with error\n        myPlayer.on(\"error\", function (event) {\n          if (!this.getFloating()) {\n            instance.onStop(player_id);\n          }\n        });\n        myPlayer.on(\"adError\", function (event) {\n          if (!this.getFloating()) {\n            instance.onStop(player_id);\n          }\n        });\n\n        if ($(box).closest(\".article__media\").length) {\n          const $article = $(box).closest(\".article\");\n          myPlayer.on(\"captionsList\", (event) => {\n            $article.find(\".article__scripts\").remove();\n            // Check that we have a valid transcript file before showing iframe\n            if (\"tracks\" in event && \"id\" in event[\"tracks\"][1]) {\n              const captions_url = event[\"tracks\"][1][\"id\"];\n              if (captions_url.endsWith(\".srt\")) {\n                const html = `<div class=\"article__scripts\">\n\t\t\t\t\t\t\t\t<div class=\"transcript-header\"><div class=\"article__scripts-title\">Transcript</div><button class=\"view-all-button\">VIEW FULL TRANSCRIPT</button></div>\n\t\t\t\t\t\t\t\t<div class=\"article__scripts-content\">\n\t\t\t\t\t\t\t\t\t<iframe src=\"${captions_url}\" width=\"640\" height=\"360\" frameborder=\"0\" scrolling=\"auto\"></iframe>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div><div class=\"view-all-transcript-model\"><div class=\"content\"><div class=\"model-transcript-header\"><div class=\"article__scripts-title\">Transcript</div><a class=\"close-transcript\">X</a></div><div class=\"article__scripts-content\">\n                <iframe src=\"${captions_url}\" width=\"640\" height=\"360\" frameborder=\"0\" scrolling=\"auto\"></iframe>\n              </div></div></div>`;\n                $article.find(\".article__tags\").before(html);\n\n                $(\".view-all-button\").click(function () {\n                  $(\".view-all-transcript-model\").css(\"display\", \"block\");\n                });\n\n                $(\".close-transcript\").click(function () {\n                  $(\".view-all-transcript-model\").css(\"display\", \"none\");\n                });\n              }\n            }\n          });\n        }\n\n        // On pip close, pause the video.\n        $(box).on(\"click\", \".jw-float-icon\", function () {\n          myPlayer.pauseAd(true);\n          myPlayer.pause();\n          instance.onStop(player_id);\n        });\n\n        $(window).trigger(\"ad:ias:playeradded\", [myPlayer]);\n        $(window).trigger(`video_loaded_${player_id}`, [myPlayer]);\n        $(box).addClass(\"loaded\");\n      });\n\n    // promo custom video auto scroll play\n    if ($(\".essence-video-promo .essence-video-promo__custom-video\").length) {\n      $(\".essence-video-promo .essence-video-promo__custom-video iframe\").each(\n        function () {\n          var iframeSrc = $(this).attr(\"src\");\n          var iframeSrcArr = iframeSrc.split(\"&\");\n\n          var iframeSrc = \"\";\n          var index = 0;\n          for (index = 0; index < iframeSrcArr.length; index++) {\n            if (\n              iframeSrcArr[index] !== \"autoplay\" &&\n              iframeSrcArr[index] !== \"muted\"\n            ) {\n              iframeSrc += iframeSrcArr[index];\n              iframeSrc += \"&\";\n            }\n          }\n\n          iframeSrc = iframeSrc.substr(0, iframeSrc.length - 1);\n\n          var iframeSrcAutoPlay = iframeSrc + \"&muted&autoplay\";\n\n          var checkVideoPlaying = false;\n\n          var windowHeight =\n            window.innerHeight ||\n            document.documentElement.clientHeight ||\n            document.body.clientHeight;\n          var self = this;\n          jQuery(window).on(\n            \"scroll\",\n            essThrottle(function () {\n              if (\n                $(window).scrollTop() >= $(self).offset().top - windowHeight &&\n                $(window).scrollTop() <=\n                  $(self).offset().top + $(self).outerHeight()\n              ) {\n                if (!checkVideoPlaying) {\n                  $(self).attr(\"src\", iframeSrcAutoPlay);\n                  checkVideoPlaying = true;\n                }\n              } else {\n                if (checkVideoPlaying) {\n                  $(self).attr(\"src\", iframeSrc);\n                  checkVideoPlaying = false;\n                }\n              }\n            })\n          );\n        }\n      );\n    }\n  };\n}\n\nmodule.exports = VideoJw;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n      args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n      _next(undefined);\n    });\n  };\n}","/**\n * Functionality to power the automatic and manual injection of editorial\n * defined widgets into the body of content.\n *\n * This is the file that Webpack is compiling into injector.[hash].js\n */\n\nimport \"./sass/tvguide.scss\";\nimport tvGuide from \"./js/blocks/tv-guide\";\n$(function () {\n  tvGuide();\n});\n","function tvGuide() {\n  if (!$(\".tv-guide-module\").length) {\n    return;\n  }\n\n  var playerInstance;\n  var fullscreenMode = false;\n\n  /** Timeline Swiper */\n  $(\".time-slider-swiper\").each((index, el) => {\n    const $container = $(el).closest(\".schedule-channels-slider\");\n    const $tracksToSync = $container.find(\n      \".video-slider-row, .current-time-indicator-track\"\n    );\n\n    const timeSlider = new Swiper(el, {\n      slidesPerView: \"auto\",\n      navigation: {\n        nextEl: $container.find(\".swiper-button-next\")[0],\n        prevEl: $container.find(\".swiper-button-prev\")[0],\n      },\n    });\n\n    timeSlider.on(\"setTranslate\", function onSliderMove() {\n      $tracksToSync.css({ \"margin-left\": `${this.translate}px` });\n    });\n  });\n\n  const calcTimeIndicatorPos = () => {\n    $(\".current-time-indicator\").each((index, el) => {\n      // Calculate the time difference between browser time now and timelineStart\n      const timelineStart = $(el)\n        .closest(\".schedule-tabcontent\")\n        .find(\"#timeline_start\")\n        .val(); // e.g. 2023-06-29T13:00:00Z\n      const start = new Date(timelineStart);\n      const now = new Date();\n\n      const diff = now - start;\n      if (diff < 0) {\n        return;\n      }\n\n      const diffMinutes = Math.floor(diff / 1000 / 60);\n      const totalMinutes =\n        $(el).closest(\".schedule-container\").data(\"slotcount\") * 60; // X hours\n\n      const percent = (diffMinutes / totalMinutes) * 100;\n\n      // Position the Current time indicator\n      $(el).css(\"left\", `${percent}%`).show();\n    });\n  };\n\n  /** Current time indicator on the timeline */\n  if ($(\".current-time-indicator\").length) {\n    calcTimeIndicatorPos();\n    setInterval(calcTimeIndicatorPos, 1000 * 60); // Update every minute\n  }\n\n  /** Resize TV Guide Main video player */\n  function resizeTVGuide() {\n    // let new_width;\n\n    // if ($(window).width() < 768) {\n    //   // Below 768px: Keep the video width full. It's fine to overflow browser height.\n    //   new_width = window.innerWidth;\n    // } else {\n    //   // Keep everything within the viewport.\n    //   let max_height = window.innerHeight;\n    //   if (!fullscreenMode && $(\".site-header\").length) {\n    //     max_height = max_height - $(\".site-header\").outerHeight(true);\n    //   }\n    //   max_height = max_height - $(\".tv-guide-module__header\").outerHeight(true);\n    //   max_height = max_height - $(\".schedules\").outerHeight(true);\n    //   max_height = max_height - $(\".tv-guide-module__footer\").outerHeight(true);\n    //   new_width = max_height * (16 / 9) + 40; // Padding 40px\n    // }\n\n    // $(\".video-container\").css(\"max-width\", `${new_width}px`);\n\n    // if ($(\".tv-guide-module-inner\").hasClass(\"video-active\")) {\n    //   $(\".schedules .tv-guide-module__container\").css(\n    //     \"max-width\",\n    //     `${new_width}px`\n    //   );\n    // } else {\n    //   $(\".schedules .tv-guide-module__container\").css(\"max-width\", \"\");\n    // }\n  }\n  resizeTVGuide();\n\n  function startVideoPlayback() {\n    // Play the video on the cover click.\n    $(\".tv-guide__video-overlay\").on(\"click\", function (e) {\n      e.preventDefault();\n      $(\".tv-guide__video\").addClass(\"active\");\n      if (playerInstance) {\n        playerInstance.play();\n      }\n    });\n  }\n\n  const updateFullScreenMode = (isFullScreen) => {\n    fullscreenMode = isFullScreen;\n    $(\"html\").toggleClass(\"tv-guide-fullscreen\", fullscreenMode);\n  };\n\n  $(\".schedules-toggle\").on(\"click\", function () {\n\n    // Check if TV Guide is showing the main video or the schedules tabs.\n    if (!$(\".tv-guide-module-inner\").hasClass(\"schedule-active\")) {\n      $(\".schedules-toggle\").text(\"Hide Program Guide\");\n\n      $(\".tv-guide-module-inner\").addClass(\"schedule-active\");\n      $(\".tv-guide-module-inner\").removeClass(\"video-active\");\n      updateFullScreenMode(true);\n      // Scroll to top of the section.\n      $(\"html, body\").animate(\n        {\n          scrollTop:\n            $(\".tv-guide-module\").offset().top - $(\".site-header\").height(),\n        },\n        300\n      );\n    } else {\n      $(\".schedules-toggle\").text(\"See Program Guide\");\n      $(\".tv-guide-module-inner\").removeClass(\"schedule-active\");\n      $(\".tv-guide-module-inner\").addClass(\"video-active\");\n      updateFullScreenMode(false);\n    }\n    resizeTVGuide();\n  });\n\n  $(\".schedules-header a\").on(\"click\", function () {\n    const $this = $(this);\n\n    // Skip if the tab is already active.\n    if ($this.hasClass(\"active\")) {\n      return;\n    }\n\n    // Update active classes of tab.\n    $(\".schedules-header a.active\").removeClass(\"active\");\n    $this.addClass(\"active\");\n\n    // Update active classes of tab content.\n    $(\".schedule-tabcontent\").removeClass(\"active\");\n    $($this.data(\"target\")).addClass(\"active\");\n  });\n\n  let efocResizeTimer = 0;\n  $(window).on(\"resize\", function () {\n    if ($(\".tv-guide-module-inner\").hasClass(\"video-active\")) {\n      clearTimeout(efocResizeTimer);\n      efocResizeTimer = setTimeout(() => {\n        resizeTVGuide();\n      }, 100);\n    }\n  });\n\n  // Live channel init\n  function loadJWPlayer(mediaId, channelId, playerId, muted) {\n    const VOD_CONFIG = {\n      pid: playerId,\n      playlist: `https://cdn.jwplayer.com/v2/media/${mediaId}`,\n      repeat: false,\n      autostart: true,\n      mute: muted,\n      aspectratio: \"16:9\",\n      sharing: { sites: [\"facebook\", \"twitter\", \"email\", \"linkedin\"] },\n      floating: false,\n      interactive: {},\n      advertising: false,\n    };\n\n    const UPDATE_FREQUENCY = 10 * 1e3;\n    const LIVESTREAM_COMPLETE_ERROR = 230001;\n    const HLS_BUFFER_STALL_WARNING = 334001;\n    const MAX_RETRIES = 3;\n\n    let currentEventId;\n    let intervalId;\n\n    playerInstance = jwplayer(\"tv-guide-video-player\").setup(VOD_CONFIG);\n    checkChannelStatus();\n\n    // Catch video player completions\n    playerInstance.on(\"complete\", handleLivestreamFinished); // VOD, just in case\n    playerInstance.on(\"playlistComplete\", handleLivestreamFinished); // Live\n\n    playerInstance.on(\"error\", (error) => {\n      if (playerInstance.getPlaylistItem().mediaid !== currentEventId) {\n        return;\n      }\n      if (error.code === LIVESTREAM_COMPLETE_ERROR) {\n        handleLivestreamFinished();\n      }\n    });\n\n    playerInstance.on(\"warning\", (warn) => {\n      if (playerInstance.getPlaylistItem().mediaid !== currentEventId) {\n        return;\n      }\n      if (warn.code === HLS_BUFFER_STALL_WARNING) {\n        handleLivestreamFinished();\n      }\n    });\n\n    function checkChannelStatus() {\n      if (!intervalId) {\n        intervalId = setInterval(checkChannelStatus, UPDATE_FREQUENCY);\n      }\n      getChannelStatus(channelId).then(\n        (channelStatus) => {\n          if (channelStatus[\"status\"] === \"active\") {\n            const eventId = channelStatus[\"current_event\"];\n            if (currentEventId === eventId) {\n              return;\n            }\n            currentEventId = eventId;\n            intervalId = clearInterval(intervalId);\n            configurePlayer(eventId).catch((error) => {});\n          }\n        },\n        (error) => {\n          intervalId = clearInterval(intervalId);\n        }\n      );\n    }\n\n    async function configurePlayer(eventId) {\n      let playlist;\n      let attempts = 0;\n\n      while (!playlist) {\n        try {\n          playlist = await getPlaylist(eventId);\n        } catch (e) {\n          ++attempts;\n          if (attempts >= MAX_RETRIES) {\n            playlist = {\n              playlist: [\n                {\n                  mediaid: eventId,\n                  file: `https://cdn.jwplayer.com/live/events/${eventId}.m3u8`,\n                },\n              ],\n            };\n            break;\n          }\n          await sleep(2 ** (attempts - 1) * 5 * 1000);\n        }\n      }\n\n      playerInstance.setConfig({\n        repeat: false,\n      });\n      playerInstance.load(playlist.playlist);\n      playerInstance.play();\n\n      // Show Live Indicator for the TV Guide.\n      $(\".tv-guide-module\").addClass(\"tv-guide-module--live\");\n    }\n\n    async function fetchJSON(url, init) {\n      return await fetch(url, init).then((response) => {\n        if (!response.ok) {\n          throw new Error(`Unable to fetch ${url}: ${response.statusText}`);\n        }\n        return response.json();\n      });\n    }\n    function getChannelStatus(channelId) {\n      return fetchJSON(\n        `https://cdn.jwplayer.com/live/channels/${channelId}.json`\n      );\n    }\n\n    function getPlaylist(mediaId) {\n      return fetchJSON(`https://cdn.jwplayer.com/v2/media/${mediaId}`, {\n        cache: \"no-cache\",\n      });\n    }\n\n    function sleep(ms) {\n      return new Promise((resolve) => setTimeout(resolve, ms));\n    }\n  }\n\n  function loadJWPlayerVideo() {\n    const videoID = $('input[name=\"video_id\"]').val();\n    const liveChannelID = $('input[name=\"live_channel_id\"]').val();\n    const playerId = $('input[name=\"player_id\"]').val();\n    loadJWPlayer(videoID, liveChannelID, playerId, true);\n  }\n  loadJWPlayerVideo();\n\n  // Automatically respond to video ID changes\n  $('input[name=\"video_id\"]').on(\"change\", function () {\n    const videoID = $('input[name=\"video_id\"]').val();\n    const liveChannelID = $('input[name=\"live_channel_id\"]').val();\n    const playerId = $('input[name=\"player_id\"]').val();\n    loadJWPlayer(videoID, liveChannelID, playerId, false);\n  });\n\n  function handleLivestreamFinished() {\n    let videoID;\n    let liveChannelID;\n\n    // Remove Live Indicator for the TV Guide.\n    $(\".tv-guide-module\").removeClass(\"tv-guide-module--live\");\n\n    // get and play the next live show for this player instance.\n    $.ajax({\n      url: pubstack.ajaxUrl,\n      method: \"POST\",\n      dataType: \"JSON\",\n      async: false,\n      data: {\n        action: \"get_current_live_schedule\",\n        post_id: pubstack.postID,\n      },\n    }).done((response) => {\n      if (response && response.channel_id) {\n        liveChannelID = response.channel_id;\n        videoID = response.video_id;\n      }\n    });\n\n    if (!videoID || !liveChannelID) {\n      // Something could be wrong. Play the first video of the schedule anyways.\n      liveChannelID = $(\".video-slide-col\")\n        .first()\n        .find(\".jw_channel_id\")\n        .val();\n      videoID = $(\".video-slide-col\").first().find(\".segment_video_id\").val();\n    }\n\n    startVideoPlayback();\n  }\n\n  // Click function which detects the requested video and channel ID and starts playing.\n  $(\".watch-video-trigger\").on(\"click\", function () {\n    let segmentVideoID = $(this).data(\"video_id\"),\n      segmentChannelID = $(this).data(\"channelid\");\n\n    $(\".tv-guide__video div.player-wrapper\").attr(\n      \"id\",\n      \"tv-guide-video-player\"\n    );\n    $('input[name=\"video_id\"]').val(segmentVideoID).change();\n    $('input[name=\"live_channel_id\"]').val(segmentChannelID).change();\n\n    startVideoPlayback();\n    $(\".schedules-toggle\").trigger(\"click\");\n  });\n\n  $(\".return-to-site\").on(\"click\", function () {\n    if (false !== $(\".tv-guide-module-inner\").hasClass(\"schedule-active\")) {\n      $(\".schedules-toggle\").trigger(\"click\");\n    }\n\n    updateFullScreenMode(false);\n    resizeTVGuide();\n  });\n}\n\nexport default tvGuide;\n","module.exports = jQuery;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n    return exports;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  var exports = {},\n    Op = Object.prototype,\n    hasOwn = Op.hasOwnProperty,\n    defineProperty = Object.defineProperty || function (obj, key, desc) {\n      obj[key] = desc.value;\n    },\n    $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n    iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n    asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n    toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n  function define(obj, key, value) {\n    return Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), obj[key];\n  }\n  try {\n    define({}, \"\");\n  } catch (err) {\n    define = function define(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n      generator = Object.create(protoGenerator.prototype),\n      context = new Context(tryLocsList || []);\n    return defineProperty(generator, \"_invoke\", {\n      value: makeInvokeMethod(innerFn, self, context)\n    }), generator;\n  }\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n  exports.wrap = wrap;\n  var ContinueSentinel = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n  var getProto = Object.getPrototypeOf,\n    NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      define(prototype, method, function (arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (\"throw\" !== record.type) {\n        var result = record.arg,\n          value = result.value;\n        return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function (err) {\n          invoke(\"throw\", err, resolve, reject);\n        }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped, resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n      reject(record.arg);\n    }\n    var previousPromise;\n    defineProperty(this, \"_invoke\", {\n      value: function value(method, arg) {\n        function callInvokeWithMethodAndArg() {\n          return new PromiseImpl(function (resolve, reject) {\n            invoke(method, arg, resolve, reject);\n          });\n        }\n        return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = \"suspendedStart\";\n    return function (method, arg) {\n      if (\"executing\" === state) throw new Error(\"Generator is already running\");\n      if (\"completed\" === state) {\n        if (\"throw\" === method) throw arg;\n        return doneResult();\n      }\n      for (context.method = method, context.arg = arg;;) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n        if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n          if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n          context.dispatchException(context.arg);\n        } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n        state = \"executing\";\n        var record = tryCatch(innerFn, self, context);\n        if (\"normal\" === record.type) {\n          if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        }\n        \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(delegate, context) {\n    var methodName = context.method,\n      method = delegate.iterator[methodName];\n    if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n    var record = tryCatch(method, delegate.iterator, context.arg);\n    if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n    var info = record.arg;\n    return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n  }\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n    1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n  }\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\", delete record.arg, entry.completion = record;\n  }\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) return iteratorMethod.call(iterable);\n      if (\"function\" == typeof iterable.next) return iterable;\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n          next = function next() {\n            for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n            return next.value = undefined, next.done = !0, next;\n          };\n        return next.next = next;\n      }\n    }\n    return {\n      next: doneResult\n    };\n  }\n  function doneResult() {\n    return {\n      value: undefined,\n      done: !0\n    };\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n    var ctor = \"function\" == typeof genFun && genFun.constructor;\n    return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n  }, exports.mark = function (genFun) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n  }, exports.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    void 0 === PromiseImpl && (PromiseImpl = Promise);\n    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n    return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n      return result.done ? result.value : iter.next();\n    });\n  }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n    return this;\n  }), define(Gp, \"toString\", function () {\n    return \"[object Generator]\";\n  }), exports.keys = function (val) {\n    var object = Object(val),\n      keys = [];\n    for (var key in object) keys.push(key);\n    return keys.reverse(), function next() {\n      for (; keys.length;) {\n        var key = keys.pop();\n        if (key in object) return next.value = key, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, exports.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var rootRecord = this.tryEntries[0].completion;\n      if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) throw exception;\n      var context = this;\n      function handle(loc, caught) {\n        return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n      }\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i],\n          record = entry.completion;\n        if (\"root\" === entry.tryLoc) return handle(\"end\");\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n            hasFinally = hasOwn.call(entry, \"finallyLoc\");\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n          } else {\n            if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n            if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n      finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n      var record = finallyEntry ? finallyEntry.completion : {};\n      return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (\"throw\" === record.type) throw record.arg;\n      return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (\"throw\" === record.type) {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      return this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n    }\n  }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","class IasVideo {\n  constructor(field) {\n    $(window).on(\"ad:ias:update\", this, this.update);\n    $(window).on(\"ad:ias:playeradded\", this, this.playerAdded);\n  }\n\n  playerAdded(event, myPlayer) {\n    if ($(\"#\" + myPlayer.id_).hasClass(\"ias\")) {\n      return;\n    }\n    myPlayer.on(\"ima3-ads-manager-loaded\", function (event) {\n      let video = document.getElementById(this.id_);\n      let adsManager = this.ima3.adsManager;\n\n      let config = {\n        anId: \"929481\",\n        campId: \"1000x1v\",\n        chanId: \"21700271609\",\n        ias_xps: \"clicktoplay\",\n        ias_xbp: \"1\",\n        ias_xar: \"0\",\n      };\n\n      // Init IAS Integration\n      googleImaVansAdapter.init(google, adsManager, video, config);\n\n      google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true);\n    });\n\n    $(\"#\" + myPlayer.id_).addClass(\"ias\");\n  }\n}\n\nexport default IasVideo;\n","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","/**\n * Validate all fields in the container.\n *\n * - Fields with required attribute are all required.\n * - email field name should be \"email\".\n * - email confirm field name should be \"email_confirm\".\n */\n\nexport const isFormValid = ($container, validateList = true) => {\n\tconst ERROR_REQUIRED_CLASS = \"invalid-required\";\n\tconst ERROR_INVALID_EMAIL_CLASS = \"invalid-email\";\n\tconst ERROR_INVALID_CONFIRM_CLASS = \"invalid-confirm\";\n\n\tconst isFieldValid = (field, $container) => {\n\t\tlet isValid = true;\n\n\t\tfield.classList.remove(ERROR_REQUIRED_CLASS);\n\t\tfield.classList.remove(ERROR_INVALID_EMAIL_CLASS);\n\t\tfield.classList.remove(ERROR_INVALID_CONFIRM_CLASS);\n\n\t\t// Required validation.\n\t\tif (field.hasAttribute(\"required\")) {\n\t\t\tif (field.value.trim()) {\n\t\t\t\tfield.classList.remove(ERROR_REQUIRED_CLASS);\n\t\t\t} else {\n\t\t\t\tfield.classList.add(ERROR_REQUIRED_CLASS);\n\t\t\t\tjQuery('.error-invalid-required').show();\n\t\t\t\tjQuery('.error-invalid-email').show();\n\t\t\t\tisValid = false;\n\t\t\t}\n\t\t}\n\n\t\t// Email validation.\n\t\tif (\"email\" === field.type && isValid) {\n\t\t\tif (\n\t\t\t\t!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9_-]+\\.[a-zA-Z0-9-.]{2,61}$/.test(\n\t\t\t\t\tfield.value\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfield.classList.add(ERROR_INVALID_EMAIL_CLASS);\n\t\t\t\tisValid = false;\n\t\t\t} else {\n\t\t\t\tfield.classList.remove(ERROR_INVALID_EMAIL_CLASS);\n\t\t\t}\n\t\t}\n\n\t\t// Email Confirm Validation.\n\t\tif (field.name.includes(\"email_confirm\")) {\n\t\t\t// Check if the field is in a modal.\n\t\t\tconst $email = $container.find('[name=\"email\"]');\n\t\t\tif (\n\t\t\t\t!$email.hasClass(ERROR_REQUIRED_CLASS) &&\n\t\t\t\t!$email.hasClass(ERROR_INVALID_EMAIL_CLASS)\n\t\t\t) {\n\t\t\t\tif ($email.val() !== field.value) {\n\t\t\t\t\tfield.classList.add(ERROR_INVALID_CONFIRM_CLASS);\n\t\t\t\t\tisValid = false;\n\t\t\t\t} else {\n\t\t\t\t\tfield.classList.remove(ERROR_INVALID_CONFIRM_CLASS);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn isValid;\n\t};\n\n\tlet isValid = true;\n\t$container.find(\"[name]\").each((index, field) => {\n\t\tif (!isFieldValid(field, $container)) {\n\t\t\tisValid = false;\n\t\t}\n\t});\n\n\t// Validate opt-in list.\n\tif (validateList) {\n\t\tconst selector =\n\t\t\t\"[name='newsletter_name[]'][type=hidden], [name='newsletter_name[]'][type=checkbox]:checked\";\n\n\t\tconst list = $container\n\t\t\t.find(selector)\n\t\t\t.map((index, field) => field.value)\n\t\t\t.get();\n\n\t\tif (!list.length) {\n\t\t\t$container.find(\".error-invalid-list\").show();\n\t\t\tisValid = false;\n\t\t} else {\n\t\t\t$container.find(\".error-invalid-list\").hide();\n\t\t}\n\t}\n\n\treturn isValid;\n};\n\nexport const replaceWithSuccess = ($form, mode = \"signup\") => {\n\tlet message = \"\";\n\n\tswitch (mode) {\n\t\tcase \"update\":\n\t\t\tmessage = \"Thank you! Your email preferences were updated successfully.\";\n\t\t\tbreak;\n\t\tcase \"unsubscribe\":\n\t\t\tmessage = \"You are now unsubscribed from this BeautyCon Newsletter.\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmessage =\n\t\t\t\t\"Thanks for signing up to BeautyCon Newsletters.<br>You will receive a welcome email shortly.\";\n\t}\n\n\t$form.replaceWith(`<div class=\"subscribe-form-success\">${message}</div>`);\n};\n\nexport const showErrorMessage = ($response) =>\n\t$response.text(\"Oops! Something went wrong. Please try again later.\").show();\n\nexport const doSubscribeAjax = (\n\t$form,\n\tsuccessCallback,\n\tfailCallback,\n\talwaysCallback\n) => {\n\tconst $button = $form.find(\"[type=submit]\");\n\tconst $response = $form.find(\".subscribe-form-response\");\n\tconst $loading = $form.find(\".subscribe-form-loading\");\n\t$button.attr(\"disabled\", \"\");\n\t$response.hide();\n\t$loading.show();\n\n\tconst data = $form.serialize() + \"&action=newsletter_subscribe\";\n\t$.ajax({\n\t\turl: pubstack.ajaxUrl,\n\t\tmethod: \"POST\",\n\t\tdataType: \"JSON\",\n\t\tdata,\n\t})\n\t\t.done(function (response) {\n\n\t\t\ttrackCordialNewsletter($form);\n\t\t\t// check if this subscription process has multiple steps (e.g. Article inline NL form)\n\t\t\tif (\"subscribe-next-step\" !== $form.data(\"mode\")) {\n\t\t\t\tif ($form.data(\"redirect\")) {\n\t\t\t\t\tlocation.href = $form.data(\"redirect\");\n\t\t\t\t} else {\n\t\t\t\t\treplaceWithSuccess($form, $form.data(\"mode\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tsuccessCallback && successCallback();\n\t\t})\n\t\t.fail(function (xhr, textStatus, error) {\n\t\t\t// Will need to reproduce this error in order to get the proper json tree structure\n\t\t\tif (\n\t\t\t\txhr.responseJSON &&\n\t\t\t\txhr.responseJSON.code === \"CONTACTS_DUPLICATE_KEY\"\n\t\t\t) {\n\t\t\t\tconsole.log(\"CONTACTS_DUPLICATE_KEY\");\n\t\t\t\tshowErrorMessage(\"Please try again soon.\");\n\t\t\t} else {\n\t\t\t\tshowErrorMessage($response);\n\t\t\t\tfailCallback && failCallback();\n\t\t\t}\n\t\t})\n\t\t.always(function () {\n\t\t\t$loading.hide();\n\t\t\t$button.removeAttr(\"disabled\");\n\t\t\talwaysCallback && alwaysCallback();\n\t\t});\n};\n\nconst trackCordialNewsletter = ($form) => {\n\tif (typeof crdl === \"undefined\") {\n\t\treturn;\n\t}\n\n\tlet event,\n\t\tproperties = {};\n\n\tconst email = $form.find(\"[name=email]\").val();\n\n\tif (\"update\" === $form.data(\"mode\")) {\n\t\tevent = \"preference_update\";\n\t} else if (\"unsubscribe\" === $form.data(\"mode\")) {\n\t\tevent = \"unsubscribe\";\n\t} else {\n\t\tevent = \"newsletter_signup\";\n\t\tproperties[\"source\"] = $form.find(\"[name=source]\").val();\n\t}\n\n\tcrdl(\"contact\", { email }, {}); // This seems to be required to associate the event using email for the new sessions (e.g. the modal popup ).\n\tcrdl(\"event\", event, properties);\n};\n","import { doSubscribeAjax, isFormValid } from \"./util\";\n\nfunction Preferences() {\n  this.$form = $(\"#email-preferences .subscribe-form\");\n  this.init = () => {\n    if (this.$form.length) {\n      this.register();\n    }\n  };\n\n  this.register = () => {\n    this.$form.on(\"submit\", (e) => this.submit(e));\n  };\n\n  this.submit = (e) => {\n    e.preventDefault();\n    if (isFormValid(this.$form)) {\n      doSubscribeAjax(this.$form, null, null, () => {\n        if (!this.$form.data(\"redirect\")) {\n          $(\"html, body\").animate({ scrollTop: 0 }, 500);\n        }\n      });\n    }\n  };\n}\n\nexport default new Preferences();\n","import { doSubscribeAjax, isFormValid } from \"./util\";\n\nfunction Unsubscribe() {\n\tthis.$form = $(\"#newsletter-unsubscribe .subscribe-form\");\n\n\tthis.init = () => {\n\t\tif (this.$form.length) {\n\t\t\tthis.register();\n\t\t}\n\t};\n\n\tthis.register = () => {\n\t\tthis.$form.on(\"submit\", (e) => this.submit(e));\n\t};\n\n\tthis.submit = (e) => {\n\t\te.preventDefault();\n\n\t\tif (this.isFormValid() & isFormValid(this.$form, false)) {\n\t\t\tdoSubscribeAjax(this.$form, null, null, () => {\n\t\t\t\tif (!this.$form.data(\"redirect\")) {\n\t\t\t\t\t$(\"html, body\").animate({ scrollTop: 0 }, 500);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tthis.isFormValid = () => {\n\t\tlet isValid = true;\n\n\t\t// Validate opt-out reason.\n\t\tif (this.$form.find(\"[name=sfmc_unsub_reason]:checked\").length) {\n\t\t\tthis.$form.find(\".error-invalid-list\").hide();\n\t\t} else {\n\t\t\tthis.$form.find(\".error-invalid-list\").show();\n\t\t\tisValid = false;\n\t\t}\n\n\t\treturn isValid;\n\t};\n}\n\nexport default new Unsubscribe();\n","import { doSubscribeAjax, isFormValid } from \"./util\";\n\nfunction Modal() {\n\tthis.$modal = $(\"#newsletter-subscribe-modal\");\n\n\tthis.init = () => {\n\t\tconst displayed = localStorage.getItem(\"ess_nl_popup_displayed\");\n\t\tif (this.$modal.length && !displayed) {\n\t\t\tthis.show();\n\t\t\tthis.register();\n\t\t} else {\n\t\t\tthis.remove();\n\t\t}\n\t};\n\n\tthis.show = () => {\n\t\t$(document).one(\"scroll\", () => {\n\t\t\tthis.$modal.fadeIn();\n\t\t\t$(\"body\").addClass(\"modal-open\");\n\t\t});\n\t};\n\n\tthis.remove = () => {\n\t\tthis.$modal.remove();\n\t};\n\n\tthis.close = () => {\n\t\tthis.$modal.fadeOut(400, this.remove);\n\t\t$(\"body\").removeClass(\"modal-open\");\n\t\tlocalStorage.setItem(\"ess_nl_popup_displayed\", true);\n\t};\n\n\tthis.register = () => {\n\t\tthis.$modal.find(\".close\").on(\"click\", this.close);\n\t\tthis.$modal.find(\".subscribe-form\").on(\"submit\", (e) => this.submit(e));\n\t};\n\n\tthis.submit = (e) => {\n\t\te.preventDefault();\n\t\tconst $form = $(e.target);\n\n\t\tif (isFormValid($form)) {\n\t\t\tdoSubscribeAjax($form, () => setTimeout(this.close, 3000));\n\t\t}\n\t};\n}\n\nexport default new Modal();\n","import { doSubscribeAjax, isFormValid } from \"./util\";\n\n/**\n * Homepage Subscribe Block\n *\n * On sign up button click, it goes to the /newsletters page with prefilled values.\n */\nfunction Block() {\n\tthis.blocks = $(\".wp-block-ess-newsletter-signup\");\n\n\tthis.init = function () {\n\t\tthis.register();\n\t};\n\n\tthis.register = () => {\n\t\tthis.blocks.find(\".subscribe-form\").on(\"submit\", this.submit);\n\t};\n\n\tthis.submit = (e) => {\n\t\tconst $form = $(e.target);\n\n\t\tif (!isFormValid($form, false)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\t};\n}\n\nexport default new Block();\n","/**\n * All global frontend scripts required should be included here.\n *\n * This is the file that Webpack is compiling into main.[hash].js\n */\n\nimport \"../../pubstack/assets/tvguide\"; // Load before footer scss\nimport \"./sass/footer.scss\";\n\nimport expandedMenu from \"./js/expanded-menu\";\nimport initializeCarousel from \"./js/carousel-products\";\nimport VideoJw from \"../../pubstack/assets/js/video-jw\";\nimport IasVideo from \"../../pubstack/assets/js/ads/ias-video\";\nimport EmailPreferences from \"./js/newsletter/preferences\";\nimport EmailUnsubscribe from \"./js/newsletter/unsubscribe\";\nimport SubscribeModal from \"./js/newsletter/modal\";\nimport NewsletterBlock from \"./js/newsletter/block\";\nimport LoadMore from \"../../pubstack/assets/js/blocks/load-more\";\nimport articleOembed from \"../../pubstack/assets/js/article/article-oembed\";\n\nnew IasVideo();\n\nnew VideoJw().init();\n\nrequire(\"../../pubstack/assets/js/ads/cls\");\nrequire(\"./js/newsletter/cordial-footer\");\n\n$(function () {\n  expandedMenu();\n  initializeCarousel();\n\n  // Newsletter Subscribe\n  EmailPreferences.init();\n  SubscribeModal.init();\n  EmailUnsubscribe.init();\n  NewsletterBlock.init();\n  LoadMore();\n  articleOembed();\n});\n\nconst menu = [\"#texture-menu\", \"#topics-menu\", \"#products-menu\"];\n\n// Loop through each menu selector\nmenu.forEach(function (menuSelector) {\n  const $mainMenu = jQuery(\"#sub-site-navigation .menu\").find(menuSelector);\n  if (window.matchMedia(\"(max-width: 767px)\").matches) {\n    $($mainMenu).find(\"ul:first\").hide(); // Only select the first ul\n    $mainMenu.on(\"click\", function (e) {\n      e.preventDefault();\n      // Toggle visibility of the first ul\n      $(this).find(\"ul:first\").toggle();\n      $(this).toggleClass(\"tabs-list\");\n    });\n\n    // Prevent hiding parent list when clicking on child list items\n    $mainMenu.find(\"ul ul , .mega-sub-menu3\").on(\"click\", function (e) {\n      e.stopPropagation(); // Prevent the event from bubbling up to the parent\n    });\n\n    // Toggle visibility of inner ul when clicking on mega-block-title\n    $mainMenu.find(\".mega-block-title\").on(\"click\", function (e) {\n      e.preventDefault();\n      // Toggle visibility of the inner ul\n      $(this).parent().find(\"ul:first\").toggle();\n      $(this).toggleClass(\"open\");\n    });\n  } else {\n    // Attach mouseenter event\n    $mainMenu.on(\"mouseenter\", function () {\n      jQuery(\"#sub-site-navigation .menu li ul\").css(\"display\", \"none\");\n      jQuery(this).find(\"ul\").css(\"display\", \"block\");\n      $(this).addClass(\"tabs-list-desktop\");\n      jQuery(\"#content\").css(\"z-index\", \"-1\");\n    });\n\n    // Attach mouseleave event to hide the current submenu\n    $mainMenu.on(\"mouseleave\", function () {\n      jQuery(this).find(\"ul\").css(\"display\", \"none\");\n      jQuery(\"#content\").css(\"z-index\", \"auto\");\n      $(this).removeClass(\"tabs-list-desktop\");\n    });\n  }\n});\n","import extScriptLoaded from \"../utils/script-loaded\";\n\nexport default function articleOembed() {\n  const renderInstagram = () => {\n    extScriptLoaded(\n      () => typeof window.instgrm !== \"undefined\",\n      () => {\n        window.instgrm.Embeds.process();\n      }\n    );\n  };\n\n  const iscrollRenderInstagram = (event, header) => {\n    if (header.next().find(\".ess-embed-content.instagram\").length) {\n      renderInstagram();\n    }\n  };\n\n  const initialRenderInstagram = () => {\n    if ($(\".ess-embed-content.instagram\").length) {\n      renderInstagram();\n    }\n  };\n\n  const init = () => {\n    initialRenderInstagram();\n    $(window).on(\"omebed:renderInstagram\", iscrollRenderInstagram);\n  };\n\n  init();\n}\n","function expandedMenu() {\n  const toggleNav = function (el) {\n    const overlay = document.querySelector(\".overlay\");\n    const contentEl = document.querySelector(\"body\");\n\n    if (el.classList.contains(\"open\")) {\n      el.classList.remove(\"open\");\n      overlay.style.display = \"none\";\n      contentEl.style.overflow = \"initial\";\n      contentEl.style.height = \"auto\";\n    } else {\n      el.classList.add(\"open\");\n      overlay.style.display = \"block\";\n      contentEl.style.overflow = \"hidden\";\n      contentEl.style.height = \"0\";\n    }\n\n    overlay.addEventListener(\"click\", (e) => {\n      toggleNav(el);\n    });\n  };\n\n  $(window).on(\"injector:expandedmenu-load\", () => {\n    $(\".hamburger-menu-nc\").click(function (e) {\n      e.preventDefault();\n      const menu = $(\".sub-navigation .menu\");\n      if (menu.css(\"display\") === \"none\") {\n        menu.css(\"display\", \"flex\"); // Show the menu\n        jQuery(this).find(\".nc-expand-menu\").hide();\n        jQuery(this).find(\".nc-close-menu\").show();\n      } else {\n        menu.css(\"display\", \"none\"); // Hide the menu\n        jQuery(this).find(\".nc-expand-menu\").show();\n        jQuery(this).find(\".nc-close-menu\").hide();\n      }\n    });\n\n    const hamburgerMenu = document.querySelector(\".hamburger-menu\");\n    const searchEl = document.querySelector(\".site-branding .search\");\n    const closeEl = document.querySelector(\".expanded-menu .close\");\n\n    if (hamburgerMenu) {\n      hamburgerMenu.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        const expandedMenu = document.querySelector(\".expanded-menu\");\n        if (expandedMenu) {\n          toggleNav(expandedMenu);\n        }\n      });\n    }\n    if (searchEl) {\n      searchEl.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        const expandedMenu = document.querySelector(\".expanded-menu\");\n        if (expandedMenu) {\n          toggleNav(expandedMenu);\n          setTimeout(() => {\n            if (expandedMenu.classList.contains(\"open\")) {\n              $(\".expanded-menu .search\").trigger(\"focus\");\n            }\n          });\n        }\n      });\n    }\n    if (closeEl) {\n      closeEl.addEventListener(\"click\", (e) => {\n        e.preventDefault();\n        const expandedMenu = document.querySelector(\".expanded-menu\");\n        if (expandedMenu) {\n          toggleNav(expandedMenu);\n        }\n      });\n    }\n\n    //sticky header\n    const header = document.getElementById(\"masthead\");\n    const wpAdminMenu = document.getElementById(\"wpadminbar\");\n    const extraspace = wpAdminMenu ? wpAdminMenu.offsetHeight : 0;\n    const sticky = header ? header.offsetHeight + extraspace : 0;\n\n    window.addEventListener(\n      \"scroll\",\n      essThrottle(function () {\n        if (window.pageYOffset > sticky /*&& unstick > window.pageYOffset*/) {\n          if (header) {\n            header.classList.add(\"fixed\");\n          }\n          if (wpAdminMenu) {\n            wpAdminMenu.classList.add(\"fixed\");\n          }\n        } else {\n          if (header) {\n            header.classList.remove(\"fixed\");\n          }\n          if (wpAdminMenu) {\n            wpAdminMenu.classList.remove(\"fixed\");\n          }\n        }\n      })\n    );\n\n    // Expanded menu sub menu toggle.\n    $(\".expanded-menu .current-menu-parent\")\n      .addClass(\"expanded\")\n      .find(\".sub-menu\")\n      .show();\n    $(\".expanded-menu .menu-item-has-children > a\").on(\"click\", function (e) {\n      if (e.offsetX > e.target.offsetWidth - 40) {\n        e.preventDefault();\n        const parent = $(e.target).parent();\n\n        if (\n          $(\"#menu-expanded-menu li\").hasClass(\"expanded\") &&\n          !parent.hasClass(\"expanded\")\n        ) {\n          $(\"#menu-expanded-menu li\").find(\".sub-menu\").slideUp();\n          $(\"#menu-expanded-menu li\").removeClass(\"expanded\");\n        }\n        parent.toggleClass(\"expanded\");\n        if (parent.hasClass(\"expanded\")) {\n          parent.find(\".sub-menu\").slideDown();\n        } else {\n          parent.find(\".sub-menu\").slideUp();\n        }\n      }\n    });\n  });\n}\n\nexport default expandedMenu;\n","function initializeCarousel() {\n  $(document).ready(function ($) {\n    $(\".product-suggestion .owl-carousel\").owlCarousel({\n      items: 5, // Number of items to display in the carousel\n      loop: true, // Enable loop mode\n      autoplay: true, // Autoplay the carousel\n      autoplayTimeout: 3000, // Autoplay interval in milliseconds\n      responsive: {\n        0: {\n          items: 1, // Number of items to display on small screens\n        },\n        768: {\n          items: 3, // Number of items to display on medium screens\n        },\n        992: {\n          items: 4, // Number of items to display on large screens\n        },\n      },\n      nav: true, // Enable navigation arrows\n    });\n  });\n}\n\nexport default initializeCarousel;\n","function LoadMore() {\n  const loadmore = document.querySelector(\".loadmore\");\n  const viewmore = document.querySelector(\".viewmore\");\n  let ps_topic_attributes_parsed = JSON.parse(ps_topic_attributes);\n\n  if (!loadmore && !viewmore) {\n    return;\n  }\n\n  let anchorTag = viewmore.querySelector(\"a\");\n  let currentURL = window.location.href;\n  // anchorTag.setAttribute(\"href\", currentURL + \"/paged/2\");\n\n  let loading = true;\n  let total_page = -1;\n  if (loadmore) {\n    const is_video_subcat = loadmore.classList.contains(\"video-subcat\");\n    const is_video_landing = loadmore.classList.contains(\"video-landing\");\n    let url = `${pubstack.ajaxUrl}?action=infinite_scroll`;\n    if (is_video_subcat || is_video_landing) {\n      url = `${pubstack.ajaxUrl}?action=topic_scroll`;\n    }\n    if (is_video_subcat) {\n      total_page = loadmore.getAttribute(\"data-total_page\");\n    }\n\n    window.addEventListener(\n      \"scroll\",\n      (e) => {\n        e.preventDefault();\n\n        const scrollTop =\n          (document.documentElement && document.documentElement.scrollTop) ||\n          document.body.scrollTop;\n        const clientHeight =\n          document.documentElement.clientHeight || window.innerHeight;\n        let bottomOffset = loadmore.offsetTop;\n        let nextPage = loadmore.getAttribute(\"data-next_page\");\n        const { pagesToShow } = ps_topic_attributes_parsed;\n\n        if (nextPage >= parseInt(pagesToShow)) {\n          loading === false;\n        }\n        if (scrollTop > clientHeight - bottomOffset && loading === true) {\n          loading = false;\n          const input = {\n            page: nextPage,\n            attributes: ps_topic_attributes,\n            post_id: pubstack.post_id,\n            ad_count: document.querySelectorAll(\n              \".ad-position.essence_incontent\"\n            ).length,\n            is_video_iscroll: is_video_subcat || is_video_landing,\n          };\n\n          const loadmoreParams = Object.keys(input)\n            .map((key) => {\n              return (\n                encodeURIComponent(key) + \"=\" + encodeURIComponent(input[key])\n              );\n            })\n            .join(\"&\");\n\n          // Loading text\n          loadmore.classList.toggle(\"hidden\");\n\n          const xhr = new XMLHttpRequest();\n          xhr.addEventListener(\"load\", function () {\n            if (xhr.responseText) {\n              loadmore.insertAdjacentHTML(\"beforebegin\", xhr.responseText);\n              if (true !== is_video_subcat) {\n                jQuery(window).trigger(\"ad:scroll_update\");\n              }\n              loadmore.classList.toggle(\"hidden\");\n              loading = true;\n\n              nextPage++;\n              loadmore.setAttribute(\"data-next_page\", nextPage);\n\n              let currentURL = window.location.href;\n              let newURL = \"\";\n              if (currentURL.includes(\"/paged/\")) {\n                newURL = currentURL.replace(\n                  /(\\/paged\\/)[0-9]+/,\n                  \"/paged/\" + nextPage\n                );\n              } else {\n                newURL = currentURL + \"/paged/\" + nextPage;\n              }\n\n              const inputAttr = JSON.parse(input.attributes);\n              const viewmoreURL = inputAttr.viewMoreLink;\n              const viewmoreBase = viewmoreURL.replace(\n                /(\\?|\\&)paged=\\d+/g,\n                \"$1paged=\"\n              );\n              let viewmoreLink = viewmoreBase + nextPage;\n\n              viewmore.querySelector(\"a\").setAttribute(\"href\", viewmoreLink);\n\n              bottomOffset = loadmore.offsetTop;\n              if (parseInt(nextPage) - 1 >= parseInt(pagesToShow)) {\n                viewmore.classList.toggle(\"hidden\");\n                loading = false;\n              }\n\n              if (total_page !== -1 && nextPage > total_page) {\n                loadmore.classList.add(\"hidden\");\n                viewmore.classList.add(\"hidden\");\n              }\n            } else {\n              loadmore.classList.toggle(\"hidden\");\n              loading = false;\n            }\n          });\n\n          // Initiates POST request to WordPress admin-ajax.php endpoint\n          xhr.open(\"POST\", url);\n          xhr.setRequestHeader(\n            \"Content-Type\",\n            \"application/x-www-form-urlencoded\"\n          );\n\n          // Sends form POST data to open request to admin-ajax.php\n          xhr.send(loadmoreParams);\n        }\n      },\n      false\n    );\n\n    viewmore.addEventListener(\n      \"click\",\n      (e) => {\n        e.preventDefault();\n        let nextPage = loadmore.getAttribute(\"data-next_page\");\n        let viewmoreCounter = viewmore.getAttribute(\"data-counter\");\n        const { pagesToShow } = ps_topic_attributes_parsed;\n        loading = false;\n        viewmore.classList.toggle(\"hidden\");\n        debugger;\n        viewmoreCounter++; //clicked... so let's increment..\n        ps_topic_attributes_parsed[\"offset\"] =\n          ps_topic_attributes_parsed[\"postsToShow\"] * viewmoreCounter;\n        let anchorTag = viewmore.querySelector(\"a\");\n        let currentURL = window.location.href;\n        let nextPageNum = viewmoreCounter + 3;\n        let newURL = \"\";\n        if (currentURL.includes(\"/paged/\")) {\n          newURL = currentURL.replace(/(\\paged\\/)[0-9]+/, \"paged/\" + nextPage);\n        } else {\n          newURL = currentURL.includes(\"?\")\n            ? currentURL + \"paged/\" + nextPage\n            : currentURL + \"paged/\" + nextPage;\n        }\n\n        const viewmoreURL = ps_topic_attributes_parsed[\"viewMoreLink\"];\n        const viewmoreBase = viewmoreURL.replace(\n          /(\\?|\\&)paged=\\d+/g,\n          \"$1paged=\"\n        );\n        let viewmoreLink = viewmoreBase + nextPage;\n\n        window.history.pushState({}, \"\", newURL);\n\n        anchorTag.setAttribute(\"href\", viewmoreLink);\n        viewmore.setAttribute(\"data-counter\", viewmoreCounter);\n\n        const input = {\n          page: nextPage,\n          attributes: JSON.stringify(ps_topic_attributes_parsed),\n          post_id: pubstack.post_id,\n          ad_count: document.querySelectorAll(\"[id^='essence_incontent_']\")\n            .length,\n          is_video_iscroll: is_video_subcat || is_video_landing,\n        };\n\n        const loadmoreParams = Object.keys(input)\n          .map((key) => {\n            return (\n              encodeURIComponent(key) + \"=\" + encodeURIComponent(input[key])\n            );\n          })\n          .join(\"&\");\n\n        // Loading text\n        loadmore.classList.toggle(\"hidden\");\n        const xhr = new XMLHttpRequest();\n        xhr.addEventListener(\"load\", function () {\n          if (xhr.responseText) {\n            loadmore.insertAdjacentHTML(\"beforebegin\", xhr.responseText);\n\n            if (true !== is_video_subcat) {\n              jQuery(window).trigger(\"ad:scroll_update\");\n            }\n            loadmore.classList.toggle(\"hidden\");\n            loading = true;\n\n            nextPage++;\n            loadmore.setAttribute(\"data-next_page\", nextPage);\n\n            if (\n              parseInt(nextPage) - 1 >=\n              parseInt(pagesToShow) * parseInt(viewmoreCounter)\n            ) {\n              viewmore.classList.toggle(\"hidden\");\n              // loadmore.insertAdjacentHTML(\"afterend\", '<div class=\"more\"><a href=\"'+viewMoreLink+'\">View More</a></div>');\n              loading = false;\n            }\n\n            if (total_page !== -1 && nextPage > total_page) {\n              loadmore.classList.add(\"hidden\");\n              viewmore.classList.add(\"hidden\");\n            }\n          } else {\n            loadmore.classList.toggle(\"hidden\");\n            loading = false;\n          }\n        });\n\n        // Initiates POST request to WordPress admin-ajax.php endpoint\n        xhr.open(\"POST\", url);\n        xhr.setRequestHeader(\n          \"Content-Type\",\n          \"application/x-www-form-urlencoded\"\n        );\n\n        // Sends form POST data to open request to admin-ajax.php\n        xhr.send(loadmoreParams);\n      },\n      false\n    );\n  }\n}\nexport default LoadMore;\n"],"names":["C","O","R","I","A","L","location","hostname","window","document","CordialObject","q","push","arguments","l","Date","createElement","getElementsByTagName","async","src","parentNode","insertBefore","crdl","trackUrl","connectUrl","cookieDomain","cookieLife","post_data","jQuery","first","data","post_targ","page_url","pagetype","page_type","page_name","post_title","category","ch","tags","title","googletag","cmd","adStyleSet","$ad","type","css","ad_iframe","find","padding","Math","round","height","pubads","addEventListener","event","slot_id","slot","getSlotElementId","ad_id","$","addClass","includes","old","started","now","interval","setInterval","clearInterval","ratio","width","target_ratio","ad_iframe_sz","adWidthCheck","extScriptLoaded","test","fn","callbackTimer","call","e","require","default","is_essence_video_playing","essence_video_currently_playing","essence_video_in_view","module","exports","this","observer","init","jwplayer","setupPlayers","initObserver","on","loadPlayers","observeNewPlayers","options","root","rootMargin","threshold","i","instanceId","playerId","config","playerElement","getElementById","IntersectionObserver","entries","forEach","entry","isIntersecting","parent","hasClass","play","pause","observe","instance","setup","jwplayerQueue","shift","$videoBox","target","player_id","intersectionRatio","myPlayer","setFloating","attr","not","each","index","box","onPlay","playReason","oldPlayer","onStop","paused","getFloating","closest","length","$article","remove","captions_url","endsWith","html","before","click","pauseAd","trigger","iframeSrcArr","iframeSrc","split","iframeSrcAutoPlay","substr","checkVideoPlaying","windowHeight","innerHeight","documentElement","clientHeight","body","self","essThrottle","scrollTop","offset","top","outerHeight","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","args","apply","err","undefined","playerInstance","fullscreenMode","el","$container","$tracksToSync","Swiper","slidesPerView","navigation","nextEl","prevEl","translate","calcTimeIndicatorPos","timelineStart","val","start","diff","percent","floor","show","updateFullScreenMode","isFullScreen","toggleClass","text","removeClass","animate","$this","efocResizeTimer","clearTimeout","setTimeout","loadJWPlayer","segmentVideoID","segmentChannelID","change","startVideoPlayback","preventDefault","mediaId","channelId","muted","currentEventId","intervalId","VOD_CONFIG","pid","playlist","repeat","autostart","mute","aspectratio","sharing","sites","floating","interactive","advertising","eventId","attempts","getPlaylist","mediaid","file","sleep","setConfig","load","fetchJSON","url","fetch","response","ok","Error","statusText","json","cache","ms","checkChannelStatus","getChannelStatus","channelStatus","configurePlayer","catch","handleLivestreamFinished","getPlaylistItem","code","warn","videoID","liveChannelID","ajax","pubstack","ajaxUrl","method","dataType","action","post_id","postID","channel_id","video_id","tvGuide","_typeof","_regeneratorRuntime","__esModule","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","TypeError","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","doneResult","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","a","definition","o","get","prop","r","_defineProperties","props","descriptor","input","hint","prim","toPrimitive","res","String","IasVideo","field","Constructor","update","playerAdded","protoProps","id_","video","adsManager","ima3","googleImaVansAdapter","google","anId","campId","chanId","ias_xps","ias_xbp","ias_xar","ima","settings","setDisableCustomPlaybackForIOS10Plus","isFormValid","validateList","ERROR_REQUIRED_CLASS","ERROR_INVALID_EMAIL_CLASS","ERROR_INVALID_CONFIRM_CLASS","isValid","classList","hasAttribute","trim","add","$email","isFieldValid","map","hide","showErrorMessage","$response","doSubscribeAjax","$form","successCallback","failCallback","alwaysCallback","$button","$loading","serialize","trackCordialNewsletter","href","message","replaceWith","replaceWithSuccess","fail","xhr","textStatus","responseJSON","console","log","always","removeAttr","properties","email","register","submit","$modal","displayed","localStorage","getItem","one","fadeIn","close","fadeOut","setItem","blocks","VideoJw","renderInstagram","toggleNav","overlay","querySelector","contentEl","contains","style","display","overflow","menu","hamburgerMenu","searchEl","closeEl","expandedMenu","header","wpAdminMenu","extraspace","offsetHeight","sticky","pageYOffset","offsetX","offsetWidth","slideUp","slideDown","ready","owlCarousel","items","loop","autoplay","autoplayTimeout","responsive","nav","EmailPreferences","SubscribeModal","EmailUnsubscribe","NewsletterBlock","loadmore","viewmore","ps_topic_attributes_parsed","JSON","parse","ps_topic_attributes","loading","total_page","is_video_subcat","is_video_landing","getAttribute","bottomOffset","offsetTop","nextPage","pagesToShow","parseInt","page","attributes","ad_count","querySelectorAll","is_video_iscroll","loadmoreParams","encodeURIComponent","join","toggle","XMLHttpRequest","responseText","insertAdjacentHTML","setAttribute","currentURL","replace","viewmoreLink","viewMoreLink","open","setRequestHeader","send","viewmoreCounter","anchorTag","newURL","history","pushState","stringify","LoadMore","instgrm","Embeds","process","menuSelector","$mainMenu","matchMedia","matches","stopPropagation"],"sourceRoot":""}