Marlins reflect on childhood experiences as multi-sport athletes


Marlins reflect on childhood experiences as multi-sport athletes | FOX Sports

‘, ‘‘, ‘See Full Coverage’, ‘‘, ‘

‘, ‘close‘, ‘

‘, ”, ”]; if (!isSmallContainer) { var flags = [‘

‘, ‘

‘, ‘‘, ‘

‘, ‘

vs

‘, ‘

‘, ‘‘, ‘

‘, ‘

‘].join(”); endcardLayout.splice(2, 0, flags); } endcardLayout = endcardLayout.join(”); playerElem.insertAdjacentHTML(‘afterend’, endcardLayout); var endcardElem = document.getElementById(endcardLayoutId); var endcardCloseElem = document.getElementById(endcardLayoutCloseId); var endcardFullCavElem = document.getElementById(endcardFullCavId); var seconds = 0; var timeInterval = setInterval(function () { if (seconds === 9) { endcardCloseClick(); return; } seconds++; }, 1000); var endacardFullCavClick = function endacardFullCavClick() { return window.open(fullCoverageUrl, target); }; if (!isEmbed) { endcardFullCavElem.addEventListener(‘click’, endacardFullCavClick); } var endcardCloseClick = function endcardCloseClick(e) { endcardCloseElem.removeEventListener(‘click’, endcardCloseClick); !isEmbed && endcardFullCavElem.removeEventListener(‘click’, endacardFullCavClick); clearInterval(timeInterval); endcardElem.remove(); _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_0__[“default”].dispatchEvent(‘onForcePlay’, { player: data.player }); }; endcardCloseElem.addEventListener(‘click’, endcardCloseClick); } }]); return FsVideoWcEndcard;
}(); /* harmony default export */ __webpack_exports__[“default”] = (new FsVideoWcEndcard()); /***/ }), /***/ “./assets/components/platformPlayer/Pinner.js”:
/*!****************************************************!*\ !*** ./assets/components/platformPlayer/Pinner.js ***! \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _components_fsUtils_Viewports__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../components/fsUtils/Viewports */ “./assets/components/fsUtils/Viewports.js”);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(“Cannot call a class as a function”); } } function _defineProperties(target, props) { for (var i = 0; i 0) { while (i–) { var el = arr[i]; if (el.elem === ‘Video’ + vid.id || el.elemId === ‘Video’ + vid.id) { return true; } } } return false; } }, { key: “loadVideos”, value: function loadVideos(Player, videoElementsData) { var sendPageView = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var context = this; var videos = videoElementsData || context.getVideoElementsData(); if (videos.length > 0) { videos.map(function (videoData) { if (!window.fngPlayers) window.fngPlayers = []; if (!context.ArrayContainsVideo(window.fngPlayers, videoData)) { Object(_foxdcg_fs_segment_analytics__WEBPACK_IMPORTED_MODULE_3__[“getAuthData”])().then(function (res) { videoData.auth = res; var videoPlayer = new _components_jw_player_JWPlayer__WEBPACK_IMPORTED_MODULE_1__[“default”](Player, videoData); videoData.sendPageView = sendPageView; window.fngPlayers.push(videoPlayer); }); } }); } } }, { key: “loadPlatformVideos”, value: function loadPlatformVideos(FDM_Player, videoElementsData) { var sendPageView = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var context = this; var videos = videoElementsData || context.getVideoElementsData(); if (videos.length > 0) { videos.map(function (videoData) { if (!window.fdmPlayer) window.fdmPlayer = []; if (!context.ArrayContainsVideo(window.fdmPlayer, videoData)) { var videoPlayer = new _fsVideo__WEBPACK_IMPORTED_MODULE_0__[“default”](); videoData.sendPageView = sendPageView; videoPlayer.initializeFSPlayer(videoData, FDM_Player); window.fdmPlayer.push(videoPlayer.player); } }); } } }, { key: “loadScript”, value: function loadScript(callback, videoElementsData, sendPageView) { if (typeof FDM_Player === ‘function’) { callback(FDM_Player, videoElementsData, sendPageView); } else { // Create a new script and setup the basics. var script = document.createElement(“script”); var firstScript = document.getElementsByTagName(‘script’)[0]; script.async = false; script.src = function (loc) { var metaEl = document.querySelector(‘[fs-prop=”video”]’); var scripturl = metaEl && metaEl.getAttribute(“script”); if (scripturl === null) { scripturl = ‘//player.foxdcg.com/sports’; } if (window.location.search.indexOf(‘debugVideoPlayer’) > -1) { if (scripturl.indexOf(‘?’) > -1) scripturl = scripturl + ‘&debug=all’;else scripturl = scripturl + ‘?debug=all’; } return scripturl; }(window.location); // Handle the case where an optional callback was passed in. script.onload = function () { if (typeof FDM_Player === ‘function’) { callback(FDM_Player, videoElementsData, sendPageView); } else if (typeof FNGPlayer.default === ‘function’) { callback(FNGPlayer, videoElementsData, sendPageView); } else { throw new Error(‘FDM_Player failed to load’); } // Clear it out to avoid getting called more than once or any memory leaks. script.onload = script.onreadystatechange = undefined; }.bind(this); script.onreadystatechange = function () { if (“loaded” === script.readyState || “complete” === script.readyState) { script.onload(); } }; //Attach the script tag to the page (before the first script) so the magic can happen. firstScript.parentNode.insertBefore(script, firstScript); } return this; } }]); return criticalVideoLoader;
}(); window.criticalVideoLoader = new criticalVideoLoader();
/* harmony default export */ __webpack_exports__[“default”] = (criticalVideoLoader); /***/ }), /***/ “./assets/components/platformPlayer/fsVideo.js”:
/*!*****************************************************!*\ !*** ./assets/components/platformPlayer/fsVideo.js ***! \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Pinner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Pinner */ “./assets/components/platformPlayer/Pinner.js”);
/* harmony import */ var _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/fsUtils/TrackingUtils */ “./assets/components/fsUtils/TrackingUtils.js”);
/* harmony import */ var _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FsVideoEventHandler */ “./assets/components/platformPlayer/FsVideoEventHandler.js”);
/* harmony import */ var _components_fsUtils_Viewports__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/fsUtils/Viewports */ “./assets/components/fsUtils/Viewports.js”);
/* harmony import */ var _fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../fsUtils/fsPlayerUtils */ “./assets/components/fsUtils/fsPlayerUtils.js”);
function _typeof(obj) { if (typeof Symbol === “function” && typeof Symbol.iterator === “symbol”) { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === “function” && obj.constructor === Symbol && obj !== Symbol.prototype ? “symbol” : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(“Cannot call a class as a function”); } } function _defineProperties(target, props) { for (var i = 0; i .trending-title’); _this.urlQuery = location.search; _this.isModalEnabled = document.body.classList.contains(‘video-modal’); _this.bodySection = document.querySelector(‘.body-content’); _this.isSectionFront = document.body.classList.contains(‘single-fox_sectionfront’); _this.isCollectionSF = !!document.querySelector(‘.collections-section-front’); _this.isMediaHub = document.body.classList.contains(‘single-fox_media_hub’); _this.isBB = _this.bodySection ? _this.bodySection.classList.contains(‘body-content-big-board’) : false; _this.viewports = new _components_fsUtils_Viewports__WEBPACK_IMPORTED_MODULE_3__[“default”](); _this.currentUrl = location.href; if (trendingTitleEl != null) { _this.collectionOneUtm.term = _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].formatStringAsSlug(trendingTitleEl.innerHTML); } return _this; } _createClass(FsVideo, [{ key: “initPlayer”, value: function initPlayer(playerId, playerData) { //init player var player = new FDM_Player(playerId); // set player settings directly player.autoplay = playerData.autoplay; player.share_embed = playerData.share_embed; player.endcard = playerData.endcard; player.endcard_feed = playerData.endcard_feed; player.endcard_countdown = playerData.endcard_countdown; player.releaseURL = playerData.releaseURL; player.tag = playerData.tag ? playerData.tag : ”; player.title = playerData.title ? playerData.title : ”; player.vid = playerData.vid ? playerData.vid : null; player.url = playerData.url ? playerData.url : ”; player.endcard_autoadvance = playerData.endcard_autoadvance ? playerData.endcard_autoadvance : false; player.siteSection = playerData.siteSection ? playerData.siteSection : ”; if (playerData.categoryName) player.categoryName = playerData.categoryName; if (playerData.adpol) player.freewheel_keyvalue = encodeURIComponent(‘adpol=’ + playerData.adpol); if (playerData.wcEndcard) player.wcEndcard = playerData.wcEndcard; return player; } /** * gets player data from url */ }, { key: “getPlayerDataFromUrl”, value: function getPlayerDataFromUrl() { var urlQuery = location.search; var videourl = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “videourl”); var autoplay = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “autoplay”); var share = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “share”); var endcard_feed = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “endcard_feed”); var siteSection = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “siteSection”); var category = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “category”); var endcard_autoadvance = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “endcard_autoadvance”); var url = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “url”); var isAmp = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “amp”); var host = location.protocol + ‘//’ + location.hostname + ‘/’; var deepLink = “http://www.foxsports.com/” + category + ‘/video/’; var iframeurl = host + ‘video-embed?videourl=’ + videourl + ‘&share=’ + share + ‘&siteSection=’ + siteSection + ‘&autoplay=’ + autoplay + ‘&category=’ + category + ‘&endcard_autoadvance=’ + endcard_autoadvance + (endcard_feed ? ‘&endcard_feed=’ + endcard_feed : ”); var isWCEndacrd = Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “wcEndcard”) === ‘true’; var vid = decodeURIComponent(url).split(‘/’).pop(); var wcEndcard = false; if (isWCEndacrd) { wcEndcard = { homeTeamCountryImgSrc: decodeURIComponent(Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “homeTeam”)), awayTeamCountryImgSrc: decodeURIComponent(Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “awayTeam”)), fullCoverageUrl: “https://www.foxsports.com” + decodeURIComponent(Object(_fsUtils_fsPlayerUtils__WEBPACK_IMPORTED_MODULE_4__[“getParam”])(urlQuery, “fcUrl”)) }; } return { releaseURL: decodeURIComponent(videourl), autoplay: autoplay, share: share, endcard_feed: decodeURIComponent(endcard_feed), isAmp: isAmp, siteSection: siteSection, category: category, endcard_autoadvance: endcard_autoadvance, url: url, deeplink: deepLink, iframeurl: iframeurl, vid: vid, wcEndcard: wcEndcard }; } /** * initializes FS video embed player * @param {*} data – player data */ }, { key: “initializeFSPlayer”, value: function initializeFSPlayer(data) { this.playerData = this.preparePlayerData(data); this.elId = this.getPlayerElement(this.playerData).id; this.el = document.getElementById(this.elId); this.utmObj = {}; //check if player has its own utm params if (typeof this.playerData.utm !== ‘undefined’) { this.utmObj = _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].getUtmObj(this.playerData.utm); } else { this.utmObj = _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].getUtmObj(_components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].getUtmParams(this.playerData.pageName)); } //init player this.player = this.initPlayer(this.elId, this.playerData); this.isPlaying = false; this.isPaused = false; this.isFullScreen = false; //init an empty set that will keep track all the videos that have been played this.playedVideos = new Set(); this.sendPageView = data.sendPageView; // set player settings using functions this.setPlayerShare(); this.setPlayerEvents(); document.addEventListener(‘visibilitychange’, this.onVisibilityChange.bind(this)); //start pinning from Pinner.js. Dont enable on iphone !this.isIphone() && this.startPinning(); this.saveToPlayerCollection(); } /** * initializes FS video embed player */ }, { key: “initializeFSEmbedPlayer”, value: function initializeFSEmbedPlayer() { //init player var playerData = this.getPlayerDataFromUrl(); this.player = this.initPlayer(“player”, playerData); this.utmObj = _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].getUtmObj({ ‘medium’: playerData.isAmp ? “amp_video_player” : “embed_video_player”, ‘source’: ’embed-video-page’, ‘content’: playerData.category, ‘term’: ” }); if (playerData.share) { this.player.share = { deeplinkfunc: function deeplinkfunc(z, A) { return playerData.deeplink + z; }, embed: true, iframeurl: playerData.iframeurl, emailscript: “”, sharetargets: [{ name: “Facebook”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNTgwMTE3NDA3MjA2ODExODA4M0NDMTM4MEMyQTVFQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCOUMxMDdGMkE2MTYxMUUyOEJFQUJDRTMzOERDQjM5MCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCOUMxMDdGMUE2MTYxMUUyOEJFQUJDRTMzOERDQjM5MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUM3QUJGQTkzODIwNjgxMThDMTQ5OEFGOTgxQUJBQ0UiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDU4MDExNzQwNzIwNjgxMTgwODNDQzEzODBDMkE1RUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4rzsvUAAADP0lEQVR42uycvU9TURiHX9ryESiiFoEIAQQDVkUGRaMghkAgGhMSNcpAiDoxkKiJRhmdhD/BQQcndVcUN4MmLiRGEye0lIIJiECQUuiHnlOLG4OX1ntanyf5Le29afs+vfc995ybm9V86YEkqFQZVDmjUq7iFEglEZUZlecq91T8+kVH4s0ulY8q/QkxyEg9rkStdc0/qHRuCKlWeaJSSI1sY5vKU5UqLeS2ShE1sR3t4I4j0TPADE47Eg0czKDCQQM3CqeDGpgFQhACCEEIIAQhkApclOA32S6HNHrLpKGuVOr2eGR3iVuKd+ZLbrZL8nJdEg5HJbQeiW+7GorIcnBdlld01mT++6p8W1iR2fmgzC8G5d37AEKssrfaIxe69supo5VSWJC7ubBsZzwavV2Jp2DTbVt6HiLkb6koLZKBviZpOVzJKctOsrJEznUekIHeI3/+8Qix68c6HTLY3ypdJ2to6iY07bvX2qS1qYphrwlcv3zceBn/jZCO5lrp7qjnwtAE9BD1xpVjXKmbQm/3ISly5yHEBNz5OXK+y5tW3zmjhZxtq49PeyDEENpP1KTdd85YIcU7CmRfjQchptDoLY1Pk6TdbEKmCvHW7trS/tFoTF6OfZa341PyaWJOlpZDElqLIMQqVeXW7479OvdDbg2/El9ggSMkWZQVuy3tpxeibg6NyuT0Ij0kmXi251vab+T1hG0yMlpITra1n/Zm3M8oKxVYvSD0BRYRYhJ6NIUQgwiGwggxiVjsJ0IAIQgBhCAEEIIQQAhCwD6MXw8Ze3w1bT4vEo1Je9+j+GojR4gB+GeWtiQDIUlmUgmhh5gkZBohRuFLwtIvQpLIlwBCjEGvo0zNIMQY9L1c6+EoQjKpfyAkmUICCOEIgdRegyAkqaesBYSYwuz8StLu5zJ+ttfqk3Wsztpu5Uk+HCEZCEIQAghBCCAEIYAQhABCEAIIAYQgBBCCEEAIQgAhCAGEAEIQAghBCCAEIYAQhABCACEIAQtCopTBGKJayAx1MIaAFvKMOhjDiBYyrLJELWxHOxjSQnwqPSrL1MQ2dO0vqkxujLJeqDSo3Ffx0+j/TQNP1FrX/KDKqH7xlwADADHHxixr3zsSAAAAAElFTkSuQmCC”, urlTemplate: “http://www.facebook.com/sharer.php?u=” }, { name: “Twitter”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAMAAABibqotAAAATlBMVEX///9Ny+dAvuFDweJJyOZEw+NCwOJMyudBv+JLyeZIxuVGxORHxeRDweNq0Orq+fyA1+3C7Pb2/P7U8vnf9fum4/KS3fBczOi06PROxeX5zaKxAAABnElEQVRYw+3UyW6DMBCA4aHBSSFkvC+8/4u2RYq8LwcOTZv/aFmfRowFTOf0Z53bOb2dF3OWc3o7ZznolACgji3PbOjMUbe5kuXwTOJxgtzMvthZpC0zSCHIzNZIoFPVYUBtkREQdahsrjoOQBWgSUGe/j6vOT/3KWaOLjETczpw1rBjXsHWuEXkDJUAavJ3UufI3aJTBsWoXWuOel6JRtIdJnfCR+JPXYmRnskdE15kN69niWVtOLuI7nJma/OINXfygXyUa1Oah7adWUK/vmOWaRCSTUcIrumQw1NnC1Mwmt7iYscNO6zp4LBjm842ui61pc49CsWYo+9JiUPMmIO5k2RGJlL3rkOQ9x2TOyRp3/sS3Ula5iD0M6TvkP7q6dZyxgdiZMTprp6ThjMO0X3UIajqjEDSdXyM08bH6Tu+u26sfNxB2WRy51Gq8qIFe9SCSxpBraCYwku10GFOOy5F/Zd8aTseauyb26rhHS/JioKXdnBNsvnXkWa/9vJOQDHNlQAAQZXTzCNNp9+/dj7P6e28mPNxTr/N+QKykG1J+VJKjAAAAABJRU5ErkJggg==”, urlTemplate: “http://twitter.com/share?url=&text=” }, { name: “googleplus”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAIAAADa0s1IAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1MTk2MjM1MjAyMkI2ODExODIyQTk5Q0E3REMxQjY1NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFNzFEQkU3NEQxREQxMUUyQTFFMDkyMkNGNjZGNjlBMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFNzFEQkU3M0QxREQxMUUyQTFFMDkyMkNGNjZGNjlBMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QzcwMDlDNTA2QzIwNjgxMTgwODNCQzhEOTRBRjBDQjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTE5NjIzNTIwMjJCNjgxMTgyMkE5OUNBN0RDMUI2NTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4yaoL9AAAETklEQVR42uyaPyxkQRzHcZdoqFSruwKVgiVscyRy5MLWwiYiQUTj/O381yp0BDW2kYjVW81SrEqDRsVdTaXZ+9y+ZDKZZ9++efa9fSfzK2TevJm3853v7/f9/Wai8s/PHxWa9iuerNC31LeEh1m/IzkPs6oqPqMZVAaVQWVQGVQGlUFlUBlUBtXnscpYLGa4MqgMKoOquH3N5XKGK4OqjB74wfmRSOR73lpbW93PSiaT29vbYURVU1MzMzPT39+vNev19XVzc/Py8jKMXEHO8vIywGizxIODg4eHBx67uroGBwcbGhrkwc/PzzADHtr39/dWw8EymYxoeyt9Kjs7O3XnwM/S0pLVZrm4kzJgfHx8bGxMoWhkZAR4br7/cVRVOU2DJQHp5ubm+PjYPmZ/f18JG2hklsufkCfmPJmeBtbW1gpIVtAXGgnadDot9yAnukEYkLITMwATj8q6FbOrHDyHEZW82bif82Ci6Pz8XO5BS0KXryJ50/o6qBSv4wuKZlxdXTl8wf7WjbxVaaFSBKDoFDufuvvie3WrjGxsbHQzlwTFSEXTPrJiN9M1uCLPKj1u4kTJuUWjMei4enl5ISRkF0LTnGVQcdR3IXV0dCg919fXDm9Lr4EKhoGBAec4IQ3I7kcSC6OysywYk3tWVlYcxssuClFFiS0ZKq1K5OnpiUJWqRio+gqNJ2sLzVhcXAxpxYQdHR2lUim5Z2JiYnZ21j4SGi33A9LU1JRCcujOwhsbG9Svcs/Q0NDp6akIMxxvZ2eHR9psQcCQ/p1E2tvbPZ+CYclaeiEDElsQ/AnfOyqhcoSWEDpwym97enoCZqk09xYsOp032tFoVKkqygKpxPeByoUMBHLUB9v/fXNmZ2Zra0s+j/2XqC4uLuyKsru7G0ydLtuX+vr6Un2LQhZmmpub5c66ujp08vb21uVVTCjUguBhX+Ri712dhDFS3N7eXqhRAYPMS7Z1HzaIPq64vr4eRg0Ez/z8vCziZ2dnVK7ZbJYqUYxpamoChuLeuCKSeHh46HsWVpKMsw0PD8/NzYlH1odfFUpK0MjgeDyu6GQikRD4y68Wq6uro6OjYnHT09MnJydvb2+FxvOK7Aw5sVisurra6qTBXIgNhbLDkrzrCwsLLleG3E9OTsp8anmHj6jgU3Y8Aklrs6FLFomwoFJqVo5YHhK037Gkjaq7u1vZew+/FGQWdoWqLLWc7/cW9jsWD3cJ4grt7u4u57N5qW7RQ90p6A15WRyQQ+GBiJ78iIgpubWoUY5YDTRD+ZovWdjNMQF5AIbIpJZ+EP0uZWNtba2vr0/Ae3x8DAUqcmgmk+nt7VWA4VfOx3hYJVMJCQWe/QzmSx3o/v8kwMCy7Dk0mzc0QMBra2tjsxgpyjEcj7l+F0peUIntpwJyXx8AlaxNHRzkzYw2KsFbNG9Wwz7AYo+/wbiciqqlpaXi05n5nzODyqAqvf0VYACumehAOSSQtwAAAABJRU5ErkJggg==”, urlTemplate: “https://plus.google.com/share?url=” }, { name: “reddit”, image: “data:image/png;base64,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V7fKKqv4QYMG+auvvlrxgWDRokU18KR9oEs3KYgZeMoppyjDtttuO3/qqaf6e++913/00Uf+r7/+qlVnmI6AYCRh8MS4Hn/8cb/mmmsGIZgwsv1tttnGz5gxQ/GXIpQmp7KEmaoufvvtN7fZZpu5L774ooZGWHXVVV3v3r3dRhttpPHSsl3fvn3dyiuvXCMdDyIgt+KKK7onnnjC7bXXXhqPmhNuu9VXX91JT3F///23++yzz9zixYtVfeGDf8KECa5z587hfS3kSS9qNZVG/sJa5fjx47U1C0Pztuq2bdv69ddf3x900EGqct58800/d+7cwIUffvjBd+rUKeAQwfkxY8ZoL1iwYIH//fff/eTJk/3BBx+saVZaaSX1995774CDnpYWmpTKMjVD5Y8++ujAxIEDB/rDDjvMS0/wbdq0Ce+z1Q3PjA3Swv3IkSP99ddf7w855JCQHmE888wzibw966yzQlpwPfvss5oWVZgWmpRAbPCdNWuW79GjR2DOrbfeqvyQWZF/++23/XXXXeePOOIIHYjbtWsX0uUSkAkJ/8ILL1Q89EIba6Apaivwe9tttw34aBQGaXtJkxKIqav77rsvMGWttdby33zzjfGlhv/HH3/4999/399xxx3+uOOO81tssYVfY401Qt5YGDL2+M8//1zzG50YmU0UbrzxxpB/8803D8KSsSVOnhhuUit1YaAOlY888kgYMmWG5bp166YDMQO+cEIXd6wfGMg32GADdaKadACWGZITIbl33nnHPf/88+6DDz5QXKw1RLgaZlWeDfauT58+OqmA1q+//urmz5/vRMjZyROfm4xAbJYjvcG98sorocIjRozQsKgMnQVZBILhnQkIhiIkGIrbZ5993C677OK23357zcJsSnqGZU/0paeEBSgNxBpJYoasiNqizkrQWB5hLCCDrps9e7aGu3fv7oYMGaLh7B+mrzALIRjTEBAtG+YDTFtlFqZhes7UqVM1zHQ4Bmgb/ddffz1Erb322o5pNpB2V6BJCARG2raFLOACQ3bccUcnizl9NpUSIrMCMIw0CMdwsZ6QGVpIedlll2lYprbaW+iV5livILRbbrklpN966601jJAL0Q+ZRLKNHmyQnTZtWo1BWRZ0WjeLL6aiNggLg3WQtvXM8ccf7y0uxvfll196WYiGAV0WjnknAXHeOExXa/RgDLri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”, urlTemplate: “http://reddit.com/submit?url=” }, { name: “stumbleupon”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAABHCAIAAADa0s1IAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MTZDQkNBMUQxREYxMUUyQTFFMDkyMkNGNjZGNjlBMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MTZDQkNBMkQxREYxMUUyQTFFMDkyMkNGNjZGNjlBMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgxNkNCQzlGRDFERjExRTJBMUUwOTIyQ0Y2NkY2OUEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgxNkNCQ0EwRDFERjExRTJBMUUwOTIyQ0Y2NkY2OUEzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aTdOkwAACxtJREFUeNrMWwuM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”, urlTemplate: “http://www.stumbleupon.com/submit?url=” }], omitSeries: true }; } this.setPlayerEvents(); } }, { key: “isIphone”, value: function isIphone() { return /iPhone/i.test(navigator.userAgent); } //save instances of player to collection }, { key: “saveToPlayerCollection”, value: function saveToPlayerCollection() { window.fsPlayerCollection = window.fsPlayerCollection || []; window.fsPlayerCollection.push(this); } /** * @desc pause other players in the page triggered by setPlay method */ }, { key: “pauseOtherPlayers”, value: function pauseOtherPlayers() { var _this2 = this; try { //returns all players except the current player the user is interacting with var players = window.fsPlayerCollection.filter(function (fsPlayer) { return fsPlayer.elId !== _this2.elId; }); } catch (e) { console.log(“VIDEO: error – “, e); } if (players.length > 0) { players.forEach(function (fsPlayer) { fsPlayer.isPinned && fsPlayer.unpin(fsPlayer.parentEl); fsPlayer.isPlaying = false; fsPlayer.player.pause(); }); } } }, { key: “pauseAllPlayers”, value: function pauseAllPlayers() { var players = window.fdmPlayer; try { players.forEach(function (player, index) { if (index !== players.length – 1) { player.releaseUrl = ”; player.releaseURL = ”; player.setReleaseCall(”); player.pause(); } }); } catch (e) { console.log(‘something went wrong’, e); } } }, { key: “onVisibilityChange”, value: function onVisibilityChange() { document.hidden && this.player.pause(); } /** * @desc event triggered on player OnMediaStart and OnMediaUnpause events * @param isAd True or False for e.data.baseClip.isAd that is passed from player OnMediaStart and OnMediaUnpause events * @returns {FsVideo} */ }, { key: “setPlay”, value: function setPlay(isAd) { this.isPlaying = true; this.isPaused = false; if (window.fsPlayerCollection) { this.pauseOtherPlayers(); } _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].sendPlay(isAd, this.player, this.utmObj); return this; } }, { key: “pause”, value: function pause() { this.player.pause(true); } /** * @desc event triggered on player OnMediaStart event * @returns {FsVideo} */ }, { key: “setPause”, value: function setPause(isAd) { this.isPlaying = false; this.isPaused = true; _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].sendPause(isAd, this.player, this.utmObj); return this; } /* get page type of where the video player is set/loaded */ }, { key: “getPageType”, value: function getPageType(playerData) { /* first 3 conditions supercedes what is set on the video config’s “pageName” which, from testing, doesn’t reflect the actual page type of where the video is set. */ if (this.isSectionFront) return ‘section-front’; // if page is section front if (this.isMediaHub) return ‘media-hub’; // if page is media hub // if page isn’t section front or media hub, but the url of the post passed on the video config is a story if (playerData.url.indexOf(‘\/story\/’) > -1) return ‘story-page’; // everything else aside from the conditions above are assumed var pageName = playerData.pageName.split(/\:/); return pageName[pageName.length – 1].replace(/ /g, “-“); } /** * send page view to Parsely on video player. We only send the page view on first click on section front pages. * We send page view only if the video ID is in the video player url that is available to us */ }, { key: “sendParselyTracking”, value: function sendParselyTracking() { //add player video id into the set if it is not in the set so that it is only tracked on the first click on that video var vid = this.player.videoinfo.id ? this.player.videoinfo.id : this.player.vid; if (_components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].isTrackable(vid, this.currentUrl) && !this.playedVideos.has(vid)) { // update player url if (vid !== this.player.vid) { this.player.url = this.getVideoUrl(this.player.videoinfo.id); this.player.vid = vid; } if (typeof PARSELY !== ‘undefined’ && _typeof(PARSELY.beacon) === ‘object’ && typeof PARSELY.beacon.trackPageView === ‘function’) { // set up for UTM Campaign tracking – FSCOM-12271 var metadata = _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].getTrackingMeta(this.player); // failover for utm_content (start with defined utmObj, metadata, videoinfo, categoryName) this.utmObj.utm_content = this.utmObj.utm_content || metadata.section || this.player.videoinfo.primary || this.playerData.categoryName; var trackingObj = { url: _components_fsUtils_TrackingUtils__WEBPACK_IMPORTED_MODULE_1__[“default”].addTrackingQuery(this.utmObj, this.player.url), // URL to be tracked urlref: location.href, js: 1 // flag indicating that this is a dynamic event, keep it “1” }; // TEMP(FOR STG/PROD): bug found on homepage “fox-five” tracking, but can’t recreate on DEV env // need reports of these two objects. window[‘utmProdTest’] = { ‘utmObj’: this.utmObj, ‘trackingObj’: trackingObj }; PARSELY.beacon.trackPageView(trackingObj); } this.playedVideos.add(this.player.videoinfo.id); } } }, { key: “setPlayerEvents”, value: function setPlayerEvents() { var _this3 = this; var player = this.player; if (this.playerData) { var playerData = this.playerData; } player.start = function () { performance.mark(“fs-videoplayer-startplayer”); return player.bind(), player; }; if (this.playerData) { if (typeof this.playerData.onMediaPause === ‘function’) { player.addEventListener(‘OnMediaPause’, function (e) { performance.mark(“fs-videoplayer-onmediapause”); playerData.onMediaPause(null, e, player); }); } } //check is free wheel enabled if (playerData && playerData.isFwEnabled == true) { player = this.setSiteSection(player, playerData.siteSection); } /** * @desc Fires when playback of the current clip is paused. */ player.addEventListener(‘OnMediaPause’, function (e) { if (this.player.wcEndcard) { _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“default”].dispatchEvent(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoPause, { e: e, player: this.player }); } try { //passing video clip OnMediaPause to check if it is an ad when setting video pause this.setPause(e.data.clip.baseClip.isAd); } catch (err) { console.log(‘Error OnMediaPause: ‘, err.message); } performance.mark(“fs-videoplayer-onmediapause”); if (playerData) playerData[“onMediaPause”] && typeof playerData.onMediaPause === ‘function’ && playerData.onMediaPause(null, e, player); }.bind(this)); /** * @desc Fires when the current clip resumes playback after having been paused. */ player.addEventListener(‘OnMediaUnpause’, function (e) { try { //passing video clip OnMediaUnpause to check if it is an ad when setting video play this.setPlay(e.data.clip.baseClip.isAd); } catch (err) { console.log(‘Error OnMediaUnpause: ‘, err.message); } }.bind(this)); /** * @desc Fires when a clip starts playing. This includes individual chapter starts within a media item. * The ClipInfo component listens for this event to update its content. This is the only event where video * or ad metadata is dispatched to the player. Video metadata can be pulled out of the event data object. */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoStart, function (e) { try { if (!e.data.baseClip.isAd && this.sendPageView) { _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“default”].dispatchEvent(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoStart, { e: e, player: this.player }); this.sendParselyTracking(); } //passing video clip OnMediaStart to check if it is an ad when setting video play this.setPlay(e.data.baseClip.isAd); } catch (err) { console.log(‘Error OnMediaStart: ‘, err.message); } if (playerData) playerData[_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoStart] && typeof playerData.onMediaStart === ‘function’ && playerData.onMediaStart(null, e, player); performance.mark(“fs-videoplayer-onmediastart”); }.bind(this)); /** * @desc Fries when clip ends */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoEnd, function (e) { _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“default”].dispatchEvent(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoEnd, { e: e, player: this.player }); }.bind(this)); /** * @desc Fires during clip playing */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoProgress, function (e) { if (player.wcEndcard) { _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“default”].dispatchEvent(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoProgress, { e: e, player: this.player }); } }.bind(this)); /** * @desc Fires when the player begins to load a new clip. */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].videoLoading, function (e) { performance.mark(“fs-videoplayer-onmedialoadstart”); }); /** * @desc Fires when the player loads */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].playerReady, function (e) { if (_this3.player.elem === e.originator.controlId) { performance.mark(“fs-videoplayer-onplayerloaded”); _FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“default”].dispatchEvent(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].playerReady, { e: e, player: _this3.player, playerData: _this3.playerData }); window.currentPlayer = player; } }); /** * @desc Fires when the release url starts */ player.addEventListener(‘OnReleaseStart’, function (e) { performance.mark(“fs-videoplayer-onreleasestart”); this.isModalEnabled && this.pauseAllPlayers(); }.bind(this)); /** * @desc Fires when user clicks on the play button */ player.addEventListener(‘OnPlayButtonClicked’, function (e) { performance.mark(“fs-videoplayer-onplaybuttonclicked”); if (this.isIphone()) { var playerId = ‘#’ + e.originator.controlId; var vidTag = document.querySelector(playerId + ‘ video’); if (!vidTag.hasAttribute(‘playsinline’)) { vidTag.setAttribute(‘playsinline’, ”); } } }.bind(this)); /** * @desc Fires when the release url starts */ player.addEventListener(_FsVideoEventHandler__WEBPACK_IMPORTED_MODULE_2__[“fsEvents”].playerFullScreen, function (e) { performance.mark(“fs-videoplayer-onfullscreen”); //set if player is fullscreen this.isFullScreen = e.data; }.bind(this)); player.start(); this.player = player; this.playerData = playerData; return this; } }, { key: “setSiteSection”, value: function setSiteSection(player, siteSectionPath) { //freewheel if (typeof siteSectionPath !== ‘”undefined”‘) { console.log(‘has siteSection’); } else { siteSectionPath = ‘/nfl/test/default’; } var fwSiteSection = siteSectionPath; // condition if siteSection already sets ‘www.’ if (fwSiteSection.indexOf(‘www.’) > -1) { fwSiteSection = fwSiteSection.replace(‘www.’, ”); } fwSiteSection = this.getAdViewport(window.innerWidth) + ‘.’ + fwSiteSection; //get adzone var adZoneVal = this.getAdZoneParam(); //assign siteSection player.siteSection = adZoneVal !== “” ? adZoneVal : fwSiteSection; return player; } }, { key: “getAdZoneParam”, value: function getAdZoneParam() { function getParameterByName(name) { name = name.replace(/[\[]/, “\\[“).replace(/[\]]/, “\\]”); var regex = new RegExp(“[\\?&]” + name + “=([^]*)”), results = regex.exec(location.search); return results == null ? “” : decodeURIComponent(results[1].replace(/\+/g, ” “)); } var adzoneParam = getParameterByName(‘adzone’); if (adzoneParam !== “”) return adzoneParam;else return ”; } /* desktop = 1024 pixels and up tablet = 768 – 1023 handheld = 767 and below Touch detection for 1023 and below would override the breakpoints */ }, { key: “getAdViewport”, value: function getAdViewport(windowWidth) { var isTouch = this.isTouchDevice(); var viewportName = ‘www’; switch (true) { case !isTouch || windowWidth > 1023: viewportName = “www”; break; case windowWidth > 767 && isTouch: viewportName = “mtab”; break; default: viewportName = “mweb”; } return viewportName; } }, { key: “isTouchDevice”, value: function isTouchDevice() { return ‘ontouchstart’ in window; } }, { key: “getVideoUrl”, value: function getVideoUrl(id) { return this.getCleanedDomain() + ‘/’ + this.playerData.categoryName + ‘/video/’ + id; } }, { key: “setPlayerShare”, value: function setPlayerShare() { if (window.innerWidth > 1024) { // older implementations incorrectly return share as a boolean if (_typeof(this.playerData.share) === ‘object’ && this.playerData.share) { this.player.share = this.playerData.share; } else { this.player.share = { showembedfunc: function showembedfunc(mid, vi) { if (vi.primary == ‘nfl’ && vi.contentType == ‘highlights’ || _typeof(this.state.clip) === ‘object’ && typeof this.state.clip !== null && this.state.clip.baseClip.contentCustomData[“non-EmbeddableHighlights”] == “true”) { return false; } else { return true; } }, emailscript: ”, sharetargets: this.playerData.fdmsharetargetsArr }; } this.player.share = { embed: true, iframeurl: this.playerData.iframeUrl }; if (typeof this.playerData.share_deeplinkfunc === ‘function’) { this.player.share.deeplinkfunc = playerData.share_deeplinkfunc; } else { this.player.share.deeplinkfunc = function (mediaId, title, guid) { return this.getVideoUrl(mediaId); }.bind(this); } } return this; } }, { key: “getCleanedDomain”, value: function getCleanedDomain() { var l = window.location; return l.origin || l.protocol + ‘//’ + l.hostname + (l.port ? ‘:’ + l.port : ”); } }, { key: “defaultOpts”, value: function defaultOpts() { // disable autoplay for mobile var autoplay = this.viewports.isMobile ? false : true; return { autoplay: autoplay, share: false, share_embed: true, endcard: true, endcard_feed: ”, endcard_countdown: true, hideMeta: false, isFwEnabled: false, iu: ”, siteSection: ”, pageLocation: ‘index’, pageName: ‘fscom::videos:video page’, releaseUrl: ”, categoryName: ”, fdmsharetargetsArr: [{ name: “Facebook”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAACl0lEQVR42u3a3UsUURzGcf+vELuI8iK6iLrIzOidoheCUC+yF4KitEAJcq11UyplVzaKyo1dEBZXslwlpUAqS6LxQszNyG3dml9zYgiJ2pyZnT20fh94Ls7VwO8zMMM5p2LNtnbDqljNWc1bNe01LX5Ne8Y5e21UMBS9BQAAABgEAABQAACgAABAAQCAAgDAqurWY3fkxMVH0hJMSkf4qYSiaQn2jfxqoHdYWrtTcr59QJpa43L8wgPZ2RiRTQe7paq2AwCnXVt3XU63JSQx9FoyC1nxms1HbgGwkq7bFbTe6Gcy/8n70Jdny9HbAPyrDS0xmZv/In4EgAKt3B6QnofPxc8AUGD48dQr8TsA/KV9jyekFAHgD1W/i6UKAL+1em9IMp+zAOhqr88fXQAKdMOeTsl+zQOgq1dCg1LqALCsoy8+AKBzq+G7aQKgq4fP3S/KQFOj09IcTMq+k9Gfw1XflUKtrAkAoKq2jL1E7YweOnuP8wC3DfePewJQ+/wcyHjowPAb18OfnJrlRMxrh8amXQPcjKYB8Nqxl4ZrgDNXEwDoBKhv7gdAJ4D6hQUAAAAAAAAAAAAAAAAAAFjVADvqw5IceeuoXm5CjE/OOH6e6qUbyfIEKNbhit+51vMEAJ051RYHQGfUsSUAGrPxQBcAuqIugJXtX9D/ADD1/iMAOjOYfgeAzkRiEwDojLqHBIDGNF6OAaAzdQ0RAHRm/e5OAHRFbfyV9W7o/qa7MjO74KhLS99cD3Qus+joWeoGNecBnAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj2Imc1b9UEwLea9oxz9tr4AS/jbaNehFRZAAAAAElFTkSuQmCC”, urlTemplate: “http://www.facebook.com/sharer.php?u=” }, { name: “Twitter”, image: “data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAIAAABt+uBvAAAFGUlEQVR42u2b+W8TVxDH80/WCQHSCEUtLagHoodKS6tWRRShNkUQ9aAIqVVb0fhITGISIElNnPtwE0hCMM1JYhKzh/e+O5IhVRPq2uv33m7ojN4PtiXvvv3svO/MvJ2te6mdw1Fm1CECBISAEBACQkAICAEhIBwICAEhIASEgBAQAkJAOBAQAkJACAgBVTUOJ/gLY3J6xVgv2pbjlYzTnJnH1i931TduCBUeJ/LiAWrq4OMLmmq5XlnL5s33b4tljvNWj5hZM5o7eHaAPuwvRijT+TQtgZt4lZnreslFrSG2+yAfDRSH1w3H9QaWDXZL7GCc5zWnfV6jR+eHacV1vWrt7pb1cgdfH+XAoWB6j4p26Xfb8d7sEdkBujQul078/ZRCg843k4rn1wqqs3dJ+ruX/gFNbZo75744LpOlc6q/6LgeQZvbthqiDKNYJMrtukWXp4n5UWOM25QcgnRynNXc+VSbjyT51lGZOqDjKWHvPBL3NSKafTWrEKQzuWlCHHytW2ibkCc2TMN2P/m9SB3QB33F585mfMOsNo7u9c0thZj7CLoLUECSdn759Z7KYonBTfi3OeVlB/D5BnR6oOhRs/5lg1Gi+N5tscw8QF8hZDTG/bhSdF6jRAdc6UCMlUi3JIX/nNCG5JwZlKo9MlwGDTp3Vo36KNtarMIEd3bLqmrFLQs2cTrX5vxHD/+A+pb0qrLbc0NSpIJ7SFChS3altvyjroYqqWo13Vac2IJ2ordcvr8qEvYguDGBbXcs8T4vBiJd9wP9/LDUktwt5OBrLw6gMsG+cgMty+bNGzn9xxkVShb4TBZQVWkh+f2g3oe6F24rv0lErRZ79gEyi1nSi4Ksvd0bBKALY/LgqlGK34fi/MxjM7SADsX5AACdzUil00NUTq8YP8+qoLshpAMCF8ym/cmborcfbH7bCgZQQ5TTLTf8gHoe6oE99hlZN8MP6OtROTBAXzyToTDb691CYICgsCJeFpC1gurUvr1ZU6LooxxjaamcHjAgGF0PwptJ11hkkAFUH6W1xVWjibrrb4eM/LN5qDYya0bYAHUuknnkS6Z5AUqzy9OKFprMCOZxLCWECFBpvHJd6M7pYcAEqz5c/UHHU8LRLqEpwTd38id6xb4l3XL2vTyTBNQ6KodHfabzJsFlQQYQ6LSgh0WA3r0lhg5QqZcnDHTSKwZBOiQBQdJxvxDw1qJiui1JIaSAYIBOP1GDFOdLpNuUyDdxQggLitHIukmcDpUuV/Aj9mttS3F2WqT2QZ806NGVrCLojFxJt9yTN0UaF0K3Txpi/8VxeeyRqZoUMwDX9c5mJHpXwaKRHBwK1h0EYBqA2iZkqpNnAQjoUNoSodSBzA7QwTj/04xKo3y1Ha91VGZwd2kBaurgr/6h8hoVnZYM92Ny5ShTQI0x7sygBNW8btMS5hxn1/6sgiKgV7uExtjfjw+PJPl3bonnh6Xf5rRs3qS6GeS4XmLhOe+qhAvQqf5iqW+KcfH+J2/X2MjCbolB2P52UimwKingRG0TSiTKsadTkwZBHvjdlLLzshEN25BsOMWBWDBoyIh0pJ37LC1l1gyDnCqbjje0Znx+RwrKa6hEscMJ/qsReWDZ8L30oOCEv385Ijcl+MC50M2DjqUEiGvtcxo4wuITC5Ap/yzH4Oum5CwULKg/rt1Tzw1JkG3jW8/4WjgCQkA4EBACQkAICAEhIASEgHAgIASEgBAQAkJACAgB/b/HXwPPdZ/z7BalAAAAAElFTkSuQmCC”, urlTemplate: “http://twitter.com/share?url=” }] }; } }, { key: “preparePlayerData”, value: function preparePlayerData(opts) { var playerData = this.defaultOpts(); Object.keys(opts).map(function (key) { playerData[key] = opts[key]; }); // iu (interactive unit) is similar to a page path // ex., ‘/fscom/homepage/video’, ‘/fscom/nfl/video’ if (typeof playerData.iu === ‘string’) { playerData.releaseURL += ‘&iu=’ + playerData.iu; playerData.endcard_feed += ‘&params=iu=’ + playerData.iu; } return playerData; } }, { key: “getPlayerElement”, value: function getPlayerElement(opts) { return document.getElementById(‘Video’ + opts.id); } }]); return FsVideo;
}(_Pinner__WEBPACK_IMPORTED_MODULE_0__[“default”]); window.FsVideo = FsVideo;
/* harmony default export */ __webpack_exports__[“default”] = (FsVideo); /***/ }), /***/ “./assets/layouts/app/critical-video.js”:
/*!**********************************************!*\ !*** ./assets/layouts/app/critical-video.js ***! \**********************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var usertiming__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! usertiming */ “./node_modules/usertiming/src/usertiming.js”);
/* harmony import */ var usertiming__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(usertiming__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _components_platformPlayer_criticalVideoLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../components/platformPlayer/criticalVideoLoader */ “./assets/components/platformPlayer/criticalVideoLoader.js”);
/* harmony import */ var lazysizes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lazysizes */ “./node_modules/lazysizes/lazysizes.js”);
/* harmony import */ var lazysizes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lazysizes__WEBPACK_IMPORTED_MODULE_2__);
// user timing API // NEO Video Loader //Lazy Loading /***/ }), /***/ “./node_modules/@foxdcg/fs-segment-analytics/lib/helpers/SegmentAnalytics.js”:
/*!***********************************************************************************!*\ !*** ./node_modules/@foxdcg/fs-segment-analytics/lib/helpers/SegmentAnalytics.js ***! \***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ “./node_modules/@foxdcg/fs-segment-analytics/lib/helpers/utils.js”); var SegmentAnalytics =
/*#__PURE__*/
function () { function SegmentAnalytics() { this.metaEl = document.querySelector(‘[fs-prop=”analytics”]’) != null ? Object(_utils__WEBPACK_IMPORTED_MODULE_0__[“getPageMetadata”])() : null; this.defaultSpaReferrer = window.location.href; this.segmentApiKey = null; // tracking functions this.trackPage = this.trackPage.bind(this); this.trackEvent = this.trackEvent.bind(this); this.trackVideoEvent = this.trackVideoEvent.bind(this); this.isCanTrackVideo = this.isCanTrackVideo.bind(this); this.setSegmentLoaded = this.setSegmentLoaded.bind(this); this.initScript = this.initScript.bind(this); // data retrieval functions this.sportsTypes = this.getSportsTypes(); this.duration = 0; this.secondsViewed = 0; this.adCurrentTime = 0; this.last_video_length = 0; this.current_video_length = 0; this.total_length = 0; this.getDefaultProps = this.getDefaultProps.bind(this); this.getPageProps = this.getPageProps.bind(this); this.getEventProps = this.getEventProps.bind(this); this.getCategory = this.getCategory.bind(this); this.getContentName = this.getContentName.bind(this); this.getLandingName = this.getLandingName.bind(this); this.getPageName = this.getPageName.bind(this); this.getPageType = this.getPageType.bind(this); this.getSubCategory = this.getSubCategory.bind(this); this.getPageSubType = this.getPageSubType.bind(this); this.getStoryTitle = this.getStoryTitle.bind(this); this.getPageContentLevels = this.getPageContentLevels.bind(this); this.getDuration = this.getDuration.bind(this); this.setSecondsViewed = this.setSecondsViewed.bind(this); this.getSecondsViewed = this.getSecondsViewed.bind(this); } var _proto = SegmentAnalytics.prototype; _proto.getSportsTypes = function getSportsTypes() { return [‘mlb’, ‘nfl’, ‘nascar’, ‘college-football’, ‘college-basketball’, ‘soccer’, ‘ufc’, ‘golf’, ‘nhl’, ‘nba’, ‘tennis’, ‘boxing’, ‘olympics’, ‘motor’, ‘horse-racing’, ‘other’, ‘baseball’, ‘basketball’, ‘bowling’, ‘cricket’, ‘cycling’, ‘football’, ‘gymnastics’, ‘hockey’, ‘mma’, ‘rugby’, ‘skiing’, ‘swimming’, ‘volleyball’, ‘water-polo’, ‘wnba’, ‘womens-college-basketball’, ‘wrestling’, ‘wwe’]; }; _proto.getCategory = function getCategory() { return this.metaEl[‘category’]; }; _proto.getSubCategory = function getSubCategory() { return this.metaEl[‘sub_category’]; }; _proto.getLandingName = function getLandingName() { var name = this.metaEl[‘landing_name’]; if (name) name = name.replace(/\s\s+/g, ‘ ‘); // CHECK: if page has hash string if (window.location.hash) { var hash = window.location.hash; if (hash.indexOf(‘nav-option’) > -1) { name = name.replace(‘Landing’, ‘Category’); } } return name; }; _proto.getPageName = function getPageName() { var pageName = this.metaEl ? this.metaEl[‘seg_page_name’] : “no page name”; if (pageName) return pageName.replace(‘::’, ‘:’); }; _proto.getPageSubType = function getPageSubType() { return this.metaEl ? this.metaEl[‘page_sub_type’] : “no page sub type”; }; _proto.getContentName = function getContentName() { return this.metaEl ? this.metaEl[‘content_name’] : “no content name”; }; _proto.getStoryTitle = function getStoryTitle() { return this.metaEl ? this.metaEl[‘story_title’] : “no story title”; }; _proto.getBuildVersion = function getBuildVersion() { return this.metaEl ? this.metaEl[‘build_version’] : “no build version”; }; _proto.getPageType = function getPageType() { var pageType = this.metaEl ? this.metaEl[‘page_type’] : “no page type”; if (pageType === ‘home’) return ‘section front’; return pageType; }; _proto.getPageContentLevels = function getPageContentLevels(props) { if (this.metaEl) { if (this.metaEl.page_content_level_1) props.properties.page_content_level_1 = this.metaEl.page_content_level_1.replace(‘::’, ‘:’); if (this.metaEl.page_content_level_2) props.properties.page_content_level_2 = this.metaEl.page_content_level_2.replace(‘::’, ‘:’); if (this.metaEl.page_content_level_3) props.properties.page_content_level_3 = this.metaEl.page_content_level_3.replace(‘::’, ‘:’); if (this.metaEl.page_content_level_4) props.properties.page_content_level_4 = this.metaEl.page_content_level_4.replace(‘::’, ‘:’); } else { props.properties.page_content_level_1 = “no content level 1”; props.properties.page_content_level_2 = “no content level 2”; props.properties.page_content_level_3 = “no content level 3”; props.properties.page_content_level_4 = “no content level 4”; } return props; }; _proto.getPosition = function getPosition(position, adTime) { if (adTime === void 0) { adTime = 0; } return parseInt(position – adTime, 10); }; _proto.getDuration = function getDuration(duration) { if (duration) { duration = parseInt(duration, 10); if (duration > 0 && duration != this.duration) this.duration = duration; } return this.duration; }; _proto.setSecondsViewed = function setSecondsViewed(secondsViewed) { if (secondsViewed && secondsViewed > 0) this.secondsViewed = secondsViewed; }; _proto.getSecondsViewed = function getSecondsViewed(eventName) { if (eventName.indexOf(‘Playing’) > -1) return 10; return Math.floor(this.secondsViewed % 10); }; _proto.setCampaignTraits = function setCampaignTraits(props) { var campaignTraits = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[“getSessionCampaignTraits”])(); if (campaignTraits) { for (var trait in campaignTraits) { props.properties[trait] = campaignTraits[trait]; } } return props; }; _proto.getDefaultProps = function getDefaultProps(type, eventName) { var traits = { dcg_profile_id: ”, appsflyer_id: ”, network_entitlement_list: ”, lastKnownProfileId: ”, lastAnonymousProfileId: ”, mvpd: ” }; var defaultProps = { primary_business_unit: ‘fng’, secondary_business_unit: ‘fox sports’, app_name: ‘foxsports.com’, app_platform: ‘web’, app_version: ”, app_build: ”, referrer: this.defaultSpaReferrer, page_test_name: ”, page_timePartingDay: ”, page_timePartingHour: ”, campaign_tracking_code: ”, campaign_organization: ”, campaign_marketing_channel: ”, campaign_source: ”, campaign_name: ”, campaign_additional: ”, campaign_agency: ”, page_name: ”, page_type: ”, page_content_level_1: ”, page_content_level_2: ”, page_content_level_3: ”, page_content_level_4: ”, favorites_length: ”, favorites_list: ”, favorites_sports_length: ”, favorites_sports_list: ”, favorites_teams_length: ”, favorites_teams_list: ”, rivals_sports_length: ”, rivals_sports_list: ”, rivals_teams_length: ”, rivals_teams_list: ”, subscriptions_length: ”, subscriptions_list: ”, push_enabled: ” }; var props; // for page view if (type === ‘page’) { props = Object.assign(defaultProps, { keywords: ”, page_content_author: ”, page_content_original_publish_date: ”, page_content_major_publish_date: ”, page_content_modified_date: ”, page_content_original_publish_time: ”, page_content_major_publish_time: ”, page_content_modified_time: ”, page_content_version: ”, page_content_title: ”, page_content_id: ”, page_content_type: ”, page_content_type_of_story: ”, page_content_tags: ”, page_content_category: ”, page_content_subcategory: ”, page_content_language: ”, page_login_state: ”, page_content_originator: ” }); return { name: ‘no page name’, context: { traits: traits }, properties: props }; } // for event if (type === ‘video’ && eventName) { // for video events props = Object.assign(defaultProps, this.getVideoEventDefaultProps(eventName)); } else { // for custom/other events props = defaultProps; } return { event: eventName || ‘no event name’, context: { traits: traits }, properties: props }; }; _proto.getVideoEventDefaultProps = function getVideoEventDefaultProps(eventName) { // main default props for video events var props = { session_id: ”, position: 0, total_length: ”, video_player_state: ”, video_player_content_type: ”, video_asset_title: ”, video_asset_id: ”, video_channel_group_id: ”, video_primary_business_unit: ‘fng’, video_secondary_business_unit: ‘fox sports’, video_series_id: ”, video_series_name: ”, video_fox_profile: false, video_content_length: 86400, video_content_type: ”, video_ad_supported: false, video_ad_model: ”, video_content_length_format: ”, video_rating: ”, video_asset_category: ”, video_genre: ”, video_season_number: ”, video_episode_number: ”, video_tms_id: ”, video_station_id: ”, video_network: ”, video_affiliate_window: ”, video_authorizing_network: ”, video_player_type: ”, video_content_channel: ”, video_ugc_clip: ”, video_sports_type: ”, video_sponsor: ”, video_screen_layout: ”, video_airplay: false, video_first_air_date: ”, video_first_digital_date: ”, video_originator: ”, video_cross_device_play: false, video_cast_source_name: ”, video_cast_source_platform: ”, video_cast_source_version: ”, video_cast_source_build: ”, video_content_subscription_type: ”, video_feed: ”, video_is_resume: false, video_is_continuous: false, video_is_restart: false, video_is_autoplay: false, video_is_fullscreen: false, video_is_livestream: false, video_volume: ” }; // other props, segregated to subtypes (playback, content, ad) var subtypesProps = { playback: { bitrate: ”, framerate: ”, livestream: false, ad_type: ”, ad_asset_id: ”, ad_pod_id: ”, video_player: ”, sound: ”, full_screen: false, ad_enabled: true, quality: ” }, content: { bitrate: ”, framerate: ”, livestream: false, asset_id: ”, pod_id: ”, title: ”, publisher: ”, description: ”, keywords: ”, season: ”, episode: ”, genre: ”, program: ”, channel: ”, full_episode: false, airdate: ” }, ad: { asset_id: ”, pod_id: ”, title: ”, publisher: ”, content: null, pod_position: ”, pod_length: ”, type: ”, load_type: ”, video_ad_name: ”, video_ad_length: ”, video_ad_id: ”, video_fw_vcid2: ”, video_fw_sitesection: ”, video_ad_break_type: ”, video_ad_break_name: ”, video_ad_break_position: ”, video_ad_pod_id: ”, video_ad_pod_type: ”, video_ad_pod_name: ”, video_ad_pod_position: ”, video_ad_in_pod_position: ”, video_ad_campaign_id: ”, video_ad_creative_id: ”, video_ad_site_id: ”, video_ad_placement_id: ”, video_ad_advertiser: ”, video_ad_creative_url: ” } }; switch (eventName) { case ‘Video Playback Seek Started’: props = Object.assign(props, { seek_position: ” }); break; case ‘Video Playback Started’: props = Object.assign(props, { content_asset_ids: ”, content_pod_ids: ” }); break; case ‘Video Playback Interrupted’: props = Object.assign(props, { method: ” }); break; case ‘Video Ad Playing’: props = Object.assign(props, { video_seconds_viewed: 0, quartile: null }); break; case ‘Video Content Playing’: case ‘Video Content Completed’: props = Object.assign(props, { video_seconds_viewed: 0 }); break; default: break; } var subtype = this.getVideoSubType(eventName); if (subtype) props = Object.assign(props, subtypesProps[subtype]); return props; }; _proto.getSegmentEventName = function getSegmentEventName(eventName) { var eventsEnum = { ‘OnPlaybackStart’: ‘Video Playback Started’, ‘OnPlaybackComplete’: ‘Video Playback Completed’, ‘OnContentStart’: ‘Video Content Started’, ‘OnContentComplete’: ‘Video Content Completed’, ‘OnContentPlaying’: ‘Video Content Playing’, // TODO: delete once JW player is implemented 100% // TODO: un-comment video ads-related events once its ready for tracking // ‘OnMediaPlay’: ‘Video Playback Started’, // ‘OnMediaPause’: ‘Video Playback Paused’, // ‘OnMediaUnpause’: ‘Video Playback Resumed’, // ‘OnMediaEnd’: ‘Video Playback Completed’, // ‘OnMediaBuffer’: ‘Video Playback Buffer Started’, // ‘OnMediaSeek’: ‘Video Playback Seek Started’, // ‘OnMediaPlaying’: ‘Video Content Playing’, // ‘OnMediaStart’: ‘Video Content Started’, // ‘OnMediaComplete’: ‘Video Content Completed’, ‘OnAdStart’: ‘Video Ad Started’, ‘OnAdPlaying’: ‘Video Ad Playing’, ‘OnAdComplete’: ‘Video Ad Completed’ // ‘onSeekStart’: ‘Video Playback Seek Started’, // ‘onSeekComplete’: ‘Video Playback Seek Completed’, // videoLoad: ‘OnLoadReleaseUrl’, // videoError: ‘OnMediaError’, // videoLoading: ‘OnMediaLoadStart’, // videoReady: ‘OnLoadRelease’, // videoMute: ‘OnMute’, // playerReady: ‘OnPlayerLoaded’, // playerOverlayUp: ‘OnShowPlayOverlay’ // playerFullScreen: ‘OnShowFullScreen’, // adPodStart: ‘onAdPodStart’, // adPodComplete: ‘onAdPodComplete’, }; return eventsEnum[eventName] ? eventsEnum[eventName] : null; }; _proto.getVideoSubType = function getVideoSubType(eventName) { var subTypesEnum = { ‘Video Playback Started’: ‘playback’, ‘Video Playback Paused’: ‘playback’, ‘Video Playback Buffer Started’: ‘playback’, ‘Video Playback Buffer Completed’: ‘playback’, ‘Video Playback Resumed’: ‘playback’, ‘Video Playback Completed’: ‘playback’, ‘Video Playback Interrupted’: ‘playback’, ‘Video Playback Seek Started’: ‘playback’, ‘Video Playback Seek Completed’: ‘playback’, ‘Video Content Started’: ‘content’, ‘Video Content Playing’: ‘content’, ‘Video Content Completed’: ‘content’, ‘Video Ad Started’: ‘ad’, ‘Video Ad Playing’: ‘ad’, ‘Video Ad Completed’: ‘ad’, ‘Video Ad Break Started’: ‘ad’, ‘Video Ad Break Completed’: ‘ad’, ‘Video Ad Paused’: ‘ad’, ‘Video Ad Resumed’: ‘ad’ }; return subTypesEnum[eventName] ? subTypesEnum[eventName] : null; } /** * sets global trais and custom properties * @param {*} props – segment global props * @param {*} data – player config */ ; _proto.setGlobalProps = function setGlobalProps(props) { var pageName = this.getPageName(); var pageType = this.getPageType(); var storyTitle = this.getStoryTitle(); var buildVersion = this.getBuildVersion(); if (pageName) props.properties.page_name = pageName; if (pageType) props.properties.page_type = pageType; if (storyTitle) { props.properties.story_title = storyTitle; if (props.properties.title) props.properties.title = storyTitle; if (props.properties.program) props.properties.program = storyTitle; } if (buildVersion) { props.properties.app_build = buildVersion; props.properties.app_version = buildVersion; } props.context.traits = Object(_utils__WEBPACK_IMPORTED_MODULE_0__[“getProfileData”])(props.context.traits); if (this.auth) { props.context.traits.mvpd = this.auth.mvpdId || ”; props.context.traits.network_entitlement_list = this.auth.networkEntitlementList || ”; } props = this.getPageContentLevels(props); props = this.setCampaignTraits(props); return props; } /** * removes all empty/null custom properties * @param {Object} props – analytics props object * @return {Object} – returns object only if not empty/null */ ; _proto.updateAllProps = function updateAllProps(props) { var newProperties = {}; for (var prop in props.properties) { if (props.properties[prop] || typeof props.properties[prop] === “boolean” || typeof props.properties[prop] === “number”) { newProperties[prop] = props.properties[prop]; } } props.properties = newProperties; return props; }; _proto.getPageProps = function getPageProps(name, data) { var props = this.setGlobalProps(this.getDefaultProps(‘page’)); props.name = name || this.getLandingName(); if (data) { if (data.properties) { for (var prop in data.properties) { props.properties[prop] = data.properties[prop]; } } if (data.context && data.context.traits) { for (var trait in data.context.traits) { props.context.traits[trait] = data.context.traits[trait]; } } } props = this.updateAllProps(props); return props; }; _proto.getEventProps = function getEventProps(eventName, data) { eventName = this.getSegmentEventName(eventName); var props = this.setGlobalProps(this.getDefaultProps(‘event’, eventName)); props.event = eventName; if (data) { if (data.properties) { for (var prop in data.properties) { props.properties[prop] = data.properties[prop]; } } if (data.context && data.context.traits) { for (var trait in data.context.traits) { props.context.traits[trait] = data.context.traits[trait]; } } } props = this.updateAllProps(props); return props; }; _proto.getVideoEventProps = function getVideoEventProps(eventName, data) { var props = this.setGlobalProps(this.getDefaultProps(‘video’, eventName)); props.event = eventName; props.properties.session_id = data.player.guid; props.properties.position = eventName.indexOf(‘Started’) > -1 ? 0 : this.getPosition(data.player.playerGetPosition(), data.player.priorAdTime); this.current_video_length = this.getDuration(data.player.duration); if (this.current_video_length != this.last_video_length && data.player.contentType == ‘main’) { this.last_video_length = this.current_video_length; this.total_length += this.current_video_length; } if (this.total_length > 0) props.properties.total_length = this.total_length; if (data.player.options.mode) { props.properties.livestream = data.player.isLive; if (props.properties.livestream) { props.properties.video_content_type = ‘LIVE’; } else { props.properties.video_content_type = data.player.options.mode.toUpperCase(); } } props.properties.video_fox_profile = props.context.traits.dcg_profile_id != null; props.properties.video_player_state = function (playerState) { if (playerState === ‘Started’) return ‘start’; if (playerState === ‘Completed’) return ‘end’; if (playerState === ‘Playing’) return ‘play’; return ‘no player state’; }(eventName.split(/[\s,]+/).pop()); // conditional props if (data.player.contentAssetId) props.properties.content_asset_ids = [data.player.contentAssetId]; if (data.player.currentId) props.properties.video_asset_id = data.player.currentId; if (data.player.currentId) props.properties.asset_id = data.player.currentId; if (data.player.contentType) props.properties.video_player_content_type = data.player.contentType; if (!data.player.isLive && this.current_video_length > 0) { props.properties.video_content_length = this.current_video_length; } props.properties.video_content_length_format = props.properties.video_content_type && props.properties.video_content_type === ‘LIVE’ ? ‘long-form’ : ‘short-form’; if (data.network) props.properties.video_network = data.network; if (data.sportsTag) props.properties.video_sports_type = data.sportsTag; if (typeof props.properties.video_seconds_viewed !== ‘undefined’) { props.properties.video_seconds_viewed = this.getSecondsViewed(eventName); } if (data.event) { var event = data.event; var trackingData = event.trackingData; if (event.chapter) { props.properties.pod_id = event.chapter.index + 1 + ”; if (event.chapters && !data.player.isLive && props.properties.hasOwnProperty(‘content_pod_ids’)) { var contentPodIds = event.chapters.map(function (c, i) { return i + 1 + ”; }).slice(event.chapter.index); props.properties.content_pod_ids = contentPodIds; } } if (eventName === ‘Video Ad Playing’) { this.adCurrentTime = event.currentTime; props.properties.video_seconds_viewed = 1; } if (eventName === ‘Video Ad Completed’) { this.adCurrentTime = 0; props.properties.video_seconds_viewed = 1; } if (trackingData) { var eventType = trackingData.content || trackingData.ad; if (eventType) { props.properties.title = eventType.title; } if (trackingData.content) { props.properties.program = trackingData.content.program; } } } if (data.data) { props.properties.program = data.data.categoryName || props.properties.program; } props = this.updateAllProps(props); return props; }; _proto.setSegmentLoaded = function setSegmentLoaded(flag) { return window.segmentLoaded = flag; }; _proto.check = function check() { return typeof window.segmentLoaded === ‘undefined’ ? false : window.segmentLoaded; }; _proto.trackPage = function trackPage(name, props) { var self = this; return new Promise(function (resolve, reject) { /* https://segment.com/docs/sources/website/analytics.js/#page */ if (!self.check()) { try { self.initScript(self.segmentApiKey, false); } catch (e) { return reject(‘SEGMENT ANALYTICS !! – Segment Analytics is not initialized’); } } var meta = props || self.metaEl; if (!meta) { return reject(‘SEGMENT ANALYTICS !! – analytics meta tag or props are required and are missing’); } props = self.getPageProps(name, meta); name = name || props.name; /* NOTE: `trackPage` params takes priority over default/meta values from getPageProps */ console.debug(“Segment page tracking (” + name + “): ” + JSON.stringify(props)); window.analytics.page(name, props.properties, { context: props.context }); resolve(); }); }; _proto.isCanTrackVideo = function isCanTrackVideo(eventName, data) { if (eventName === ‘Video Ad Playing’ && data.event) { return Math.floor(this.adCurrentTime) !== Math.floor(data.event.currentTime); } return true; }; _proto.trackVideoEvent = function trackVideoEvent(eventName, data) { var _this = this; var self = this; return new Promise(function (resolve, reject) { /* https://segment.com/docs/sources/website/analytics.js/#track */ if (!self.check()) { try { self.initScript(self.segmentApiKey, false); } catch (e) { return reject(‘SEGMENT ANALYTICS !! – Segment Analytics is not initialized’); } } if (!eventName) return reject(‘SEGMENT ANALYTICS !! – video event name is required’); if (!data) return reject(‘SEGMENT ANALYTICS !! – video event data is required’); eventName = self.getSegmentEventName(eventName); if (eventName == null) { return reject(“SEGMENT ANALYTICS !! – event(” + eventName + “) is not recognized as a segment event.”); } if (!_this.isCanTrackVideo(eventName, data)) { return resolve(); } self.auth = data.auth; var props = self.getVideoEventProps(eventName, data); console.debug(“Segment video event tracking (” + eventName + “) – ” + JSON.stringify(props)); window.analytics.track(eventName, props.properties, { context: props.context }); resolve(); }); }; _proto.trackEvent = function trackEvent(eventName, data) { var self = this; return new Promise(function (resolve, reject) { /* https://segment.com/docs/sources/website/analytics.js/#track */ if (!self.check()) { try { self.initScript(self.segmentApiKey, false); } catch (e) { return reject(‘SEGMENT ANALYTICS !! – Segment Analytics is not initialized’); } } if (!eventName) return reject(‘SEGMENT ANALYTICS !! – event name is required’); if (!data) return reject(‘SEGMENT ANALYTICS !! – event data is required’); var props = self.getEventProps(eventName, data); console.debug(“Segment event tracking (” + eventName + “) – ” + JSON.stringify(props)); window.analytics.track(eventName, props.properties, { context: props.context }); resolve(); }); }; _proto.initScript = function initScript(segmentApiKey, enablePageLoadTracking) { if (segmentApiKey === void 0) { segmentApiKey = null; } if (enablePageLoadTracking === void 0) { enablePageLoadTracking = true; } var self = this; if (!self.check()) { self.segmentApiKey = function (key) { if (typeof key === ‘string’ && key.length > 0) return key; return self.metaEl != null && self.metaEl.hasOwnProperty(‘segment_api_key’) && self.metaEl[‘segment_api_key’] ? self.metaEl[‘segment_api_key’] : null; }(segmentApiKey); !function () { var analytics = window.analytics = window.analytics || []; if (!analytics.initialize) if (analytics.invoked) window.console && console.error && console.error(“Segment snippet included twice.”);else { analytics.invoked = !0; analytics.methods = [“trackSubmit”, “trackClick”, “trackLink”, “trackForm”, “pageview”, “identify”, “reset”, “group”, “track”, “ready”, “alias”, “debug”, “page”, “once”, “off”, “on”]; analytics.factory = function (t) { return function () { var e = Array.prototype.slice.call(arguments); e.unshift(t); analytics.push(e); return analytics; }; }; for (var t = 0; t = 0 ? att.replace(/-/g, ‘_’) : att; data[att] = val.trim(); } } return data;
} // query string helpers function setCampaignTraitsSession() { if (window.location.search.length == 0) return; var queryStr = window.location.search; var campaignTraits = { “org”: “campaign_organization”, “ag”: “campaign_agency”, “mc”: “campaign_type”, “src”: “campaign_source”, “cmp”: “campaign_name”, “add”: “campaign_additional”, “cmpid”: “campaign_tracking_code” }; var query = new URLSearchParams(queryStr); var params = Object.keys(campaignTraits); var result; for (var _iterator = query.keys(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var key = _ref; if (key in params) { if (!result) result = {}; result[campaignTraits[key]] = query.get(key); } } if (result) { window.sessionStorage.setItem(‘sessionCampaignTraits’, JSON.stringify(result)); } return result;
}
;
function getSessionCampaignTraits() { var result; try { result = JSON.parse(window.sessionStorage.getItem(‘sessionCampaignTraits’)); if (!result) { result = setCampaignTraitsSession(); } } catch (e) { return; } return result;
}
;
/*
`lastAnonymousProfileId` + populate when user hasn’t logged in + pass blank on tracking when user is logged in + pass last anon id if user is logged out (?) `lastKnownProfileId` + pass blank when user hasn’t logged in + populate when user logs out + pass blank when user logs back in (?)
*/ function isObjectEmpty(obj) { for (var key in obj) { if (obj.hasOwnProperty(key)) return false; } return true;
} function getProfileData(objData) { if (objData === void 0) { objData = {}; } var wisReg = window.wisRegistration; if (wisReg) { var isLoggedIn = isUserLoggedIn(); if (isLoggedIn) { var profileId = wisReg.getProfileId(); objData.dcg_profile_id = profileId || ”; sessionStorage.setItem(‘lastKnownProfileId’, profileId); } objData.lastKnownProfileId = sessionStorage.getItem(‘lastKnownProfileId’) || ”; var lastAnonProfileId = getAnonProfileId(wisReg) || sessionStorage.getItem(‘lastAnonymousProfileId’); objData.lastAnonymousProfileId = lastAnonProfileId || ”; sessionStorage.setItem(‘lastAnonymousProfileId’, objData.lastAnonymousProfileId); } return objData;
}
function getJWT() { return _getJWT.apply(this, arguments);
} function _getJWT() { _getJWT = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() { var wisReg; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: wisReg = window.wisRegistration; if (!wisReg) { _context.next = 3; break; } return _context.abrupt(“return”, wisReg.getJWT()); case 3: return _context.abrupt(“return”, null); case 4: case “end”: return _context.stop(); } } }, _callee); })); return _getJWT.apply(this, arguments);
} function getAnonProfileId(wisReg) { if (wisReg.getAnonProfileId === “function”) { return wisReg.getAnonProfileId(); } return null;
} function isUserLoggedIn() { var wisReg = window.wisRegistration; if (wisReg && wisReg.isUserLoggedIn === “function”) { return wisReg.isUserLoggedIn(); } return null;
} function getAuthData() { return _getAuthData.apply(this, arguments);
} function _getAuthData() { _getAuthData = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee2() { var profile, geo, auth; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: profile = getProfileData(); geo = getGeoLocation(); _context2.t0 = isProfileAnon(); _context2.t1 = profile.dcg_profile_id || null; _context2.next = 6; return getJWT(); case 6: _context2.t2 = _context2.sent; _context2.t3 = profile.lastKnownProfileId; _context2.t4 = profile.lastAnonymousProfileId; _context2.t5 = { profileAnonymous: _context2.t0, profileId: _context2.t1, accessToken: _context2.t2, lastKnownProfileId: _context2.t3, lastAnonymousProfileId: _context2.t4 }; _context2.t6 = getMVPDId(); _context2.next = 13; return getUserEntitlementsList(); case 13: _context2.t7 = _context2.sent; _context2.t8 = _extends({}, geo); auth = { upstreamUserID: null, profile: _context2.t5, authorizingNetwork: null, mvpdId: _context2.t6, networkEntitlementList: _context2.t7, geo: _context2.t8 }; return _context2.abrupt(“return”, auth); case 17: case “end”: return _context2.stop(); } } }, _callee2); })); return _getAuthData.apply(this, arguments);
} function isProfileAnon() { var isLoggedIn = isUserLoggedIn(); if (isLoggedIn) { return !isLoggedIn; } return true;
}
/** * set geo location on session storage */ function setGeoLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (pos) { var geo = { geoLatitude: pos.coords.latitude, geoLongitude: pos.coords.longitude }; sessionStorage.setItem(‘fs_geolocation’, JSON.stringify(geo)); }); }
}
/**
* get geo location from session storage
*/ function getGeoLocation() { // Get geolocation data from sessionStorage var geo = sessionStorage.getItem(‘fs_geolocation’); if (geo) { return JSON.parse(geo); } return { geoLatitude: null, geoLongitude: null };
}
function getUserEntitlementsList() { return _getUserEntitlementsList.apply(this, arguments);
}
/** * returns mvpd id */ function _getUserEntitlementsList() { _getUserEntitlementsList = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee3() { var wisReg, entitlements, channels, ppvEvents, formmattedList; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: wisReg = window.wisRegistration; if (!wisReg) { _context3.next = 13; break; } _context3.next = 4; return wisReg.getUserEntitlements(); case 4: entitlements = _context3.sent; if (entitlements) { _context3.next = 7; break; } return _context3.abrupt(“return”, null); case 7: channels = entitlements.channels.map(function (e) { return e.name; }); ppvEvents = entitlements.ppvEvents.map(function (e) { return e.uri; }); formmattedList = ”; if (channels) { formmattedList = channels.toString(); } if (ppvEvents && ppvEvents.length > 0) { formmattedList += “,” + ppvEvents.toString(); } return _context3.abrupt(“return”, formmattedList); case 13: return _context3.abrupt(“return”, null); case 14: case “end”: return _context3.stop(); } } }, _callee3); })); return _getUserEntitlementsList.apply(this, arguments);
} function getMVPDId() { var wisReg = window.wisRegistration; if (wisReg && typeof wisReg.getMVPDDetails === “function”) { var details = wisReg.getMVPDDetails(); if (details) { return details.providerId; } return null; }
} /***/ }), /***/ “./node_modules/@foxdcg/fs-segment-analytics/lib/index.js”:
/*!****************************************************************!*\ !*** ./node_modules/@foxdcg/fs-segment-analytics/lib/index.js ***! \****************************************************************/
/*! exports provided: SegmentAnalytics, getAuthData, setGeoLocation, getGeoLocation */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _helpers_SegmentAnalytics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/SegmentAnalytics */ “./node_modules/@foxdcg/fs-segment-analytics/lib/helpers/SegmentAnalytics.js”);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, “SegmentAnalytics”, function() { return _helpers_SegmentAnalytics__WEBPACK_IMPORTED_MODULE_0__[“default”]; }); /* harmony import */ var _helpers_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/utils */ “./node_modules/@foxdcg/fs-segment-analytics/lib/helpers/utils.js”);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, “getAuthData”, function() { return _helpers_utils__WEBPACK_IMPORTED_MODULE_1__[“getAuthData”]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, “setGeoLocation”, function() { return _helpers_utils__WEBPACK_IMPORTED_MODULE_1__[“setGeoLocation”]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, “getGeoLocation”, function() { return _helpers_utils__WEBPACK_IMPORTED_MODULE_1__[“getGeoLocation”]; }); /***/ }), /***/ “./node_modules/isomorphic-fetch/fetch-npm-browserify.js”:
/*!***************************************************************!*\ !*** ./node_modules/isomorphic-fetch/fetch-npm-browserify.js ***! \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) { // the whatwg-fetch polyfill installs the fetch() function
// on the global object (window or self)
//
// Return that as the export for use in Webpack, Browserify etc.
__webpack_require__(/*! whatwg-fetch */ “./node_modules/whatwg-fetch/fetch.js”);
module.exports = self.fetch.bind(self); /***/ }), /***/ “./node_modules/lazysizes/lazysizes.js”:
/*!*********************************************!*\ !*** ./node_modules/lazysizes/lazysizes.js ***! \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) { (function(window, factory) { var lazySizes = factory(window, window.document); window.lazySizes = lazySizes; if( true && module.exports){ module.exports = lazySizes; }
}(window, function l(window, document) { ‘use strict’; /*jshint eqnull:true */ if(!document.getElementsByClassName){return;} var lazySizesConfig; var docElem = document.documentElement; var Date = window.Date; var supportPicture = window.HTMLPictureElement; var _addEventListener = ‘addEventListener’; var _getAttribute = ‘getAttribute’; var addEventListener = window[_addEventListener]; var setTimeout = window.setTimeout; var requestAnimationFrame = window.requestAnimationFrame || setTimeout; var requestIdleCallback = window.requestIdleCallback; var regPicture = /^picture$/i; var loadEvents = [‘load’, ‘error’, ‘lazyincluded’, ‘_lazyloaded’]; var regClassCache = {}; var forEach = Array.prototype.forEach; var hasClass = function(ele, cls) { if(!regClassCache[cls]){ regClassCache[cls] = new RegExp(‘(\\s|^)’+cls+'(\\s|$)’); } return regClassCache[cls].test(ele[_getAttribute](‘class’) || ”) && regClassCache[cls]; }; var addClass = function(ele, cls) { if (!hasClass(ele, cls)){ ele.setAttribute(‘class’, (ele[_getAttribute](‘class’) || ”).trim() + ‘ ‘ + cls); } }; var removeClass = function(ele, cls) { var reg; if ((reg = hasClass(ele,cls))) { ele.setAttribute(‘class’, (ele[_getAttribute](‘class’) || ”).replace(reg, ‘ ‘)); } }; var addRemoveLoadEvents = function(dom, fn, add){ var action = add ? _addEventListener : ‘removeEventListener’; if(add){ addRemoveLoadEvents(dom, fn); } loadEvents.forEach(function(evt){ dom[action](evt, fn); }); }; var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){ var event = document.createEvent(‘CustomEvent’); event.initCustomEvent(name, !noBubbles, !noCancelable, detail || {}); elem.dispatchEvent(event); return event; }; var updatePolyfill = function (el, full){ var polyfill; if( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){ polyfill({reevaluate: true, elements: [el]}); } else if(full && full.src){ el.src = full.src; } }; var getCSS = function (elem, style){ return (getComputedStyle(elem, null) || {})[style]; }; var getWidth = function(elem, parent, width){ width = width || elem.offsetWidth; while(width 0); if(visible && getCSS(parent, ‘overflow’) != ‘visible’){ outerRect = parent.getBoundingClientRect(); visible = eLright > outerRect.left && eLleft outerRect.top – 1 && eLtop 500 ? 500 : 400; } defaultExpand = lazySizesConfig.expand; preloadExpand = defaultExpand * lazySizesConfig.expFactor; } if(currentExpand 2 && loadMode > 2 && !document.hidden){ currentExpand = preloadExpand; lowRuns = 0; } else if(loadMode > 1 && lowRuns > 1 && isLoading = elemNegativeExpand && (eLtop = rect.top) = elemNegativeExpand * hFac && (eLleft = rect.left) 9){break;} } else if(!loadedSomething && isCompleted && !autoLoadElem && isLoading 2 && (preloadElems[0] || lazySizesConfig.preloadAfterLoad) && (preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != ‘auto’)))){ autoLoadElem = preloadElems[0] || lazyloadElems[i]; } } if(autoLoadElem && !loadedSomething){ unveilElement(autoLoadElem); } } }; var throttledCheckElements = throttle(checkElements); var switchLoadingClass = function(e){ addClass(e.target, lazySizesConfig.loadedClass); removeClass(e.target, lazySizesConfig.loadingClass); addRemoveLoadEvents(e.target, rafSwitchLoadingClass); }; var rafedSwitchLoadingClass = rAFIt(switchLoadingClass); var rafSwitchLoadingClass = function(e){ rafedSwitchLoadingClass({target: e.target}); }; var changeIframeSrc = function(elem, src){ try { elem.contentWindow.location.replace(src); } catch(e){ elem.src = src; } }; var handleSources = function(source){ var customMedia, parent; var sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr); if( (customMedia = lazySizesConfig.customMedia[source[_getAttribute](‘data-media’) || source[_getAttribute](‘media’)]) ){ source.setAttribute(‘media’, customMedia); } if(sourceSrcset){ source.setAttribute(‘srcset’, sourceSrcset); } //https://bugzilla.mozilla.org/show_bug.cgi?id=1170572 if(customMedia){ parent = source.parentNode; parent.insertBefore(source.cloneNode(), source); parent.removeChild(source); } }; var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){ var src, srcset, parent, isPicture, event, firesLoad; if(!(event = triggerEvent(elem, ‘lazybeforeunveil’, detail)).defaultPrevented){ if(sizes){ if(isAuto){ addClass(elem, lazySizesConfig.autosizesClass); } else { elem.setAttribute(‘sizes’, sizes); } } srcset = elem[_getAttribute](lazySizesConfig.srcsetAttr); src = elem[_getAttribute](lazySizesConfig.srcAttr); if(isImg) { parent = elem.parentNode; isPicture = parent && regPicture.test(parent.nodeName || ”); } firesLoad = detail.firesLoad || ((‘src’ in elem) && (srcset || src || isPicture)); event = {target: elem}; if(firesLoad){ addRemoveLoadEvents(elem, resetPreloading, true); clearTimeout(resetPreloadingTimer); resetPreloadingTimer = setTimeout(resetPreloading, 2500); addClass(elem, lazySizesConfig.loadingClass); addRemoveLoadEvents(elem, rafSwitchLoadingClass, true); } if(isPicture){ forEach.call(parent.getElementsByTagName(‘source’), handleSources); } if(srcset){ elem.setAttribute(‘srcset’, srcset); } else if(src && !isPicture){ if(regIframe.test(elem.nodeName)){ changeIframeSrc(elem, src); } else { elem.src = src; } } if(srcset || isPicture){ updatePolyfill(elem, {src: src}); } } rAF(function(){ if(elem._lazyRace){ delete elem._lazyRace; } removeClass(elem, lazySizesConfig.lazyClass); if( !firesLoad || elem.complete ){ if(firesLoad){ resetPreloading(event); } else { isLoading–; } switchLoadingClass(event); } }); }); var unveilElement = function (elem){ var detail; var isImg = regImg.test(elem.nodeName); //allow using sizes=”auto”, but don’t use. it’s invalid. Use data-sizes=”auto” or a valid value for sizes instead (i.e.: sizes=”80vw”) var sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute](‘sizes’)); var isAuto = sizes == ‘auto’; if( (isAuto || !isCompleted) && isImg && (elem.src || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass)){return;} detail = triggerEvent(elem, ‘lazyunveilread’).detail; if(isAuto){ autoSizer.updateElem(elem, true, elem.offsetWidth); } elem._lazyRace = true; isLoading++; lazyUnveil(elem, detail, isAuto, sizes, isImg); }; var onload = function(){ if(isCompleted){return;} if(Date.now() – started 0); }, checkElems: throttledCheckElements, unveil: unveilElement }; })(); var autoSizer = (function(){ var autosizesElems; var sizeElement = rAFIt(function(elem, parent, event, width){ var sources, i, len; elem._lazysizesWidth = width; width += ‘px’; elem.setAttribute(‘sizes’, width); if(regPicture.test(parent.nodeName || ”)){ sources = parent.getElementsByTagName(‘source’); for(i = 0, len = sources.length; i 1) { for (var i = 1; i * @licence MIT * */ (function(self) { ‘use strict’; var nativeURLSearchParams = (self.URLSearchParams && self.URLSearchParams.prototype.get) ? self.URLSearchParams : null, isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === ‘a=1’, // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus. decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams(‘s=%2B’).get(‘s’) === ‘+’), __URLSearchParams__ = “__URLSearchParams__”, // Fix bug in Edge which cannot encode ‘ &’ correctly encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() { var ampersandTest = new nativeURLSearchParams(); ampersandTest.append(‘s’, ‘ &’); return ampersandTest.toString() === ‘s=+%26’; })() : true, prototype = URLSearchParamsPolyfill.prototype, iterable = !!(self.Symbol && self.Symbol.iterator); if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) { return; } /** * Make a URLSearchParams instance * * @param {object|string|URLSearchParams} search * @constructor */ function URLSearchParamsPolyfill(search) { search = search || “”; // support construct object with another URLSearchParams instance if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) { search = search.toString(); } this [__URLSearchParams__] = parseToDict(search); } /** * Appends a specified key/value pair as a new search parameter. * * @param {string} name * @param {string} value */ prototype.append = function(name, value) { appendTo(this [__URLSearchParams__], name, value); }; /** * Deletes the given search parameter, and its associated value, * from the list of all search parameters. * * @param {string} name */ prototype[‘delete’] = function(name) { delete this [__URLSearchParams__] [name]; }; /** * Returns the first value associated to the given search parameter. * * @param {string} name * @returns {string|null} */ prototype.get = function(name) { var dict = this [__URLSearchParams__]; return name in dict ? dict[name][0] : null; }; /** * Returns all the values association with a given search parameter. * * @param {string} name * @returns {Array} */ prototype.getAll = function(name) { var dict = this [__URLSearchParams__]; return name in dict ? dict [name].slice(0) : []; }; /** * Returns a Boolean indicating if such a search parameter exists. * * @param {string} name * @returns {boolean} */ prototype.has = function(name) { return name in this [__URLSearchParams__]; }; /** * Sets the value associated to a given search parameter to * the given value. If there were several values, delete the * others. * * @param {string} name * @param {string} value */ prototype.set = function set(name, value) { this [__URLSearchParams__][name] = [” + value]; }; /** * Returns a string containg a query string suitable for use in a URL. * * @returns {string} */ prototype.toString = function() { var dict = this[__URLSearchParams__], query = [], i, key, name, value; for (key in dict) { name = encode(key); for (i = 0, value = dict[key]; i -1 }
} function normalizeName(name) { if (typeof name !== ‘string’) { name = String(name) } if (/[^a-z0-9\-#$%&’*+.^_`|~]/i.test(name)) { throw new TypeError(‘Invalid character in header field name’) } return name.toLowerCase()
} function normalizeValue(value) { if (typeof value !== ‘string’) { value = String(value) } return value
} // Build a destructive iterator for the value list
function iteratorFor(items) { var iterator = { next: function() { var value = items.shift() return {done: value === undefined, value: value} } } if (support.iterable) { iterator[Symbol.iterator] = function() { return iterator } } return iterator
} function Headers(headers) { this.map = {} if (headers instanceof Headers) { headers.forEach(function(value, name) { this.append(name, value) }, this) } else if (Array.isArray(headers)) { headers.forEach(function(header) { this.append(header[0], header[1]) }, this) } else if (headers) { Object.getOwnPropertyNames(headers).forEach(function(name) { this.append(name, headers[name]) }, this) }
} Headers.prototype.append = function(name, value) { name = normalizeName(name) value = normalizeValue(value) var oldValue = this.map[name] this.map[name] = oldValue ? oldValue + ‘, ‘ + value : value
} Headers.prototype[‘delete’] = function(name) { delete this.map[normalizeName(name)] } Headers.prototype.get = function(name) { name = normalizeName(name) return this.has(name) ? this.map[name] : null
} Headers.prototype.has = function(name) { return this.map.hasOwnProperty(normalizeName(name))
} Headers.prototype.set = function(name, value) { this.map[normalizeName(name)] = normalizeValue(value)
} Headers.prototype.forEach = function(callback, thisArg) { for (var name in this.map) { if (this.map.hasOwnProperty(name)) { callback.call(thisArg, this.map[name], name, this) } }
} Headers.prototype.keys = function() { var items = [] this.forEach(function(value, name) { items.push(name) }) return iteratorFor(items)
} Headers.prototype.values = function() { var items = [] this.forEach(function(value) { items.push(value) }) return iteratorFor(items)
} Headers.prototype.entries = function() { var items = [] this.forEach(function(value, name) { items.push([name, value]) }) return iteratorFor(items)
} if (support.iterable) { Headers.prototype[Symbol.iterator] = Headers.prototype.entries
} function consumed(body) { if (body.bodyUsed) { return Promise.reject(new TypeError(‘Already read’)) } body.bodyUsed = true
} function fileReaderReady(reader) { return new Promise(function(resolve, reject) { reader.onload = function() { resolve(reader.result) } reader.onerror = function() { reject(reader.error) } })
} function readBlobAsArrayBuffer(blob) { var reader = new FileReader() var promise = fileReaderReady(reader) reader.readAsArrayBuffer(blob) return promise
} function readBlobAsText(blob) { var reader = new FileReader() var promise = fileReaderReady(reader) reader.readAsText(blob) return promise
} function readArrayBufferAsText(buf) { var view = new Uint8Array(buf) var chars = new Array(view.length) for (var i = 0; i -1 ? upcased : method
} function Request(input, options) { options = options || {} var body = options.body if (input instanceof Request) { if (input.bodyUsed) { throw new TypeError(‘Already read’) } this.url = input.url this.credentials = input.credentials if (!options.headers) { this.headers = new Headers(input.headers) } this.method = input.method this.mode = input.mode this.signal = input.signal if (!body && input._bodyInit != null) { body = input._bodyInit input.bodyUsed = true } } else { this.url = String(input) } this.credentials = options.credentials || this.credentials || ‘same-origin’ if (options.headers || !this.headers) { this.headers = new Headers(options.headers) } this.method = normalizeMethod(options.method || this.method || ‘GET’) this.mode = options.mode || this.mode || null this.signal = options.signal || this.signal this.referrer = null if ((this.method === ‘GET’ || this.method === ‘HEAD’) && body) { throw new TypeError(‘Body not allowed for GET or HEAD requests’) } this._initBody(body)
} Request.prototype.clone = function() { return new Request(this, {body: this._bodyInit})
} function decode(body) { var form = new FormData() body .trim() .split(‘&’) .forEach(function(bytes) { if (bytes) { var split = bytes.split(‘=’) var name = split.shift().replace(/\+/g, ‘ ‘) var value = split.join(‘=’).replace(/\+/g, ‘ ‘) form.append(decodeURIComponent(name), decodeURIComponent(value)) } }) return form
} function parseHeaders(rawHeaders) { var headers = new Headers() // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space // https://tools.ietf.org/html/rfc7230#section-3.2 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ‘ ‘) preProcessedHeaders.split(/\r?\n/).forEach(function(line) { var parts = line.split(‘:’) var key = parts.shift().trim() if (key) { var value = parts.join(‘:’).trim() headers.append(key, value) } }) return headers
} Body.call(Request.prototype) function Response(bodyInit, options) { if (!options) { options = {} } this.type = ‘default’ this.status = options.status === undefined ? 200 : options.status this.ok = this.status >= 200 && this.status 3 && arguments[3] !== undefined ? arguments[3] : _utils__WEBPACK_IMPORTED_MODULE_1__[“headers”]; var options = Object.assign({ method: ‘GET’ }, customHeaders); return fetchData(url, options, callback, error);
}
function post(url, data, callback, error) { var customHeaders = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _utils__WEBPACK_IMPORTED_MODULE_1__[“headers”]; var options = Object.assign({ method: ‘POST’, body: JSON.stringify(data) }, customHeaders); return sendPost(url, options, callback, error);
} /***/ }), /***/ “./react-app-src/shared/services/FsPlaylistService.js”:
/*!************************************************************!*\ !*** ./react-app-src/shared/services/FsPlaylistService.js ***! \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ “./react-app-src/shared/constants.js”);
/* harmony import */ var _FetchService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FetchService */ “./react-app-src/shared/services/FetchService.js”);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(“Cannot call a class as a function”); } } function _defineProperties(target, props) { for (var i = 0; i 0 && arguments[0] !== undefined ? arguments[0] : ”; var defaultVideoTags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ”; var postId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; if (this.parselyPlaylist) { return this.parselyPlaylist; } var tags = ‘?parselytags=’ + parselyFeedTags + (defaultVideoTags && ‘&defaulttags=’ + defaultVideoTags) + ‘&postid=’ + postId; this.parselyPlaylist = Object(_FetchService__WEBPACK_IMPORTED_MODULE_1__[“get”])(_constants__WEBPACK_IMPORTED_MODULE_0__[“settings”].PARSELY_URL_V2 + tags, function (json) { if (!json.success) return []; var data = json.data; return Array.isArray(data) ? data : [data]; }, function () { return []; }); return this.parselyPlaylist; } }, { key: “getParselyContentByFeed”, value: function getParselyContentByFeed(feedUrl) { var postId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; if (this.playlist) { return this.playlist; } var url = ‘?feedurl=’ + encodeURIComponent(feedUrl) + ‘&postid=’ + postId; this.playlist = Object(_FetchService__WEBPACK_IMPORTED_MODULE_1__[“get”])(_constants__WEBPACK_IMPORTED_MODULE_0__[“settings”].PARSELY_URL_V2 + url, function (json) { if (!json.success) return []; var data = json.data; return Array.isArray(data) ? data : [data]; }, function () { return []; }); return this.playlist; } }]); return FsPlaylistService;
}(); /* harmony default export */ __webpack_exports__[“default”] = (FsPlaylistService); /***/ }), /***/ “./react-app-src/shared/utils.js”:
/*!***************************************!*\ !*** ./react-app-src/shared/utils.js ***! \***************************************/
/*! exports provided: headers, handleFetchedErrors, getPostId, assetsDomain, decodeHtmlEntities, getOrderedChannels, parseImagesTag, parseSeconds, isFlashEnabled, isTabletOrMobile, isAndroid, getQueryString, getCookie, getAuthStatus */
/***/ (function(module, __webpack_exports__, __webpack_require__) { “use strict”;
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “headers”, function() { return headers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “handleFetchedErrors”, function() { return handleFetchedErrors; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “getPostId”, function() { return getPostId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “assetsDomain”, function() { return assetsDomain; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “decodeHtmlEntities”, function() { return decodeHtmlEntities; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “getOrderedChannels”, function() { return getOrderedChannels; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “parseImagesTag”, function() { return parseImagesTag; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “parseSeconds”, function() { return parseSeconds; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “isFlashEnabled”, function() { return isFlashEnabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “isTabletOrMobile”, function() { return isTabletOrMobile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “isAndroid”, function() { return isAndroid; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “getQueryString”, function() { return getQueryString; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “getCookie”, function() { return getCookie; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, “getAuthStatus”, function() { return getAuthStatus; });
var headers = { headers: { Accept: ‘application/json’, ‘Content-Type’: ‘application/json’ }, credentials: ‘include’
};
function handleFetchedErrors(response) { if (!response.ok) { throw Error(response.statusText); } return response;
}
function getPostId() { var pageInfo = document.getElementById(‘page-information’); if (pageInfo) { var body = document.querySelector(‘.fox_sectionfront .body-content’); if (body) { return body.getAttribute(‘post-id’); } } return document.body.getAttribute(‘post-id’);
} function getAssetsDomain() { var locationName = location.hostname; if (locationName.match(/www.foxsports.com/)) { return ‘https://b.fssta.com/sta/’; } if (locationName.match(/wp.foxsports.com/)) { return ‘https://b.dev.fssta.com/sta/’; } return ‘/wp-content/themes/foxsports/assets/dist/’;
} var assetsDomain = getAssetsDomain();
function decodeHtmlEntities(text) { if (!text) return ”; return text.replace(/\&(\w*|#\d*)\;/g, function (s) { return decodeTable[s] || ”; });
}
/** * * @param {*} chans – channels coming from ddp entitlements res */ function getOrderedChannels(chans) { // channels are defined as per priority var channels = [{ name: “fbc-fox” }, { name: “fs1” }, { name: “fs2” }, { name: “btn” }, { name: “foxdep” }]; var result = channels.filter(function (el) { return chans.some(function (el2) { return el.name === el2.name; }); }); return result;
}
var decodeTable = { ‘&’: ‘&’, ‘”‘: ‘”‘, ‘<‘: ”, ‘ ‘: ‘ ‘, ‘!’: ‘!’, ‘”‘: ‘”‘, ‘#’: ‘#’, ‘$’: ‘$’, ‘%’: ‘%’, ‘&’: ‘&’, ”’: ‘\”, ”’: ‘\”, ‘(‘: ‘(‘, ‘)’: ‘)’, ‘*’: ‘*’, ‘+’: ‘+’, ‘,’: ‘,’, ‘-‘: ‘-‘, ‘.’: ‘.’, ‘/’: ‘/’, ‘–’: ‘–’, ‘—’: ‘—’, ‘‘’: ‘‘’, ‘’’: ‘’’, ‘‚’: ‘‚’, ‘“’: ‘“’, ‘”’: ‘”’, ‘„’: ‘„’, ‘†’: ‘†’, ‘‡’: ‘‡’, ‘•’: ‘•’, ‘…’: ‘…’, ‘‰’: ‘‰’, ‘€’: ‘€’, ‘™’: ‘™’
};
function parseImagesTag(text) { text = “

“.concat(text, “

“); var parser = new DOMParser(); var result = { srcSet: ”, sizes: ”, src: ”, noscript: ” }; try { var el = parser.parseFromString(text, ‘text/html’); var images = el.getElementsByTagName(‘img’); if (images.length > 0) { var img = images[0]; result.sizes = img.getAttribute(‘data-sizes’) || img.getAttribute(‘sizes’); result.srcSet = img.getAttribute(‘data-srcset’) || img.getAttribute(‘srcset’); result.src = img.getAttribute(‘data-src’) || img.getAttribute(‘src’); } var noscripts = el.getElementsByTagName(‘noscript’); if (noscripts.length > 0) { var noscript = noscripts[0]; result.noscript = noscript.innerHTML; } } finally { return result; }
}
function parseSeconds(time) { if (!time || time.indexOf(‘.’) === -1) { return time; } var minutes = Math.floor(time / 60); var seconds = Math.floor(time – minutes * 60); return minutes + ‘:’ + (seconds

90001-90068+90070-90084+90086-90089+90091+90093-90096+90099+90189

803

26496

Source: Fox Sports

Previous Radioactive: Charlotte – “This is the kind of (expletive) that you get wrecked for”
Next Marc Savard Knows Exactly How Dustin Pedroia Feels About His Injury