{"version":3,"file":"footer.99817a54087bf0abc75c.js","mappings":"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","sources":["webpack://essence_site/./wp/wp-content/themes/essence/assets/js/ads/cordial-footer.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/blocks/event-upcoming-experiences.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/blocks/event-vod-promo.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/./node_modules/sticky-kit/dist/sticky-kit.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/./wp/wp-content/themes/essence/assets/js/newsletter/util.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/newsletter/preferences.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/newsletter/unsubscribe.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/newsletter/modal.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/newsletter/block.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/footer.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/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/of-the-essence-archive.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/native-tout.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/createClass.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/essence/assets/js/blocks/playlist-schedule.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://essence_site/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/sponsored.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/sponsored.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/index.js","webpack://essence_site/./wp/wp-content/themes/pubstack/assets/js/utils/analytics.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/article/article-oembed.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/expanded-menu.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/utils/script-loaded.js","webpack://essence_site/./wp/wp-content/themes/essence/assets/js/blocks/playlist-player.js"],"sourcesContent":["if (location.hostname === \"www.essence.com\") {\n\t(function (C, O, R, D, I, A, L) {\n\t\t(C.CordialObject = I),\n\t\t\t(C[I] =\n\t\t\t\tC[I] ||\n\t\t\t\tfunction () {\n\t\t\t\t\t(C[I].q = C[I].q || []).push(arguments);\n\t\t\t\t});\n\t\t(C[I].l = 1 * new Date()), (C[I].q = []), (A = O.createElement(R));\n\t\t(L = O.getElementsByTagName(R)[0]),\n\t\t\t(A.async = 1),\n\t\t\t(A.src = D),\n\t\t\tL.parentNode.insertBefore(A, L);\n\t})(window, document, \"script\", \"//track.cordial.io/track.v2.js\", \"crdl\");\n\tcrdl(\"connect\", \"essence\", {\n\t\ttrackUrl: \"//se.connect.essence.com\",\n\t\tconnectUrl: \"//d.connect.essence.com\",\n\t\tcookieDomain: \"essence.com\",\n\t\tcookieLife: 365,\n\t});\n\tlet post_data = jQuery(\".pubstack-post-header\").first().data(\"post-info\");\n\tlet post_targ = jQuery(\".pubstack-post-header\").first().data(\"page_targeting\");\n\tif (typeof post_data !== \"undefined\" && post_data !== \"\") {\n\t\tif (post_data.page_url === \"https://www.essence.com/\") {\n\t\t\tpost_data.pagetype = \"homepage\";\n\t\t}\n\t\tcrdl(\"event\", \"browse\", {\n\t\t\tpage_type: post_data.pagetype,\n\t\t\tpage_name: post_data.post_title,\n\t\t\tpage_url: post_data.page_url,\n\t\t\tcategory: post_targ.ch,\n\t\t\ttags: post_targ.tags,\n\t\t});\n\t} else {\n\t\tcrdl(\"event\", \"browse\", {\n\t\t\tpage_type: \"page\",\n\t\t\tpage_name: document.title,\n\t\t\tpage_url: window.location,\n\t\t\tcategory: \"\",\n\t\t\ttags: \"\",\n\t\t});\n\t}\n}\n","/**\n * Event Upcoming Experiences Promo block\n */\nconst EventUpcomingExperiences = () => {\n\tconst init = () => {\n\t\t$('[data-js=\"event-upcoming-experiences-slider\"]').each((index, el) => {\n\t\t\tnew Swiper(el, {\n\t\t\t\tnavigation: {\n\t\t\t\t\tnextEl: $(el).parent().find(\".swiper-button-next\")[0],\n\t\t\t\t\tprevEl: $(el).parent().find(\".swiper-button-prev\")[0],\n\t\t\t\t},\n\t\t\t\tslidesPerView: 1,\n\t\t\t\tspaceBetween: 16,\n\t\t\t\tloop: false,\n\n\t\t\t\t// Responsive breakpoints\n\t\t\t\tbreakpoints: {\n\t\t\t\t\t// when window width is >= 400px\n\t\t\t\t\t400: {\n\t\t\t\t\t\tslidesPerView: \"auto\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t};\n\n\treturn { init };\n};\n\nEventUpcomingExperiences().init();\n","/**\n * Event VOD Promo block\n */\nconst EventVodPromo = () => {\n\tconst init = () => {\n\t\t$('[data-js=\"event-vod-promo-slider\"]').each((index, el) => {\n\t\t\tnew Swiper(el, {\n\t\t\t\tnavigation: {\n\t\t\t\t\tnextEl: $(el).parent().find(\".swiper-button-next\")[0],\n\t\t\t\t\tprevEl: $(el).parent().find(\".swiper-button-prev\")[0],\n\t\t\t\t},\n\t\t\t\tslidesPerView: 1,\n\t\t\t\tspaceBetween: 24,\n\t\t\t\tloop: false,\n\t\t\t\t// Responsive breakpoints\n\t\t\t\tbreakpoints: {\n\t\t\t\t\t// when window width is >= 800px\n\t\t\t\t\t800: {\n\t\t\t\t\t\tslidesPerView: 2,\n\t\t\t\t\t},\n\t\t\t\t\t// when window width is >= 1024px\n\t\t\t\t\t1024: {\n\t\t\t\t\t\tslidesPerView: 3,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t};\n\n\treturn { init };\n};\n\nEventVodPromo().init();\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","// Generated by CoffeeScript 1.6.2\n/**\n@license Sticky-kit v1.1.3 | WTFPL | Leaf Corcoran 2015 | http://leafo.net\n*/\n\n\n(function() {\n var $, win;\n\n $ = this.jQuery || window.jQuery;\n\n win = $(window);\n\n $.fn.stick_in_parent = function(opts) {\n var doc, elm, enable_bottoming, inner_scrolling, manual_spacer, offset_top, outer_width, parent_selector, recalc_every, sticky_class, _fn, _i, _len;\n\n if (opts == null) {\n opts = {};\n }\n sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming;\n if (offset_top == null) {\n offset_top = 0;\n }\n if (parent_selector == null) {\n parent_selector = void 0;\n }\n if (inner_scrolling == null) {\n inner_scrolling = true;\n }\n if (sticky_class == null) {\n sticky_class = \"is_stuck\";\n }\n doc = $(document);\n if (enable_bottoming == null) {\n enable_bottoming = true;\n }\n outer_width = function(el) {\n var computed, w, _el;\n\n if (window.getComputedStyle) {\n _el = el[0];\n computed = window.getComputedStyle(el[0]);\n w = parseFloat(computed.getPropertyValue(\"width\")) + parseFloat(computed.getPropertyValue(\"margin-left\")) + parseFloat(computed.getPropertyValue(\"margin-right\"));\n if (computed.getPropertyValue(\"box-sizing\") !== \"border-box\") {\n w += parseFloat(computed.getPropertyValue(\"border-left-width\")) + parseFloat(computed.getPropertyValue(\"border-right-width\")) + parseFloat(computed.getPropertyValue(\"padding-left\")) + parseFloat(computed.getPropertyValue(\"padding-right\"));\n }\n return w;\n } else {\n return el.outerWidth(true);\n }\n };\n _fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) {\n var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick;\n\n if (elm.data(\"sticky_kit\")) {\n return;\n }\n elm.data(\"sticky_kit\", true);\n last_scroll_height = doc.height();\n parent = elm.parent();\n if (parent_selector != null) {\n parent = parent.closest(parent_selector);\n }\n if (!parent.length) {\n throw \"failed to find stick parent\";\n }\n fixed = false;\n bottomed = false;\n spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $(\"<div />\");\n if (spacer) {\n spacer.css('position', elm.css('position'));\n }\n recalc = function() {\n var border_top, padding_top, restore;\n\n if (detached) {\n return;\n }\n last_scroll_height = doc.height();\n border_top = parseInt(parent.css(\"border-top-width\"), 10);\n padding_top = parseInt(parent.css(\"padding-top\"), 10);\n padding_bottom = parseInt(parent.css(\"padding-bottom\"), 10);\n parent_top = parent.offset().top + border_top + padding_top;\n parent_height = parent.height();\n if (fixed) {\n fixed = false;\n bottomed = false;\n if (manual_spacer == null) {\n elm.insertAfter(spacer);\n spacer.detach();\n }\n elm.css({\n position: \"\",\n top: \"\",\n width: \"\",\n bottom: \"\"\n }).removeClass(sticky_class);\n restore = true;\n }\n top = elm.offset().top - (parseInt(elm.css(\"margin-top\"), 10) || 0) - offset_top;\n height = elm.outerHeight(true);\n el_float = elm.css(\"float\");\n if (spacer) {\n spacer.css({\n width: outer_width(elm),\n height: height,\n display: elm.css(\"display\"),\n \"vertical-align\": elm.css(\"vertical-align\"),\n \"float\": el_float\n });\n }\n if (restore) {\n return tick();\n }\n };\n recalc();\n if (height === parent_height) {\n return;\n }\n last_pos = void 0;\n offset = offset_top;\n recalc_counter = recalc_every;\n tick = function() {\n var css, delta, recalced, scroll, will_bottom, win_height;\n\n if (detached) {\n return;\n }\n recalced = false;\n if (recalc_counter != null) {\n recalc_counter -= 1;\n if (recalc_counter <= 0) {\n recalc_counter = recalc_every;\n recalc();\n recalced = true;\n }\n }\n if (!recalced && doc.height() !== last_scroll_height) {\n recalc();\n recalced = true;\n }\n scroll = win.scrollTop();\n if (last_pos != null) {\n delta = scroll - last_pos;\n }\n last_pos = scroll;\n if (fixed) {\n if (enable_bottoming) {\n will_bottom = scroll + height + offset > parent_height + parent_top;\n if (bottomed && !will_bottom) {\n bottomed = false;\n elm.css({\n position: \"fixed\",\n bottom: \"\",\n top: offset\n }).trigger(\"sticky_kit:unbottom\");\n }\n }\n if (scroll < top) {\n fixed = false;\n offset = offset_top;\n if (manual_spacer == null) {\n if (el_float === \"left\" || el_float === \"right\") {\n elm.insertAfter(spacer);\n }\n spacer.detach();\n }\n css = {\n position: \"\",\n width: \"\",\n top: \"\"\n };\n elm.css(css).removeClass(sticky_class).trigger(\"sticky_kit:unstick\");\n }\n if (inner_scrolling) {\n win_height = win.height();\n if (height + offset_top > win_height) {\n if (!bottomed) {\n offset -= delta;\n offset = Math.max(win_height - height, offset);\n offset = Math.min(offset_top, offset);\n if (fixed) {\n elm.css({\n top: offset + \"px\"\n });\n }\n }\n }\n }\n } else {\n if (scroll > top) {\n fixed = true;\n css = {\n position: \"fixed\",\n top: offset\n };\n css.width = elm.css(\"box-sizing\") === \"border-box\" ? elm.outerWidth() + \"px\" : elm.width() + \"px\";\n elm.css(css).addClass(sticky_class);\n if (manual_spacer == null) {\n elm.after(spacer);\n if (el_float === \"left\" || el_float === \"right\") {\n spacer.append(elm);\n }\n }\n elm.trigger(\"sticky_kit:stick\");\n }\n }\n if (fixed && enable_bottoming) {\n if (will_bottom == null) {\n will_bottom = scroll + height + offset > parent_height + parent_top;\n }\n if (!bottomed && will_bottom) {\n bottomed = true;\n if (parent.css(\"position\") === \"static\") {\n parent.css({\n position: \"relative\"\n });\n }\n return elm.css({\n position: \"absolute\",\n bottom: padding_bottom,\n top: \"auto\"\n }).trigger(\"sticky_kit:bottom\");\n }\n }\n };\n recalc_and_tick = function() {\n recalc();\n return tick();\n };\n detach = function() {\n detached = true;\n win.off(\"touchmove\", tick);\n win.off(\"scroll\", tick);\n win.off(\"resize\", recalc_and_tick);\n $(document.body).off(\"sticky_kit:recalc\", recalc_and_tick);\n elm.off(\"sticky_kit:detach\", detach);\n elm.removeData(\"sticky_kit\");\n elm.css({\n position: \"\",\n bottom: \"\",\n top: \"\",\n width: \"\"\n });\n parent.position(\"position\", \"\");\n if (fixed) {\n if (manual_spacer == null) {\n if (el_float === \"left\" || el_float === \"right\") {\n elm.insertAfter(spacer);\n }\n spacer.remove();\n }\n return elm.removeClass(sticky_class);\n }\n };\n win.on(\"touchmove\", tick);\n win.on(\"scroll\", tick);\n win.on(\"resize\", recalc_and_tick);\n $(document.body).on(\"sticky_kit:recalc\", recalc_and_tick);\n elm.on(\"sticky_kit:detach\", detach);\n return setTimeout(tick, 0);\n };\n for (_i = 0, _len = this.length; _i < _len; _i++) {\n elm = this[_i];\n _fn($(elm));\n }\n return this;\n };\n\n}).call(this);\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].call(module.exports, 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};","/**\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\tconst ERROR_INVALID_PHONE_CLASS = \"invalid-phone\";\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\t\tfield.classList.remove(ERROR_INVALID_PHONE_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\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// Phone number validation.\n\t\tif (\"tel\" === field.type && isValid) {\n\t\t\t// Regular expression to validate phone number with country code.\n\t\t\tif (\n\t\t\t\t!/^\\+?[1-9]\\d{1,14}$/.test(field.value) // E.164 format: + followed by up to 15 digits.\n\t\t\t) {\n\t\t\t\tfield.classList.add(ERROR_INVALID_PHONE_CLASS);\n\t\t\t\tisValid = false;\n\t\t\t} else {\n\t\t\t\tfield.classList.remove(ERROR_INVALID_PHONE_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 ESSENCE Newsletter.\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tmessage =\n\t\t\t\t\"Thanks for signing up to ESSENCE 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 replaceWithSmsSuccess = ($form) => {\n\tconst $banner = $(\".modal-subscribe-sms__banner\");\n\tconst $sms_copy = $(\".modal-subscribe-sms__copy\");\n\tconst phone = $form.find('input[name=\"phone\"]').val();\n\n\t$banner.hide();\n\t$sms_copy.hide();\n\tlet message = `You have successfully subscribed ${phone} to the Essence SMS list`;\n\n\t$form.replaceWith(\n\t\t`<div class=\"subscribe-form-success-green\">${message}</div>`\n\t);\n};\n\nexport const showErrorMessage = ($response) =>\n\t$response.text(\"Oops! Something went wrong. Please try again later.\").show();\n\nexport const showDuplicatedMessage = ($response) =>\n\t$response.text(\"Oops! It looks like you're already subscribed.\").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 = $(\".subscribe-form-response\");\n\tconst $loading = $form.find(\".subscribe-form-loading\");\n\n\t$button.attr(\"disabled\", \"\");\n\t$response.hide();\n\t$loading.show();\n\n\t// Serialize form data and add action\n\tlet data = $form.serialize() + \"&action=newsletter_subscribe\";\n\n\t// Add primary_key from localStorage if available\n\tconst crdlID = localStorage.getItem(\"crdl_id\");\n\tif (!data.includes(\"email=\") && crdlID) {\n\t\tdata += `&primary_key=${encodeURIComponent(crdlID)}`;\n\t}\n\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\t\t\tif (response.cID) {\n\t\t\t\tlocalStorage.setItem(\"crdl_id\", response.cID);\n\t\t\t}\n\n\t\t\tif ($form.attr(\"id\") !== \"smsSubscribe\") {\n\t\t\t\ttrackCordialNewsletter($form);\n\t\t\t} else {\n\t\t\t\ttrackSMSCordialNewsletter($form, response.cID);\n\t\t\t}\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 if ($form.attr(\"id\") === \"smsSubscribe\") {\n\t\t\t\t\treplaceWithSmsSuccess($form);\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\t// Check for phone value\n\t\t\tconst phone = $form.find(\"[name=phone]\").val();\n\t\t\tconst isPhoneAvailable = phone && phone.trim() !== \"\";\n\t\t\tsuccessCallback && successCallback(isPhoneAvailable);\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.errorKey === \"CONTACTS_DUPLICATE_KEY\"\n\t\t\t) {\n\t\t\t\tconsole.log(\"CONTACTS_DUPLICATE_KEY\");\n\t\t\t\tshowDuplicatedMessage($response);\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\tconst firstName = $form.find(\"[name=first_name]\").val();\n\tconst phone = $form.find(\"[name=phone]\").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\tvar auth_data = {\n\t\temail: email,\n\t};\n\tvar contact_data = {\n\t\tchannels: {\n\t\t\temail: {\n\t\t\t\tsubscribeStatus: \"subscribed\",\n\t\t\t},\n\t\t},\n\t\tfirst_name: firstName,\n\t\tEssence_SMS_Subscribers: phone ? true : false,\n\t};\n\tcrdl(\"contact\", auth_data, contact_data);\n\tcrdl(\"event\", event, properties);\n};\n\nconst trackSMSCordialNewsletter = ($form, cID) => {\n\tif (typeof crdl === \"undefined\") {\n\t\treturn;\n\t}\n\n\tlet event,\n\t\tproperties = {};\n\n\tconst phone = $form.find(\"[name=phone]\").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\tvar auth_data = {\n\t\tcID: cID,\n\t};\n\n\tvar contact_data = {\n\t\tchannels: {\n\t\t\tsms: {\n\t\t\t\taddress: phone,\n\t\t\t\tprograms: {\n\t\t\t\t\tpromos: {\n\t\t\t\t\t\tkeyword: \"join\",\n\t\t\t\t\t\tsubscribeStatus: \"subscribed\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tEssence_SMS_Subscribers: true,\n\t};\n\tcrdl(\"contact\", auth_data, contact_data);\n\tcrdl(\"event\", event, properties);\n};\n","import { doSubscribeAjax, isFormValid } from \"./util\";\n\nfunction Preferences() {\n\tthis.$form = $(\"#email-preferences .subscribe-form\");\n\tthis.$checkbox = this.$form.find(\"#terms_agree\");\n this.$subscribeButton = this.$form.find(\"button[type='submit']\");\n\n\tthis.init = () => {\n\t\tif (this.$form.length) {\n\t\t\tthis.register();\n\t\t\tthis.handleCheckbox();\n\t\t}\n\t};\n\n\tthis.handleCheckbox = () => {\n this.$subscribeButton.prop('disabled', !this.$checkbox.is(':checked'));\n\n this.$checkbox.on('change', () => {\n this.$subscribeButton.prop('disabled', !this.$checkbox.is(':checked'));\n });\n };\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 (isFormValid(this.$form)) {\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\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\tthis.$checkbox = this.$modal.find(\"#terms_agree\");\n\tthis.$subscribeButton = this.$modal.find(\"button[type='submit']\");\n\tthis.$emailModal = this.$modal.find(\".email-subscribe-modal\");\n\tthis.$smsModal = this.$modal.find(\".sms-subscribe-modal\");\n\tthis.$backdrop = this.$modal.find(\".modal-backdrop\");\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.showEmailModal();\n\t\t\tthis.register();\n\t\t\tthis.handleCheckbox();\n\t\t} else {\n\t\t\tthis.remove();\n\t\t}\n\t};\n\n\tthis.showEmailModal = () => {\n\t\t$(document).one(\"scroll\", () => {\n\t\t\tthis.$modal.fadeIn();\n\t\t\tthis.$emailModal.attr(\"aria-hidden\", \"false\").removeAttr(\"inert\");\n\t\t\tthis.$emailModal.fadeIn();\n\t\t\tthis.$backdrop.fadeIn();\n\t\t\t$(\"body\").addClass(\"modal-open\");\n\t\t\tthis.$emailModal.focus();\n\t\t});\n\t}\n\n\tthis.showSmsModal = () => {\n\t\tthis.$modal.fadeIn();\n\t\tthis.$smsModal.attr(\"aria-hidden\", \"false\").removeAttr(\"inert\");\n\t\tthis.$smsModal.fadeIn();\n\t\tthis.$backdrop.fadeIn();\n\t\t$(\"body\").addClass(\"modal-open\");\n\t\tthis.$smsModal.focus();\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.scheduleSmsModal = () => {\n setTimeout(() => {\n this.showSmsModal();\n }, 120000);\n };\n\n\tthis.closeModal = (isPhoneAvailable) => {\n\t\tif (isPhoneAvailable) {\n\t\t\tthis.$modal.fadeOut(1000, this.remove);\n\t\t\t$(\"body\").removeClass(\"modal-open\");\n\t\t\tlocalStorage.setItem(\"ess_nl_popup_displayed\", true);\n\t\t} else {\n\t\t\tthis.$emailModal.fadeOut(400, () => {\n\t\t\t\tthis.$emailModal.attr(\"aria-hidden\", \"true\").attr(\"inert\", \"true\");\n\t\t\t\tthis.$emailModal.find(\":focus\").blur();\n\t\t\t\t$(\"body\").removeClass(\"modal-open\");\n\t\t\t\tthis.$backdrop.fadeOut();\n\t\t\t\tthis.scheduleSmsModal();\n\t\t\t});\n\t\t}\n };\n\n\tthis.close = () => {\n\t\tthis.$modal.fadeOut(1000, 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(\".btn-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 ($form.attr('id') === \"smsSubscribe\") {\n\t\t\tif (isFormValid($form, false)) {\n\t\t\t\tdoSubscribeAjax($form, () => setTimeout(this.close, 300));\n\t\t\t}\n\t\t} else if (isFormValid($form)) {\n\t\t\tdoSubscribeAjax($form, (isPhoneAvailable) => setTimeout(() => this.closeModal(isPhoneAvailable), 3000));\n\t\t}\n\t};\n\n\tthis.handleCheckbox = () => {\n\t\tthis.$subscribeButton.prop(\"disabled\", !this.$checkbox.is(\":checked\"));\n\n\t\tthis.$checkbox.on(\"change\", () => {\n\t\t\tthis.$subscribeButton.prop(\"disabled\", !this.$checkbox.is(\":checked\"));\n\t\t});\n\t};\n}\n\nconst phoneInputField = document.querySelector(\"#modalSubscribePhone\");\n\nif (phoneInputField) {\n\tconst ERROR_INVALID_PHONE_CLASS = \"invalid-phone\";\n\n\tconst phoneInput = window.intlTelInput(phoneInputField, {\n\t\tutilsScript:\n\t\t\t\"https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js\",\n\t});\n\n\t// Add an event listener to check when the phone number changes\n\tphoneInputField.addEventListener(\"blur\", function () {\n\t\tif (phoneInput.isValidNumber()) {\n\t\t\t// Set the value to the formatted number (E164 format)\n\t\t\tphoneInputField.value = phoneInput.getNumber(\n\t\t\t\tintlTelInputUtils.numberFormat.E164\n\t\t\t);\n\t\t\tphoneInputField.classList.remove(ERROR_INVALID_PHONE_CLASS);\n\t\t} else {\n\t\t\t// Optionally handle invalid phone number\n\t\t\tphoneInputField.classList.add(ERROR_INVALID_PHONE_CLASS);\n\t\t\tconsole.log(\"Invalid phone number\");\n\t\t}\n\t});\n\n\t// Function to move the divs inside the wrapper\n\tfunction moveErrorDivs() {\n\t\tconst wrapper = document.querySelector(\".iti\"); // Get the wrapper element created by intlTelInput\n\n\t\tif (wrapper) {\n\t\t\t// Select the error divs\n\t\t\tconst invalidPhoneDiv = document.querySelector(\".error-invalid-phone\");\n\t\t\tconst invalidRequiredDiv = document.querySelector(\n\t\t\t\t\".error-invalid-required\"\n\t\t\t);\n\n\t\t\t// Append the divs to the wrapper\n\t\t\tif (invalidPhoneDiv) {\n\t\t\t\twrapper.appendChild(invalidPhoneDiv);\n\t\t\t}\n\t\t\tif (invalidRequiredDiv) {\n\t\t\t\twrapper.appendChild(invalidRequiredDiv);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Function to handle closing of error messages\n\tfunction handleCloseError(event) {\n\t\tevent.preventDefault();\n\t\tconst errorDiv = event.target.parentElement; // Get the parent div of the close button\n\t\tconst className = errorDiv.className; // Get the class name of the error div\n\t\tconst classToRemove = className.replace(\"error-\", \"\"); // Remove prefix to get the class to remove\n\n\t\tphoneInputField.classList.remove(classToRemove); // Remove the corresponding class from the phone input\n\t}\n\n\t// Wait until the intlTelInput is loaded and then move the divs\n\twindow.addEventListener(\"load\", () => {\n\t\tmoveErrorDivs();\n\n\t\t// Add click event listeners to error close buttons\n\t\tconst closeButtons = document.querySelectorAll(\".error-close\");\n\t\tcloseButtons.forEach((button) => {\n\t\t\tbutton.addEventListener(\"click\", handleCloseError);\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 = [];\n\n\tthis.init = function () {\n\t\tthis.register();\n\t};\n\n\tthis.register = () => {\n\t\tconst $subscribeForm = $(\".subscribe-form\"); // jQuery selector\n\t\t$subscribeForm.on(\"submit\", this.submit);\n\t\t// this.blocks.find(\".subscribe-form\").on(\"submit\", this.submit);\n\t};\n\n\tthis.submit = (e) => {\n\t\tconst $form = $(e.target);\n\t\tif (!isFormValid($form, false)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\t// Optionally handle form submission here\n\t\t// doSubscribeAjax($form);\n\t};\n}\n\nexport default new Block();\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}","function Footer() {\n\tthis.selectors = Array();\n\n\tthis.init = () => {\n\t\tif (!document.querySelector(\".site-footer\")) {\n\t\t\treturn;\n\t\t}\n\t\tthis.selectors = {\n\t\t\tfooter: document.querySelector(\".site-footer\"),\n\t\t\tfooterMagenta: document.querySelector(\".footer-magenta\"),\n\t\t\tfooterFixed: document.querySelector(\".footer-fixed\"),\n\t\t\tcontent: document.querySelector(\".site-content\"),\n\t\t};\n\t\tthis.observeFooter();\n\t\tthis.observeFooterFixed();\n\t};\n\n\tthis.observeFooter = () => {\n\t\tconst footerObserver = new IntersectionObserver(\n\t\t\t(entries, observer) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\t// Stop JWPlayer floating video before user scrolls to the footer.\n\t\t\t\t\tthis.selectors.content.style.transform = entry.isIntersecting\n\t\t\t\t\t\t? \"translate(0)\"\n\t\t\t\t\t\t: \"\";\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ threshold: 0 }\n\t\t);\n\n\t\tfooterObserver.observe(this.selectors.footer);\n\t};\n\n\tthis.observeFooterFixed = () => {\n\t\tif (this.selectors.footerFixed) {\n\t\t\tconst footerFixedObserver = new IntersectionObserver(\n\t\t\t\t(entries, observer) => {\n\t\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\t\tif (entry.boundingClientRect.top < window.innerHeight) {\n\t\t\t\t\t\t\t// Fixed footer visibility on scroll.\n\t\t\t\t\t\t\tthis.selectors.footerFixed.style.display = entry.isIntersecting\n\t\t\t\t\t\t\t\t? \"none\"\n\t\t\t\t\t\t\t\t: \"block\";\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t{ threshold: 0, rootMargin: \"-100% 0% 0% 0%\" }\n\t\t\t);\n\n\t\t\tfooterFixedObserver.observe(this.selectors.footerMagenta);\n\t\t}\n\t};\n}\n\nexport default new Footer();\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}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/**\n * Of The Essence Archive page\n */\nfunction OfTheEssenceArchive() {\n\tthis.$toggleSearchBtn = $('[data-js=\"toggle-ote-search\"]');\n\tthis.$clearSearchBtn = $('[data-js=\"clear-ote-search\"]');\n\tthis.$toggleFiltersBtn = $('[data-js=\"toggle-ote-filters\"]');\n\tthis.$searchInput = $(\".ote-archive-posts__header-search-input\");\n\tthis.$filters = $(\".ote-archive-filters\");\n\tthis.$filterHead = $(\".ote-archive-filter__title\");\n\tthis.$dateFilter = $('.ote-archive-filter [name=\"date\"]');\n\tthis.$volumeFilter = $('.ote-archive-filter [name=\"volume\"]');\n\tthis.$issueFilter = $('.ote-archive-filter [name=\"issue\"]');\n\tthis.$posts = $(\".ote-archive-posts__list\");\n\tthis.$loadmore = $(\".ote-archive-posts__container .loadmore\");\n\tthis.$loading = $(\".ote-archive-posts__container .loading\");\n\tthis.$ajax = null;\n\tthis.loading = false;\n\tthis.state = {\n\t\tsearch: \"\",\n\t\tyear: \"\",\n\t\tmonth: \"\",\n\t\tday: \"\",\n\t\tvolume: \"\",\n\t\tissue: \"\",\n\t\tpaged: 1,\n\t};\n\n\tthis.init = () => {\n\t\tif (!this.$posts.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$filters.css(\"visibility\", \"visible\").insertAfter(\"#masthead\");\n\n\t\tthis.parseURL();\n\t\tthis.updateLayout();\n\t\tthis.registerEvents();\n\t};\n\n\tthis.updateURL = () => {\n\t\tconst url = new URL(window.location);\n\t\tfor (const key in this.state) {\n\t\t\t// Don't add paged param to URL.\n\t\t\tif ([\"paged\"].includes(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (this.state[key]) {\n\t\t\t\turl.searchParams.set(key, this.state[key]);\n\t\t\t} else {\n\t\t\t\turl.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t\twindow.history.pushState({}, \"\", url);\n\t};\n\n\tthis.updateLayout = () => {\n\t\tthis.$posts.toggleClass(\"--search\", !!this.state.search);\n\t};\n\n\tthis.parseURL = () => {\n\t\tconst url = new URL(window.location);\n\t\tconst params = new URLSearchParams(url.search);\n\t\tthis.state.search = params.get(\"search\");\n\t\tthis.state.year = params.get(\"year\");\n\t\tthis.state.month = params.get(\"month\");\n\t\tthis.state.day = params.get(\"day\");\n\t\tthis.state.volume = params.get(\"volume\");\n\t\tthis.state.issue = params.get(\"issue\");\n\n\t\tthis.load(false, false, false);\n\t};\n\n\tthis.registerEvents = () => {\n\t\t// Toggle search input\n\t\tthis.$toggleSearchBtn.on(\"click\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.$searchInput.toggleClass(\"hidden\").trigger(\"focus\");\n\t\t});\n\n\t\t// Clear search string\n\t\tthis.$clearSearchBtn.on(\"click\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.state.search = \"\";\n\t\t\tthis.$searchInput.val(\"\");\n\t\t\tthis.$clearSearchBtn.addClass(\"hidden\");\n\n\t\t\tthis.updateURL();\n\t\t\tthis.updateLayout();\n\t\t\tthis.load(true, true, true);\n\t\t});\n\n\t\t// Toggle clear button\n\t\tthis.$searchInput.on(\"input\", () => {\n\t\t\tthis.state.search = this.$searchInput.val();\n\t\t\tthis.$clearSearchBtn.toggleClass(\"hidden\", !this.state.search);\n\n\t\t\tthis.updateURL();\n\t\t\tthis.updateLayout();\n\t\t\tthis.load(true, true, true);\n\t\t});\n\n\t\t// Toggle filters sidebar\n\t\tthis.$toggleFiltersBtn.on(\"click\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.$filters.toggleClass(\"show\");\n\t\t});\n\n\t\t// Toggle filter\n\t\tthis.$filterHead.on(\"click\", function () {\n\t\t\t$(this).toggleClass(\"show\").next().stop(true).toggleSlide(300);\n\t\t});\n\n\t\t// Date field\n\t\tthis.$dateFilter.on(\"change input\", () => {\n\t\t\tconst date = this.$dateFilter.val().trim();\n\t\t\tlet day = \"\",\n\t\t\t\tmonth = \"\",\n\t\t\t\tyear = \"\";\n\t\t\tif (date) {\n\t\t\t\tconst parts = date.split(\"-\");\n\t\t\t\tyear = parts[0];\n\t\t\t\tif (parts.length > 1) {\n\t\t\t\t\tmonth = parts[1];\n\t\t\t\t}\n\t\t\t\tif (parts.length > 2) {\n\t\t\t\t\tday = parts[2];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.state.day = day;\n\t\t\tthis.state.month = month;\n\t\t\tthis.state.year = year;\n\n\t\t\tthis.updateURL();\n\t\t\tthis.load(true, true, true);\n\t\t});\n\n\t\tthis.$volumeFilter.on(\"change\", (e) => {\n\t\t\tthis.state.volume = this.$volumeFilter.val();\n\n\t\t\tthis.updateURL();\n\t\t\tthis.load(true, true, true);\n\t\t});\n\n\t\tthis.$issueFilter.on(\"change\", (e) => {\n\t\t\tthis.state.issue = this.$issueFilter.val();\n\n\t\t\tthis.updateURL();\n\t\t\tthis.load(true, true, true);\n\t\t});\n\n\t\t// Load more\n\t\tthis.$loadmore.on(\"click\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.state.paged += 1;\n\t\t\tthis.load(false, false, false);\n\t\t});\n\t};\n\n\tthis.load = (abort = false, clear = false, scroll = false) => {\n\t\tif (abort) {\n\t\t\tif (this.$ajax) {\n\t\t\t\tthis.$ajax.abort();\n\t\t\t\tthis.loading = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (clear) {\n\t\t\tthis.$posts.empty();\n\t\t\tthis.state.paged = 1;\n\t\t}\n\n\t\tthis.loading = true;\n\t\tthis.$loading.show();\n\t\tthis.$loadmore.hide();\n\n\t\tthis.$ajax = $.ajax({\n\t\t\turl: pubstack.ajaxUrl,\n\t\t\tmethod: \"POST\",\n\t\t\tdata: {\n\t\t\t\taction: \"load_of_the_essence_posts\",\n\t\t\t\t...this.state,\n\t\t\t\t_wpnonce: OTE_ARCHIVE_NONCE,\n\t\t\t},\n\t\t})\n\t\t\t.done((response) => {\n\t\t\t\tif (response.success) {\n\t\t\t\t\tthis.$posts.append(response.data.output);\n\t\t\t\t}\n\n\t\t\t\tif (this.state.paged >= response.data.total_pages) {\n\t\t\t\t\tthis.$loadmore.remove();\n\t\t\t\t} else {\n\t\t\t\t\tthis.$loadmore.show();\n\t\t\t\t}\n\n\t\t\t\tif (scroll) {\n\t\t\t\t\t$(\"html, body\").animate(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tscrollTop:\n\t\t\t\t\t\t\t\tthis.$posts.offset().top -\n\t\t\t\t\t\t\t\t(window.innerWidth > 1124 ? 300 : 200),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t300\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.always(() => {\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.$loading.hide();\n\t\t\t});\n\t};\n}\n\nexport default new OfTheEssenceArchive();\n","function NativeTout() {\n\tthis.init = () => {\n\t\tthis.initObserver();\n\n\t\t// Track page blocks.\n\t\tthis.trackBlocks();\n\n\t\t// Track on the infinite scrolled articles.\n\t\t$(window).on(\"ess_article_loaded\", this, this.trackRightrail);\n\t\t$(window).on(\"ess_article_loaded\", this, this.trackArticleHeader);\n\n\t\t// Track on the initial article load.\n\t\tif ($(\".pubstack-post-header\").length) {\n\t\t\tthis.trackRightrail(null, $(\".pubstack-post-header\").first());\n\t\t\tthis.trackArticleHeader(null, $(\".pubstack-post-header\").first());\n\t\t}\n\t};\n\n\t/**\n\t * Impression observer.\n\t */\n\tthis.initObserver = () => {\n\t\t// Observer to detect Native Tout.\n\t\tconst nativeToutObserver = new IntersectionObserver(\n\t\t\t(entries, observer) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.intersectionRatio > 0) {\n\t\t\t\t\t\t$(window).trigger(\"analytics:event:nativetout\", [\n\t\t\t\t\t\t\tentry.target,\n\t\t\t\t\t\t\t\"impression\",\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tnativeToutObserver.unobserve(entry.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{ threshold: 0 }\n\t\t);\n\t\tthis.observer = nativeToutObserver;\n\t};\n\n\t/**\n\t * Track sponsored headlines impression/click in the article rightrail.\n\t */\n\tthis.trackRightrail = function (e, header) {\n\t\tconst nativeTout = header.next().find(\".entry-rightrail .js-native-tout\");\n\t\tif (nativeTout.length) {\n\t\t\tnativeTout.each((index, tout) => {\n\t\t\t\t// Track impression\n\t\t\t\tthis.observer.observe(tout);\n\n\t\t\t\t// Track click\n\t\t\t\t$(tout)\n\t\t\t\t\t.closest(\".blog-data\")\n\t\t\t\t\t.find(\"a.article-title\")\n\t\t\t\t\t.on(\"click\", function () {\n\t\t\t\t\t\t$(window).trigger(\"analytics:event:nativetout\", [tout, \"click\"]);\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Track sponsored headlines impression/click in the page blocks.\n\t */\n\tthis.trackBlocks = () => {\n\t\tconst topicNativeTouts = $(\".essence-promo, .essence-topic\").find(\n\t\t\t\".js-native-tout\"\n\t\t);\n\t\tif (topicNativeTouts.length) {\n\t\t\ttopicNativeTouts.each((index, tout) => {\n\t\t\t\t// Track impression\n\t\t\t\tthis.observer.observe(tout);\n\n\t\t\t\t// Track click\n\t\t\t\t$(tout)\n\t\t\t\t\t.closest(\".essence-promo, .essence-topic\")\n\t\t\t\t\t.find(\".essence-topic__link\")\n\t\t\t\t\t.on(\"click\", function () {\n\t\t\t\t\t\t$(window).trigger(\"analytics:event:nativetout\", [tout, \"click\"]);\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Track sponsored headline note in the article content header - which means the article is actually viewed.\n\t */\n\tthis.trackArticleHeader = function (e, header) {\n\t\tconst nativeTout = header.next().find(\".article__header .js-native-tout\");\n\t\tif (nativeTout.length) {\n\t\t\tnativeTout.each((index, tout) => {\n\t\t\t\t// Track view\n\t\t\t\t$(window).trigger(\"analytics:event:nativetout\", [tout, \"view\"]);\n\t\t\t});\n\t\t}\n\t};\n}\n\nexport default new NativeTout();\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}","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}","function PlaylistSchedule() {\n\n this.$modal = $(\"#playlist-schedule-modal\");\n\n this.init = () => {\n\t\tif (this.$modal.length) {\n\t\t\tthis.register();\n\t\t}\n\t};\n\n this.show = () => {\n this.$modal.fadeIn();\n $(\"body\").addClass(\"modal-open\");\n\t};\n\n\tthis.close = () => {\n\t\tthis.$modal.fadeOut(400);\n\t\t$(\"body\").removeClass(\"modal-open\");\n\t};\n\n\tthis.register = () => {\n\t\tthis.$modal.find(\".close\").on(\"click\", this.close);\n $(\"#playlist_schedule\").on(\"click\", this.show);\n\t};\n}\n\nexport default new PlaylistSchedule();\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\n * Implement Nativo in JavaScript\n */\nfunction Sponsored() {\n let queue = [];\n\n this.init = function () {\n $(window).on(\n \"injector:inject_widgets_injected\",\n this,\n this.maybeRenderNativo\n );\n };\n\n const viewPortHeight = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n const rootMargin = Math.floor(viewPortHeight);\n\n // Observer to detect Nativo\n const nativoObserver = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio > 0) {\n const el = $(entry.target);\n renderNativo(el);\n observer.unobserve(entry.target);\n }\n });\n },\n { rootMargin: `0px 0px ${rootMargin}px 0px`, threshold: 0 }\n );\n\n // Observer to detect if Nativo is rendered; if not, show fallback content\n const nativoRenderObserver = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n const el = $(entry.target);\n const nativoRendered = el.find(\".ntv-card\").not(\":empty\");\n\n if (nativoRendered.length) {\n el.find(\n `.card-blog:not(.ntv-card):gt(${4 - nativoRendered.length})`\n ).remove();\n if (nativoRendered.length === el.find(\".ntv-card\").length) {\n observer.unobserve(entry.target);\n }\n }\n\n el.find(\".card-blog\").not(\":empty\").last().addClass(\"last-card-blog\");\n });\n },\n { threshold: 0 }\n );\n\n function renderNativo(appendTo) {\n let IDs = window.siteSettings?.nativoIDs || [\"1120057\", \"1120058\"];\n let ID3 = window.siteSettings?.nativoID3 || \"1120059\";\n\n $(\".ntv-div.n1, .ntv-div.n2\").removeClass(\"n1 n2\");\n\n appendTo\n .append('<div class=\"card-blog ntv-div n1\"></div>')\n .append('<div class=\"card-blog ntv-div n2\"></div>');\n\n if (\n $(\".pubstack-post-header\").index(appendTo.closest(\"article\").prev()) >= 1\n ) {\n appendTo.append('<div class=\"card-blog ntv-div n3\"></div>');\n IDs.push(ID3);\n }\n\n nativoRenderObserver.observe(appendTo[0]);\n\n if (typeof PostRelease !== \"undefined\") {\n PostRelease.Start({ ptd: IDs });\n } else {\n console.warn(\"PostRelease is not defined! Adding IDs to queue.\");\n queue = [...queue, ...IDs];\n }\n }\n\n this.maybeRenderNativo = function (_, $article) {\n const $el = $article.find(\".read-more-blog\");\n if ($el.length) {\n nativoObserver.observe($el[0]);\n }\n };\n}\nexport default new Sponsored();\n","import Sponsored from \"../../../pubstack/assets/js/sponsored\";\n\n// Define site-specific settings\nwindow.siteSettings = {\n\tnativoIDs: [\"1120057\", \"1120058\"],\n\tnativoID3: \"1120059\",\n};\n\n// Override settings for testing\nconst firstArticle = $(\".pubstack-post-header:first\");\nif (firstArticle.length) {\n\tlet targeting = firstArticle.data(\"page_targeting\");\n\tif (targeting?.environment === \"test\") {\n\t\twindow.siteSettings.nativoIDs = [\"1117850\", \"1117859\"];\n\t\twindow.siteSettings.nativoID3 = \"1120038\";\n\t}\n}\n\n// Initialize Sponsored.js once\n$(document).ready(() => {\n\tSponsored.init();\n});\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 css\nimport \"./sass/footer.scss\";\n\nimport expandedMenu from \"./js/expanded-menu\"; // 2KB\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 \"sticky-kit/dist/sticky-kit.js\";\nimport Analytics from \"../../pubstack/assets/js/utils/analytics\"; // 4KB\nimport \"./js/blocks/event-upcoming-experiences\";\nimport \"./js/blocks/event-vod-promo\";\n\nlet analyticsInstance = new Analytics();\nrequire(\"./js/ads/cordial-footer\");\n\nimport articleOembed from \"./js/article/article-oembed\";\nimport Footer from \"./js/footer\";\nimport ofTheEssenceArchive from \"./js/of-the-essence-archive\";\nimport nativeTout from \"./js/native-tout\";\n\nrequire(\"../../pubstack/assets/js/ads/cls\");\n\nimport VideoJw from \"../../pubstack/assets/js/video-jw\";\nimport IasVideo from \"../../pubstack/assets/js/ads/ias-video\";\nimport PlaylistPlayer from \"./js/blocks/playlist-player\";\nimport PlaylistModal from \"./js/blocks/playlist-schedule\";\nimport \"./js/sponsored\";\nnew IasVideo();\n\n$(function () {\n\tsetTimeout(function () {\n\t\tanalyticsInstance.init();\n\t\tnew VideoJw().init();\n\t\t$(window).on(\"injector:footer-load\", () => {\n\t\t\tFooter.init();\n\t\t});\n\t\tofTheEssenceArchive.init();\n\t\tnativeTout.init();\n\t\texpandedMenu();\n\t\tarticleOembed();\n\n\t\t// Newsletter Subscribe\n\t\tPlaylistModal.init();\n\t\tEmailPreferences.init();\n\t\tSubscribeModal.init();\n\t\tEmailUnsubscribe.init();\n\t\tNewsletterBlock.init();\n\t\tPlaylistPlayer();\n\t}, 0);\n});\n\n// Home subscribe menu in mobile view under main nav.\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\tconst subscribeSelect = document.querySelector(\n\t\t\".subscribe-wrapper .site-subscribe__select\"\n\t);\n\tconst dropdown = document.querySelector(\n\t\t\".subscribe-wrapper .site-subscribe__select-dropdown\"\n\t);\n\n\t// Toggle dropdown when clicking the select element\n\tsubscribeSelect.addEventListener(\"click\", function (e) {\n\t\te.stopPropagation(); // Prevent immediate closing\n\t\tdropdown.classList.toggle(\"active\");\n\t});\n\n\t// Close dropdown when clicking anywhere else\n\tdocument.addEventListener(\"click\", function (e) {\n\t\tif (!subscribeSelect.contains(e.target)) {\n\t\t\tdropdown.classList.remove(\"active\");\n\t\t}\n\t});\n\n\t// Optional: Prevent closing when clicking inside dropdown\n\tdropdown.addEventListener(\"click\", function (e) {\n\t\te.stopPropagation();\n\t});\n});\n","/**\n * Javascript for Analytics\n *\n **/\n\nfunction Analytics() {\n this.init = function () {\n $(window).on(\"analytics:pageView\", this, this.ga);\n $(window).on(\"analytics:pageView\", this, this.parsely);\n $(window).on(\"analytics:event:nativetout\", this, this.native);\n $(window).on(\"analytics:event:iscrollView\", this, this.iscrollView);\n\n window.ess_analytics = this;\n $(\"audio\").each((index, audio) => {\n $(audio).on(\"play\", () => {\n dataLayer.push({ event: \"analytics:audioplay:ga\" });\n });\n });\n this.parsely();\n };\n\n this.ga = function (event, hash, post_data) {\n if (typeof post_data !== \"object\") {\n post_data = JSON.parse(post_data);\n }\n\n let set_pageview = {\n event: \"analytics:pageView:ga\",\n page: post_data.page_slug,\n title: post_data.post_title,\n location: post_data.page_url,\n };\n\n dataLayer.push(set_pageview);\n };\n\n this.parsely = function (event, hash, post_data) {\n if (typeof PARSELY !== \"undefined\" && PARSELY.beacon) {\n var parsely_url = location.href.replace(location.hash, \"\");\n var parsely_urlref = location.href;\n\n PARSELY.beacon.trackPageView({\n url: parsely_url,\n urlref: parsely_urlref,\n js: 1,\n });\n }\n };\n\n this.iscrollView = function (event, slot_number) {\n let push_event = {\n event: \"analytics:iscroll:ga\",\n eventCategory: \"iscroll\",\n eventAction: \"view\",\n eventLabel: slot_number,\n };\n dataLayer.push(push_event);\n };\n\n this.native = function (event, tout, eventAction) {\n const analytics = JSON.parse(tout.dataset.analytics);\n let push_event = {\n event: \"analytics:campaign:ga\",\n eventCategory: analytics.location,\n eventAction,\n eventLabel: analytics.client_name,\n gacd25: analytics.post_id,\n na_client_id: analytics.client,\n na_campaign_id: analytics.campaign,\n na_campaign_name: analytics.campaign_name,\n title: analytics.title,\n location: analytics.url,\n };\n dataLayer.push(push_event);\n };\n}\n\nexport default Analytics;\n","import extScriptLoaded from \"../utils/script-loaded\";\n\nexport default function articleOembed() {\n\tconst renderInstagram = () => {\n\t\textScriptLoaded(\n\t\t\t() => typeof window.instgrm !== \"undefined\",\n\t\t\t() => {\n\t\t\t\twindow.instgrm.Embeds.process();\n\t\t\t}\n\t\t);\n\t};\n\n\tconst iscrollRenderInstagram = (event, header) => {\n\t\tif (header.next().find(\".ess-embed-content.instagram\").length) {\n\t\t\trenderInstagram();\n\t\t}\n\t};\n\n\tconst initialRenderInstagram = () => {\n\t\tif ($(\".ess-embed-content.instagram\").length) {\n\t\t\trenderInstagram();\n\t\t}\n\t};\n\n\tconst init = () => {\n\t\tinitialRenderInstagram();\n\t\t$(window).on(\"omebed:renderInstagram\", iscrollRenderInstagram);\n\t};\n\n\tinit();\n}\n","function expandedMenu() {\n\tconst toggleNav = function (el) {\n\t\tconst overlay = document.querySelector(\".overlay\");\n\t\tconst contentEl = document.querySelector(\".site\");\n\n\t\tif (el.classList.contains(\"open\")) {\n\t\t\tel.classList.remove(\"open\");\n\t\t\toverlay.style.display = \"none\";\n\t\t\tcontentEl.style.overflow = \"initial\";\n\t\t\tcontentEl.style.height = \"auto\";\n\t\t} else {\n\t\t\tel.classList.add(\"open\");\n\t\t\toverlay.style.display = \"block\";\n\t\t\tcontentEl.style.overflow = \"hidden\";\n\t\t\tcontentEl.style.height = \"0\";\n\t\t}\n\n\t\toverlay.addEventListener(\"click\", (e) => {\n\t\t\ttoggleNav(el);\n\t\t});\n\t};\n\n\t$(window).on(\"injector:expandedmenu-load\", () => {\n\t\tconst hamburgerMenu = document.querySelector(\".hamburger-menu\");\n\t\tconst searchEl = document.querySelector(\".site-branding .search\");\n\t\tconst closeEl = document.querySelector(\".expanded-menu .close\");\n\n\t\tif (hamburgerMenu) {\n\t\t\thamburgerMenu.addEventListener(\"click\", (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst expandedMenu = document.querySelector(\".expanded-menu\");\n\t\t\t\tif (expandedMenu) {\n\t\t\t\t\ttoggleNav(expandedMenu);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (searchEl) {\n\t\t\tsearchEl.addEventListener(\"click\", (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst expandedMenu = document.querySelector(\".expanded-menu\");\n\t\t\t\tif (expandedMenu) {\n\t\t\t\t\ttoggleNav(expandedMenu);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (closeEl) {\n\t\t\tcloseEl.addEventListener(\"click\", (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst expandedMenu = document.querySelector(\".expanded-menu\");\n\t\t\t\tif (expandedMenu) {\n\t\t\t\t\ttoggleNav(expandedMenu);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t//sticky header\n\t\tconst header = document.getElementById(\"masthead\");\n\t\tconst wpAdminMenu = document.getElementById(\"wpadminbar\");\n\t\tconst extraspace = wpAdminMenu ? wpAdminMenu.offsetHeight : 0;\n\t\tconst sticky = header ? header.offsetHeight + extraspace : 0;\n\n\t\twindow.addEventListener(\n\t\t\t\"scroll\",\n\t\t\tessThrottle(function () {\n\t\t\t\tif (window.pageYOffset > sticky /*&& unstick > window.pageYOffset*/) {\n\t\t\t\t\tif (header) {\n\t\t\t\t\t\theader.classList.add(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t\tif (wpAdminMenu) {\n\t\t\t\t\t\twpAdminMenu.classList.add(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (header) {\n\t\t\t\t\t\theader.classList.remove(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t\tif (wpAdminMenu) {\n\t\t\t\t\t\twpAdminMenu.classList.remove(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\t// Expanded menu sub menu toggle.\n\t\t$(\".expanded-menu .current-menu-parent\")\n\t\t\t.addClass(\"expanded\")\n\t\t\t.find(\".sub-menu\")\n\t\t\t.show();\n\t\t$(\".expanded-menu .menu-item-has-children > a\").on(\"click\", function (e) {\n\t\t\tif (e.offsetX > e.target.offsetWidth - 40) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst parent = $(e.target).parent();\n\n\t\t\t\tif (\n\t\t\t\t\t$(\"#menu-expanded-menu li\").hasClass(\"expanded\") &&\n\t\t\t\t\t!parent.hasClass(\"expanded\")\n\t\t\t\t) {\n\t\t\t\t\t$(\"#menu-expanded-menu li\").find(\".sub-menu\").slideUp();\n\t\t\t\t\t$(\"#menu-expanded-menu li\").removeClass(\"expanded\");\n\t\t\t\t}\n\t\t\t\tparent.toggleClass(\"expanded\");\n\t\t\t\tif (parent.hasClass(\"expanded\")) {\n\t\t\t\t\tparent.find(\".sub-menu\").slideDown();\n\t\t\t\t} else {\n\t\t\t\t\tparent.find(\".sub-menu\").slideUp();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\nexport default expandedMenu;\n","// Callback on script loaded\nexport default function extScriptLoaded(test, fn) {\n\tconst callbackTimer = setInterval(function() {\n\t\tlet call = false;\n\t\ttry {\n\t\t\tcall = test.call();\n\t\t} catch (e) {}\n\n\t\tif (call) {\n\t\t\tclearInterval(callbackTimer);\n\t\t\tfn.call();\n\t\t}\n\t}, 100);\n}\n","/**\n * PlayList Video Player\n */\n\nfunction PlaylistPlayer() {\n if (!$(\".playlist-player-module\").length) {\n return;\n }\n\n function layoutPlayer() {\n var playerHeight = $('#player').height();\n var watchLiveHeight = $('.jw-player-more').height();\n\n if ($(window).width() < 768) {\n $(\"#playlist\").height(264);\n } else {\n $(\"#playlist\").height(playerHeight - watchLiveHeight - 65);\n }\n\n }\n\n let efocResizeTimer = 0;\n $(window).on(\"resize\", function () {\n clearTimeout(efocResizeTimer);\n efocResizeTimer = setTimeout(() => {\n layoutPlayer();\n }, 10);\n });\n\n $(window).on(\"load\", function() {\n layoutPlayer();\n })\n\n function updateUI() {\n observeDone = true;\n layoutPlayer();\n }\n\n let observeDone = false;\n const observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(mutation) {\n let shouldUpdate = false;\n if ( !observeDone ) {\n if (mutation.addedNodes && mutation.addedNodes.length > 0) {\n for (let i = 0; i < mutation.addedNodes.length; i++) {\n let node = mutation.addedNodes[i];\n if (node.nodeType === 1 && (node.querySelector('.playlist-item') || node.classList.contains('playlist-item') )) {\n shouldUpdate = true;\n break;\n }\n }\n }\n\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n shouldUpdate = true;\n }\n\n if (shouldUpdate) {\n updateUI();\n }\n }\n });\n });\n\n const config = {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['class']\n };\n\n observer.observe(document.body, config);\n}\n\nexport default PlaylistPlayer;\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","$","each","index","el","Swiper","navigation","nextEl","parent","find","prevEl","slidesPerView","spaceBetween","loop","breakpoints","googletag","cmd","adStyleSet","$ad","type","css","ad_iframe","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","hasClass","play","pause","observe","instance","setup","jwplayerQueue","shift","$videoBox","target","player_id","intersectionRatio","myPlayer","setFloating","attr","not","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","$container","$tracksToSync","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","win","stick_in_parent","opts","doc","elm","enable_bottoming","inner_scrolling","manual_spacer","offset_top","outer_width","parent_selector","recalc_every","sticky_class","_fn","_i","_len","spacer","bottoming","computed","w","getComputedStyle","parseFloat","getPropertyValue","outerWidth","padding_bottom","parent_top","parent_height","el_float","detached","bottomed","detach","fixed","last_pos","last_scroll_height","recalc","recalc_and_tick","recalc_counter","tick","border_top","padding_top","restore","parseInt","insertAfter","position","bottom","display","delta","recalced","scroll","will_bottom","win_height","max","min","after","append","off","removeData","_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","isFormValid","validateList","ERROR_REQUIRED_CLASS","ERROR_INVALID_EMAIL_CLASS","ERROR_INVALID_CONFIRM_CLASS","ERROR_INVALID_PHONE_CLASS","isValid","field","classList","hasAttribute","trim","add","$email","isFieldValid","map","hide","doSubscribeAjax","$form","successCallback","failCallback","alwaysCallback","$button","$response","$loading","serialize","crdlID","localStorage","getItem","encodeURIComponent","cID","setItem","trackCordialNewsletter","trackSMSCordialNewsletter","href","$banner","$sms_copy","phone","message","replaceWith","replaceWithSmsSuccess","replaceWithSuccess","isPhoneAvailable","fail","xhr","textStatus","responseJSON","errorKey","console","log","showDuplicatedMessage","showErrorMessage","always","removeAttr","properties","email","firstName","channels","subscribeStatus","first_name","Essence_SMS_Subscribers","sms","address","programs","promos","keyword","$checkbox","$subscribeButton","register","handleCheckbox","is","submit","phoneInputField","querySelector","handleCloseError","classToRemove","parentElement","className","replace","phoneInput","intlTelInput","utilsScript","isValidNumber","getNumber","intlTelInputUtils","numberFormat","E164","wrapper","invalidPhoneDiv","invalidRequiredDiv","appendChild","moveErrorDivs","querySelectorAll","button","$modal","$emailModal","$smsModal","$backdrop","displayed","showEmailModal","one","fadeIn","focus","showSmsModal","scheduleSmsModal","closeModal","fadeOut","blur","close","blocks","selectors","Array","footer","footerMagenta","footerFixed","content","observeFooter","observeFooterFixed","style","transform","boundingClientRect","_toPropertyKey","input","hint","prim","toPrimitive","res","String","_defineProperty","$toggleSearchBtn","$clearSearchBtn","$toggleFiltersBtn","$searchInput","$filters","$filterHead","$dateFilter","$volumeFilter","$issueFilter","$posts","$loadmore","$ajax","loading","search","year","month","day","volume","issue","paged","parseURL","updateLayout","registerEvents","updateURL","URL","searchParams","set","delete","history","pushState","params","URLSearchParams","toggleSlide","date","parts","clear","abort","empty","_wpnonce","OTE_ARCHIVE_NONCE","success","output","total_pages","innerWidth","trackBlocks","trackRightrail","trackArticleHeader","nativeToutObserver","unobserve","header","nativeTout","tout","topicNativeTouts","_defineProperties","props","descriptor","IasVideo","Constructor","update","playerAdded","protoProps","id_","video","adsManager","ima3","googleImaVansAdapter","google","anId","campId","chanId","ias_xps","ias_xbp","ias_xar","ima","settings","setDisableCustomPlaybackForIOS10Plus","_arrayLikeToArray","arr","len","arr2","_toConsumableArray","isArray","from","minLen","toString","queue","maybeRenderNativo","viewPortHeight","nativoObserver","appendTo","IDs","ID3","siteSettings","nativoIDs","nativoID3","nativoRenderObserver","PostRelease","Start","ptd","nativoRendered","last","_","$el","firstArticle","targeting","environment","ready","Sponsored","analyticsInstance","ga","parsely","native","iscrollView","ess_analytics","audio","dataLayer","hash","JSON","parse","set_pageview","page","page_slug","PARSELY","beacon","parsely_url","parsely_urlref","trackPageView","urlref","js","slot_number","push_event","eventCategory","eventAction","eventLabel","analytics","dataset","client_name","gacd25","na_client_id","client","na_campaign_id","campaign","na_campaign_name","campaign_name","renderInstagram","toggleNav","VideoJw","Footer","ofTheEssenceArchive","overlay","contentEl","contains","overflow","hamburgerMenu","searchEl","closeEl","expandedMenu","wpAdminMenu","extraspace","offsetHeight","sticky","pageYOffset","offsetX","offsetWidth","slideUp","slideDown","instgrm","Embeds","process","PlaylistModal","EmailPreferences","SubscribeModal","EmailUnsubscribe","NewsletterBlock","layoutPlayer","observeDone","MutationObserver","mutations","mutation","shouldUpdate","addedNodes","node","nodeType","attributeName","childList","subtree","attributes","attributeFilter","playerHeight","watchLiveHeight","PlaylistPlayer","subscribeSelect","dropdown","stopPropagation","toggle"],"sourceRoot":""}