{
  "version": 3,
  "sources": [
    "../webpack/bootstrap",
    "../external \"React\"",
    "../node_modules/classnames/index.js",
    "../external \"ReactDOM\"",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js",
    "service/pws-media.service.ts",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js",
    "zype/ZypeTabsSkeleton.component.tsx",
    "shared/Skeleton.component.tsx",
    "zype/playerButtons.ts",
    "zype/ZypePlayerSkeleton.component.tsx",
    "zype/ZypePlayer.component.tsx",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js",
    "../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js",
    "zype/ZypeNavBar.component.tsx",
    "zype/ZypeVideo.component.tsx",
    "helpers/string.ts",
    "zype/ZypePagination.component.tsx",
    "zype/ZypeTab.component.tsx",
    "zype/ZypeTabs.component.tsx",
    "zype/ZypeAd.component.tsx",
    "zype/ZypeMedia.component.tsx",
    "CnbMediaApp.tsx",
    "index.tsx"
  ],
  "names": [
    "installedModules",
    "__webpack_require__",
    "moduleId",
    "exports",
    "module",
    "i",
    "l",
    "modules",
    "call",
    "m",
    "c",
    "d",
    "name",
    "getter",
    "o",
    "Object",
    "defineProperty",
    "enumerable",
    "get",
    "r",
    "Symbol",
    "toStringTag",
    "value",
    "t",
    "mode",
    "__esModule",
    "ns",
    "create",
    "key",
    "bind",
    "n",
    "object",
    "property",
    "prototype",
    "hasOwnProperty",
    "p",
    "s",
    "React",
    "hasOwn",
    "classNames",
    "classes",
    "arguments",
    "length",
    "arg",
    "argType",
    "push",
    "Array",
    "isArray",
    "inner",
    "apply",
    "toString",
    "join",
    "default",
    "ReactDOM",
    "_classCallCheck",
    "instance",
    "Constructor",
    "TypeError",
    "_defineProperties",
    "target",
    "props",
    "descriptor",
    "configurable",
    "writable",
    "_createClass",
    "protoProps",
    "staticProps",
    "_setPrototypeOf",
    "setPrototypeOf",
    "__proto__",
    "_inherits",
    "subClass",
    "superClass",
    "constructor",
    "_getPrototypeOf",
    "getPrototypeOf",
    "_isNativeReflectConstruct",
    "Reflect",
    "construct",
    "sham",
    "Proxy",
    "Date",
    "e",
    "_typeof",
    "obj",
    "iterator",
    "_possibleConstructorReturn",
    "self",
    "ReferenceError",
    "_createSuper",
    "Derived",
    "result",
    "Super",
    "NewTarget",
    "this",
    "_arrayLikeToArray",
    "arr",
    "len",
    "arr2",
    "_unsupportedIterableToArray",
    "minLen",
    "slice",
    "from",
    "test",
    "_slicedToArray",
    "_arr",
    "_n",
    "_d",
    "_e",
    "undefined",
    "_s",
    "_i",
    "next",
    "done",
    "err",
    "asyncGeneratorStep",
    "gen",
    "resolve",
    "reject",
    "_next",
    "_throw",
    "info",
    "error",
    "Promise",
    "then",
    "_asyncToGenerator",
    "fn",
    "args",
    "doRequest",
    "url",
    "fetch",
    "response",
    "json",
    "console",
    "PwsMediaService",
    "baseUrl",
    "document",
    "location",
    "origin",
    "doMediaRequest",
    "slug",
    "encodeURIComponent",
    "publishedAt",
    "includeVideos",
    "perPage",
    "id",
    "resume",
    "config",
    "query",
    "entries",
    "reduce",
    "acc",
    "val",
    "_toConsumableArray",
    "iter",
    "Skeleton",
    "type",
    "shape",
    "pulse",
    "width",
    "height",
    "size",
    "skeletonClass",
    "classnames",
    "styles",
    "className",
    "style",
    "data-name",
    "videos",
    "tabHeaders",
    "idx",
    "ZypeTabSkeleton",
    "ZypeTabsSkeleton",
    "forwardSvg",
    "createElementNS",
    "setAttribute",
    "poly1",
    "poly2",
    "appendChild",
    "rewindSvg",
    "poly3",
    "poly4",
    "ZypePlayerSkeleton",
    "ZypePlayer",
    "intervalId",
    "player",
    "rewindButton",
    "forwardButton",
    "videoPlayerRef",
    "loadPlayerScript",
    "video",
    "apiKey",
    "isAudio",
    "mediaService",
    "getIsAudio",
    "res",
    "script",
    "createElement",
    "src",
    "async",
    "body",
    "getPlayerRef",
    "setInterval",
    "doGetPlayerRef",
    "window",
    "theoplayer",
    "initPlayer",
    "clearInterval",
    "handlePresentationChange",
    "setState",
    "isFullScreen",
    "isLoading",
    "scrollToVideoPlayer",
    "addEventListener",
    "playNextVideo",
    "initAdditionalButtons",
    "v",
    "presentationMode",
    "Button",
    "THEOplayer",
    "videojs",
    "getComponent",
    "extend",
    "tooltipSpan",
    "toggleTooltip",
    "classList",
    "toggle",
    "innerText",
    "el",
    "handleClick",
    "currentTime",
    "buildCSSClass",
    "registerComponent",
    "ui",
    "getChild",
    "addChild",
    "warn",
    "state",
    "reFetchCurVideo",
    "prevProps",
    "current",
    "scrollTo",
    "left",
    "top",
    "offsetTop",
    "behavior",
    "playerClass",
    "ref",
    "display",
    "title",
    "description",
    "_defineProperty",
    "ownKeys",
    "enumerableOnly",
    "keys",
    "getOwnPropertySymbols",
    "symbols",
    "filter",
    "sym",
    "getOwnPropertyDescriptor",
    "_objectSpread2",
    "source",
    "forEach",
    "getOwnPropertyDescriptors",
    "defineProperties",
    "ZypeNavBar",
    "onChange",
    "currentTarget",
    "onSubmit",
    "preventDefault",
    "onSearch",
    "placeholder",
    "tabs",
    "map",
    "tab",
    "onClick",
    "setActiveTab",
    "activeTab",
    "ZypeVideoComponent",
    "nextVideo",
    "setCurrentVideo",
    "alt",
    "thumbnails",
    "original",
    "max",
    "truncated",
    "substr",
    "Math",
    "min",
    "lastIndexOf",
    "truncateString",
    "ZypePagination",
    "currentPage",
    "totalPages",
    "goToPrevPage",
    "goToNextPage",
    "isLoadingNext",
    "disabled",
    "ZypeTab",
    "getOnAirVideo",
    "hasLive",
    "debug",
    "firstPage",
    "pages",
    "curPage",
    "getNextPage",
    "doGetNextPage",
    "getVideos",
    "categoryName",
    "categories",
    "categoryValue",
    "values",
    "resp",
    "pagination",
    "getNextVideo",
    "curPageVideos",
    "nextPageVideos",
    "isActiveTab",
    "searchTabConfig",
    "ZypeTabs",
    "searchTabActive",
    "loadingSearchResults",
    "searchTab",
    "doSearch",
    "ZypeAd",
    "useEffect",
    "gptadslots",
    "googletag",
    "cmd",
    "gads",
    "node",
    "getElementsByTagName",
    "parentNode",
    "insertBefore",
    "defineSlot",
    "path",
    "setTargeting",
    "addService",
    "pubads",
    "enableSingleRequest",
    "enableAsyncRendering",
    "enableServices",
    "ZypeMedia",
    "loadVideo",
    "initializeTabs",
    "getVideoBySlug",
    "isAuthenticated",
    "cookie",
    "includes",
    "subscriptionRequired",
    "loginLinkEl",
    "querySelector",
    "HTMLElement",
    "click",
    "subsRequireLinkEl",
    "getElementsByClassName",
    "subsReactivateLinkEl",
    "pushVideoToHistory",
    "groupSlug",
    "playerApiKey",
    "curVideo",
    "getConfig",
    "loadingTabs",
    "activeTabIdx",
    "findIndex",
    "curTabVideos",
    "userSubscribed",
    "userCancelledSubs",
    "setNextVideo",
    "getTabByCategories",
    "find",
    "some",
    "history",
    "pushState",
    "pageSlug",
    "episodeSlug",
    "handleHistoryTravel",
    "onpopstate",
    "CnbMediaApp",
    "initialVideoResponse",
    "authenticated",
    "shortDescription",
    "manifest",
    "onAir",
    "duration",
    "autoplay",
    "viewVideoResponse",
    "Component",
    "rootElement",
    "getElementById",
    "data",
    "getAttribute",
    "JSON",
    "parse",
    "render",
    "StrictMode"
  ],
  "mappings": "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",
  "file": "static/js/main.js",
  "sourcesContent": [
    " \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n",
    "module.exports = React;",
    "/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n",
    "module.exports = ReactDOM;",
    "export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}",
    "function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}",
    "export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}",
    "import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}",
    "export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}",
    "export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}",
    "export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}",
    "import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}",
    "export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}",
    "import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n  return function () {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (isNativeReflectConstruct()) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}",
    "export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}",
    "import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(n);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}",
    "import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}",
    "export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}",
    "export default function _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}",
    "export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}",
    "function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nexport default function _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}",
    "import {\n    // ZypeOnAirStatusResponse,\n    ZypeViewVideoResponse,\n    ZypeListVideosResponse,\n    ZypeConfigResponse,\n    ZypeIsAudioResponse,\n} from \"../zype/ZypeMedia.types\";\n\nexport interface ListVideosConfig {\n    categories?: { [category: string]: string };\n    categoryValue?: string;\n    categoryName?: string;\n    startDate?: number;\n    groupSlug?: string;\n    perPage?: number;\n    endDate?: number;\n    query?: string;\n    page?: number;\n}\n\nconst doRequest = async <T = any>(url: string) => {\n    try {\n        const response = await fetch( url );\n        return await response.json() as T;\n    } catch (e) {\n        console.error(\"Error while fetching PWS API:\", e);\n    }\n};\n\nexport class PwsMediaService {\n    private baseUrl: string;\n\n    constructor() {\n        this.baseUrl = document.location.origin;\n    }\n\n    getOnAirVideo() {\n        // Old API Ex: https://services.premierenetworks.com/media/clay-and-buck/on-air?manifest=false\n        return this.doMediaRequest<ZypeViewVideoResponse>(`wp-json/wp/v2/media/on-air/`);\n    }\n\n    getVideoBySlug(slug: string) {\n        if (slug === \"live\") {\n            // Old API Ex: https://services.premierenetworks.com/media/clay-and-buck/on-air\n            return this.doMediaRequest<ZypeViewVideoResponse>(`wp-json/wp/v2/media/on-air/`);\n        }\n        // Old API Ex: https://services.premierenetworks.com/media/clay-and-buck/videos/slug/what-s-next-for-the-disgraced-ny-governor\n        slug = encodeURIComponent( slug );\n        return this.doMediaRequest<ZypeViewVideoResponse>(`wp-json/wp/v2/media/videos/slug/${slug}`);\n    }\n\n    getNextVideo(publishedAt: string) {\n        // Old API Ex: //services.premierenetworks.com/media/clay-and-buck/next/64418dddf0b6de0001d66fb7\n        publishedAt = encodeURIComponent( publishedAt );\n        return this.doMediaRequest<ZypeViewVideoResponse>(`wp-json/wp/v2/media/next/?publishedAt=${publishedAt}`);\n    }\n\n    getConfig(includeVideos = true, perPage = 12) {\n        // Old API Ex: //services.premierenetworks.com/media/clay-and-buck/config?includeVideos=true&perPage=12\n        return this.doMediaRequest<ZypeConfigResponse>(\n            `wp-json/wp/v2/media/config/?includeVideos=${includeVideos}&perPage=${perPage}`,\n        );\n    }\n\n    getIsAudio(id: string) {\n        // Old API Ex: //services.premierenetworks.com/media/clay-and-buck/is-audio/64418dddf0b6de0001d66fb7?onAir=false\n        return this.doMediaRequest<ZypeIsAudioResponse>(`wp-json/wp/v2/media/is-audio/${id}`);\n    }\n\n    getVideos(resume: string | null = null, config: ListVideosConfig = {}) {\n        if (resume) {\n            // Old API Ex: //services.premierenetworks.com/media/clay-and-buck/videos?resume=eyJwYWdlIjoyLCJwZXJQYWdlIjoxMiwiY2F0ZWdvcmllcyI6eyJDbGF5IGFuZCBCdWNrIjoiQXVkaW8gQ2xpcHMifX0=\n            resume = encodeURIComponent( resume );\n            return this.doMediaRequest<ZypeListVideosResponse>(`wp-json/wp/v2/media/videos/?resume=${resume}`);\n        }\n        let query = Object.entries(config).reduce((acc, [key, val]) => acc + `&${key}=${encodeURIComponent(val)}`, \"\");\n        if (query) {\n            query = `?${query.slice(1)}`;\n        }\n        // Old API Ex: //services.premierenetworks.com/media/clay-and-buck/videos/?query=Former\n        return this.doMediaRequest<ZypeListVideosResponse>(`wp-json/wp/v2/media/videos/${query}`);\n    }\n\n    private doMediaRequest<T>(url: string) {\n        return doRequest<T>(`${this.baseUrl}/${url}`);\n    }\n}\n",
    "import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}",
    "import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}",
    "export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}",
    "export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}",
    "import * as React from \"react\";\nimport { Skeleton } from \"../shared/Skeleton.component\";\n\nconst videos: React.ReactElement<HTMLElement>[] = [];\nconst tabHeaders: React.ReactElement<HTMLElement>[] = [];\n\nfor (let idx = 0; idx < 12; idx++) {\n    videos.push(\n        <figure className=\"component-zype-video skeleton\" key={idx}>\n            <div className=\"thumb-container\">\n                <Skeleton pulse={true} type=\"image\" name=\"thumbnail\" shape=\"16x9\" />\n            </div>\n            <figcaption>\n                <Skeleton pulse={true} type=\"text\" name=\"thumbnail\" size={5} />\n            </figcaption>\n        </figure>,\n    );\n}\n\nfor (let idx = 0; idx < 4; idx++) {\n    tabHeaders.push(\n        <div className={`zype-tab-header ${idx === 0 ? \"active\" : \"\"}`} key={idx} style={{ width: \"14rem\" }}>\n            <Skeleton pulse={true} type=\"text\" name=\"thumbnail\" size={5} />\n        </div>,\n    );\n}\n\nexport function ZypeTabSkeleton() {\n    return (\n        <div className=\"component-zype-tab active\">\n            <div className=\"videos-container\">{videos}</div>\n        </div>\n    );\n}\n\nexport function ZypeTabsSkeleton() {\n    return (\n        <div className=\"component-zype-tabs\">\n            <div className=\"component-zype-nav-bar\">\n                <div />\n                <div className=\"tab-headers-container\">{tabHeaders}</div>\n            </div>\n\n            <div className=\"tabs-container\">\n                <ZypeTabSkeleton />\n            </div>\n        </div>\n    );\n}\n",
    "import classnames from \"classnames\";\nimport * as React from \"react\";\nimport \"./Skeleton.style.scss\";\n\ninterface SkeletonProps {\n    type: \"image\" | \"text\";\n    shape?: \"auto\" | \"circle\" | \"square\" | \"16x9\" | \"tall\";\n    pulse?: boolean;\n    width?: string;\n    height?: string;\n    size?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n    name?: string;\n}\n\nexport const Skeleton = ({\n    type,\n    shape = \"auto\",\n    pulse = false,\n    width = \"\",\n    height = \"\",\n    size = 0,\n    name = \"\",\n}: SkeletonProps) => {\n    const skeletonClass = classnames(\n        \"component-skeleton\",\n        `type-${type}`,\n        `shape-${shape}`,\n        // this is ugly, but computed property names aren't supported with current packages =(\n        [\n            ...(type === \"text\" && size ? [`size-${size}`] : []),\n            ...(pulse ? [\"with-pulse\"] : []),\n        ],\n    );\n\n    if (shape === \"square\" || shape === \"circle\") {\n        height = width;\n    }\n    const styles: React.CSSProperties = {};\n    if (width) {\n        styles.width = width;\n    }\n    if (height) {\n        styles.height = height;\n    }\n\n    return (<div className={skeletonClass} style={styles} data-name={name || null} />);\n};\n",
    "export const forwardSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n\nforwardSvg.setAttribute(\"height\", \"16\");\nforwardSvg.setAttribute(\"width\", \"24\");\nforwardSvg.setAttribute(\"fill\", \"none\");\nforwardSvg.setAttribute(\"viewBox\", \"0 0 28 20\");\n\nconst poly1 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\nconst poly2 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n\npoly1.setAttribute(\"points\", \"0,0 12,8 0,16\");\npoly2.setAttribute(\"points\", \"12,0 24,8 12,16\");\n\npoly1.setAttribute(\"fill\", \"#fff\");\npoly2.setAttribute(\"fill\", \"#fff\");\n\nforwardSvg.appendChild(poly1);\nforwardSvg.appendChild(poly2);\n\nexport const rewindSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n\nrewindSvg.setAttribute(\"width\", \"24\");\nrewindSvg.setAttribute(\"height\", \"16\");\nrewindSvg.setAttribute(\"fill\", \"none\");\nrewindSvg.setAttribute(\"viewBox\", \"0 0 28 20\");\n\nconst poly3 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\nconst poly4 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n\npoly3.setAttribute(\"points\", \"0,8 12,0 12,16\");\npoly4.setAttribute(\"points\", \"12,8 24,0 24,16\");\n\npoly3.setAttribute(\"fill\", \"#fff\");\npoly4.setAttribute(\"fill\", \"#fff\");\n\nrewindSvg.appendChild(poly3);\nrewindSvg.appendChild(poly4);\n",
    "import * as React from \"react\";\nimport { Skeleton } from \"../shared/Skeleton.component\";\n\nexport function ZypePlayerSkeleton() {\n    return (\n        <figure className=\"component-zype-player-skeleton\">\n            <div className=\"player-container\">\n                <Skeleton pulse={true} type=\"image\" name=\"main image\" shape=\"16x9\" />\n            </div>\n            <figcaption>\n                <Skeleton pulse={true} type=\"text\" name=\"Title\" size={3} />\n            </figcaption>\n        </figure>\n    );\n}\n",
    "import * as React from \"react\";\nimport classnames from \"classnames\";\n\nimport { rewindSvg, forwardSvg } from \"./playerButtons\";\nimport { ZypePlayerSkeleton } from \"./ZypePlayerSkeleton.component\";\nimport { ZypeVideo } from \"./ZypeMedia.types\";\nimport { PwsMediaService } from \"../service/pws-media.service\";\n\ninterface ZypePlayerProps {\n    reFetchCurVideo: () => void;\n    playNextVideo: () => void;\n    video: ZypeVideo | null;\n    apiKey: string | null;\n    mediaService: PwsMediaService;\n}\n\ninterface ZypePlayerState {\n    isFullScreen: boolean;\n    isLoading: boolean;\n}\n\ndeclare global {\n    interface Window {\n        theoplayer: any;\n        THEOplayer: any;\n    }\n}\n\nexport class ZypePlayer extends React.PureComponent<ZypePlayerProps, ZypePlayerState> {\n    intervalId!: NodeJS.Timer;\n    player: any = null;\n    rewindButton: any;\n    forwardButton: any;\n\n    private videoPlayerRef: React.RefObject<HTMLDivElement>;\n\n    constructor(props: ZypePlayerProps) {\n        super(props);\n\n        this.videoPlayerRef = React.createRef();\n\n        this.state = {\n            isFullScreen: false,\n            isLoading: true,\n        };\n    }\n\n    componentDidMount() {\n        if (this.props.video && this.props.apiKey) {\n            if (!this.props.video.id) {\n                this.props.reFetchCurVideo();\n            } else {\n                this.loadPlayerScript(this.props.video, this.props.apiKey);\n            }\n        }\n    }\n\n    componentDidUpdate(prevProps: ZypePlayerProps) {\n        if (\n            (\n                !prevProps.apiKey\n                || !prevProps.video\n                || !prevProps.video.id\n                || (this.props.video && prevProps.video.id !== this.props.video.id)\n                || (this.props.video?.isAudio !== prevProps.video.isAudio)\n            )\n            && this.props.video\n            && this.props.apiKey\n        ) {\n            if (!this.props.video.id) {\n                this.props.reFetchCurVideo();\n            } else {\n                this.loadPlayerScript(this.props.video, this.props.apiKey);\n            }\n        }\n    }\n\n    loadPlayerScript = async (video: ZypeVideo, apiKey: string) => {\n        if (!video.id) {\n            return console.error(\"Couldn't initialize player - id is unavailable\");\n        }\n\n        // Handle setting player to audio-only mode\n        let isAudio = \"\";\n\n        // that is already set on live videos\n        if (typeof video.isAudio === \"boolean\") {\n            if (video.isAudio) {\n                isAudio = \"&audio=true\";\n            }\n        } else {\n            //const res = await this.props.mediaService.getIsAudio(video.id, video.onAir);\n            const res = await this.props.mediaService.getIsAudio(video.id);\n            if (res && res.isAudio) {\n                isAudio = \"&audio=true\";\n            }\n        }\n\n        const script = document.createElement(\"script\");\n        // script.src = `https://player.zype.com/embed/${video.id}.js`\n        //     + `?api_key=${apiKey}&autoplay=${video.autoplay}&controls=true${isAudio}`;\n        script.src = `https://player.zype.com/embed/${video.id}.js`\n            + `?api_key=${apiKey}&autoplay=false&controls=true${isAudio}`;\n\n        script.async = true;\n        document.body.appendChild(script);\n\n        this.getPlayerRef();\n    }\n\n    getPlayerRef = () => {\n        this.intervalId = setInterval(this.doGetPlayerRef, 500);\n    }\n\n    doGetPlayerRef = () => {\n        if (window.theoplayer) {\n            this.player = window.theoplayer;\n            this.initPlayer();\n            clearInterval(this.intervalId);\n        }\n    }\n\n    handlePresentationChange = (mode?: \"fullscreen\" | \"inline\") => {\n        switch (mode) {\n            case \"fullscreen\":\n                this.setState({ isFullScreen: true });\n                break;\n            case \"inline\":\n                this.setState({ isFullScreen: false });\n                break;\n        }\n    }\n\n    initPlayer = () => {\n        this.setState({ isLoading: false });\n        this.scrollToVideoPlayer();\n        this.player.addEventListener(\"ended\", this.props.playNextVideo);\n        this.initAdditionalButtons();\n\n        this.player.addEventListener(\n            \"presentationmodechange\",\n            (v: any) => this.handlePresentationChange(v.presentationMode),\n        );\n    }\n\n    initAdditionalButtons = () => {\n        // not sure how reliable that is, so better try-catch\n        try {\n            // build buttons only on first player load\n            if (!this.rewindButton || !this.forwardButton) {\n                const Button = window.THEOplayer.videojs.getComponent(\"Button\");\n\n                this.rewindButton = window.THEOplayer.videojs.extend(Button, {\n                    constructor() {\n                        Button.apply(this, arguments);\n\n                        const tooltipSpan = document.createElement(\"span\");\n                        tooltipSpan.className = \"theo-button-tooltip vjs-hidden\";\n                        tooltipSpan.innerText = \"-10 sec\";\n\n                        function toggleTooltip() {\n                            tooltipSpan.classList.toggle(\"vjs-hidden\");\n                        }\n\n                        this.el().addEventListener(\"mouseover\", toggleTooltip);\n                        this.el().addEventListener(\"mouseout\", toggleTooltip);\n\n                        this.el().appendChild(tooltipSpan);\n                        this.el().appendChild(rewindSvg);\n                    },\n                    handleClick: () => {\n                        this.player.currentTime -= 10;\n                    },\n                    buildCSSClass: () => \"vjs-button custom-player-button rewind\",\n                });\n\n                this.forwardButton = window.THEOplayer.videojs.extend(Button, {\n                    constructor() {\n                        Button.apply(this, arguments);\n\n                        const tooltipSpan = document.createElement(\"span\");\n                        tooltipSpan.className = \"theo-button-tooltip vjs-hidden\";\n                        tooltipSpan.innerText = \"+10 sec\";\n\n                        function toggleTooltip() {\n                            tooltipSpan.classList.toggle(\"vjs-hidden\");\n                        }\n\n                        this.el().addEventListener(\"mouseover\", toggleTooltip);\n                        this.el().addEventListener(\"mouseout\", toggleTooltip);\n\n                        this.el().appendChild(tooltipSpan);\n                        this.el().appendChild(forwardSvg);\n                    },\n                    handleClick: () => {\n                        this.player.currentTime += 10;\n                    },\n                    buildCSSClass: () => {\n                        return \"vjs-button custom-player-button forward\";\n                    },\n                });\n            }\n\n            window.THEOplayer.videojs.registerComponent(\"RewindButton\", this.rewindButton);\n            this.player.ui.getChild(\"controlBar\").addChild(\"RewindButton\", {});\n            window.THEOplayer.videojs.registerComponent(\"ForwardButton\", this.forwardButton);\n            this.player.ui.getChild(\"controlBar\").addChild(\"ForwardButton\", {});\n\n        } catch (e) {\n            console.warn(\"Error initializing additional player buttons\", e);\n        }\n    }\n\n    scrollToVideoPlayer(): void {\n        if (this.videoPlayerRef.current) {\n            window.scrollTo({\n                left: 0,\n                top: this.videoPlayerRef.current.offsetTop,\n                behavior: \"smooth\",\n            });\n        }\n    }\n\n    render() {\n        const playerClass = classnames(\"component-zype-player\", {\n            \"player-fullscreen\": this.state.isFullScreen,\n        });\n\n        return(\n            <div className={playerClass} ref={this.videoPlayerRef}>\n                {this.state.isLoading && <ZypePlayerSkeleton />}\n\n                <figure style={{ display: this.state.isLoading ? \"none\" : \"block\" }}>\n                    <div className=\"player-container\">\n                        <div id=\"zype_player\" />\n                    </div>\n                    {\n                        this.props.video && (\n                            <figcaption>\n                                <div className=\"title\">{this.props.video.title}</div>\n                                <p>{this.props.video.description}</p>\n                            </figcaption>\n                        )\n                    }\n                </figure>\n            </div>\n        );\n    }\n}\n",
    "export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}",
    "import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}",
    "import * as React from \"react\";\n\nimport { ZypeConfigTab } from \"./ZypeMedia.types\";\n\ninterface NavBarProps {\n    setActiveTab: (idx: number) => void;\n    onSearch: (query: string) => void;\n    tabs: ZypeConfigTab[] | null;\n    activeTab: number;\n}\n\ninterface NavBarState {\n    query: string;\n}\n\nexport class ZypeNavBar extends React.Component<NavBarProps, NavBarState> {\n    constructor(props: NavBarProps) {\n        super(props);\n\n        this.state = { query: \"\" };\n    }\n\n    onChange = (e: React.SyntheticEvent<HTMLInputElement>) => {\n        this.setState({ query: e.currentTarget.value });\n    }\n\n    onSubmit = (e: React.SyntheticEvent<HTMLFormElement>) => {\n        e.preventDefault();\n        this.props.onSearch(this.state.query);\n    }\n\n    render() {\n        return (\n            <div className=\"component-zype-nav-bar\">\n                <form onSubmit={this.onSubmit}>\n                    <input\n                        type=\"text\"\n                        value={this.state.query}\n                        onChange={this.onChange}\n                        placeholder=\"Search videos...\"\n                    />\n                    <input type=\"submit\" value=\"Search\" />\n                </form>\n\n                <div className=\"tab-headers-container\">\n                    { this.props.tabs && this.props.tabs.map((tab, idx) => (\n                        <div\n                            onClick={() => this.props.setActiveTab(idx)}\n                            className={`zype-tab-header ${this.props.activeTab === idx ? \"active\" : \"\"}`}\n                            key={tab.title}\n                        >\n                            {tab.title}\n                        </div>\n                    ))}\n                </div>\n            </div>\n        );\n    }\n}\n",
    "import * as React from \"react\";\n\nimport { truncateString } from \"../helpers/string\";\nimport { ZypeVideo } from \"./ZypeMedia.types\";\n\ninterface ZypeVideoProps {\n    setCurrentVideo: (video: ZypeVideo, nextVideo: ZypeVideo | null, idx: number) => void;\n    nextVideo: ZypeVideo | null;\n    video: ZypeVideo;\n    idx: number;\n}\n\nconst FALLBACK_THUMBNAIL = \"https://i.iheart.com/v3/re/new_assets/612e55ad788a9e9d55d124e6\";\n\nexport function ZypeVideoComponent({ video, nextVideo, setCurrentVideo, idx }: ZypeVideoProps) {\n    return (\n        <figure className=\"component-zype-video\">\n            <div className=\"thumb-container\" onClick={() => setCurrentVideo(video, nextVideo, idx)}>\n                <img className=\"thumbnail\" alt={video.title} src={video.thumbnails[0] ? video.thumbnails[0].url : FALLBACK_THUMBNAIL} />\n            </div>\n            <figcaption>\n                <div className=\"title\" onClick={() => setCurrentVideo(video, nextVideo, idx)}>\n                    {video.title}\n                </div>\n                <p className=\"description\">{truncateString(video.description, 55)}</p>\n            </figcaption>\n        </figure>\n    );\n}\n",
    "export const truncateString = (original: string, max: number) => {\n    if (original.length < max) {\n        return original;\n    }\n\n    let truncated = \"\";\n    truncated = original.substr(0, max - 4);\n    truncated = truncated.substr(0, Math.min(truncated.length, truncated.lastIndexOf(\" \")));\n    return truncated + \" ...\";\n};\n",
    "import * as React from \"react\";\n\ninterface ZypePaginationProps {\n    goToPrevPage: () => void;\n    goToNextPage: () => void;\n    isLoadingNext: boolean;\n    currentPage: number;\n    totalPages: number;\n}\n\nexport function ZypePagination({\n    currentPage,\n    totalPages,\n    goToPrevPage,\n    goToNextPage,\n    isLoadingNext,\n}: ZypePaginationProps) {\n    return (\n        <div className=\"component-zype-pagination\">\n            <button onClick={goToPrevPage} disabled={currentPage <= 1}>&lt;</button>\n            <span>Page {currentPage} of {totalPages}</span>\n            <button onClick={goToNextPage} disabled={currentPage >= totalPages || isLoadingNext}>&gt;</button>\n        </div>\n    );\n}\n",
    "import * as React from \"react\";\n\nimport { ZypeConfigTab, ZypeVideo, ZypeListVideosResponse } from \"./ZypeMedia.types\";\nimport { ZypeVideoComponent } from \"./ZypeVideo.component\";\nimport { ZypePagination } from \"./ZypePagination.component\";\nimport { PwsMediaService } from \"../service/pws-media.service\";\n\ninterface ZypeTabProps {\n    setCurrentVideo: (video: ZypeVideo, nextVideo: ZypeVideo | null) => void;\n    mediaService: PwsMediaService;\n    isActiveTab: boolean;\n    tab: ZypeConfigTab;\n}\n\ninterface ZypeVideoState {\n    isLoadingNext: boolean;\n    resume: string | null;\n    pages: ZypeVideo[][];\n    totalPages: number;\n    curPage: number;\n}\n\nexport class ZypeTab extends React.Component<ZypeTabProps, ZypeVideoState> {\n    constructor(props: ZypeTabProps) {\n        super(props);\n\n        this.state = {\n            isLoadingNext: false,\n            totalPages: 1,\n            resume: null,\n            curPage: 1,\n            pages: [],\n        };\n    }\n\n    componentDidMount() {\n        const { tab } = this.props;\n        if (tab.videos && tab.videos.length && tab.pagination) {\n            this.setState({\n                totalPages: tab.pagination.pages,\n                pages: [tab.videos],\n            }, this.getOnAirVideo);\n        } else {\n            this.getOnAirVideo();\n        }\n\n        if (tab.resume) {\n            this.setState(\n                { resume: tab.resume },\n                () => this.getNextPage(),\n            );\n        } else if (tab.slug !== \"search\") {\n            this.getNextPage();\n        }\n    }\n\n    getOnAirVideo = async () => {\n        if (!this.props.tab.hasLive) {\n            return;\n        }\n\n        const res = await this.props.mediaService.getOnAirVideo();\n\n        if (res && res.video) {\n            // make sure audio (guest host) stream doesn't load onl Dittocam tab\n            if (this.props.tab.slug === \"dittocam\" && res.video.isAudio) {\n                console.debug(\"Skipped live stream on Dittocam tab - audio-only\");\n            } else {\n                // set stream to audio-only for audio tab\n                if (this.props.tab.slug === \"audio\") {\n                    res.video.isAudio = true;\n                }\n                const firstPage = this.state.pages.length ? [res.video, ...this.state.pages[0]] : [res.video];\n                this.setState({ pages: [firstPage, ...this.state.pages.slice(1)] });\n                console.debug(\"Got live video\", res);\n            }\n        } else {\n            console.debug(\"No live video available\");\n        }\n    }\n\n    goToNextPage = () => {\n        this.setState(\n            { curPage: this.state.curPage + 1 },\n            () => {\n                if (this.state.resume) {\n                    this.getNextPage();\n                }\n            },\n        );\n    }\n\n    goToPrevPage = () => {\n        this.setState({ curPage: this.state.curPage - 1 });\n    }\n\n    getNextPage = async () => {\n        if (!this.props.tab.videos || this.state.resume) {\n            this.setState({ isLoadingNext: true }, this.doGetNextPage);\n        } else {\n            console.error(`Can't get next page for tab \"${this.props.tab.title}\". No resume`);\n        }\n    }\n\n    doGetNextPage = async () => {\n        let resp: ZypeListVideosResponse | undefined;\n\n        if (!this.props.tab.videos) {\n            // resp = await this.props.mediaService.getVideos(null, { groupSlug: this.props.tab.slug });\n            resp = await this.props.mediaService.getVideos(null, {\n                                              categoryName: Object.keys(this.props.tab.categories)[0],\n                                              categoryValue: Object.values(this.props.tab.categories)[0]\n                                        });\n        } else {\n            resp = await this.props.mediaService.getVideos(this.state.resume);\n        }\n\n        if (resp) {\n            this.setState({\n                pages: [...this.state.pages, ...[resp.videos || []]],\n                totalPages: resp.pagination.pages,\n                resume: resp.resume,\n                isLoadingNext: false,\n            });\n        } else {\n            this.setState({ isLoadingNext: false });\n        }\n    }\n\n    getNextVideo = (idx: number) => {\n        const curPageVideos = this.state.pages[this.state.curPage - 1];\n        const nextPageVideos = this.state.pages[this.state.curPage];\n\n        if (curPageVideos && curPageVideos[idx + 1]) {\n            return curPageVideos[idx + 1];\n        }\n\n        if (nextPageVideos && nextPageVideos[0]) {\n            return nextPageVideos[0];\n        }\n\n        return null;\n    }\n\n    render() {\n        const videos = this.state.pages[this.state.curPage - 1];\n\n        return (\n            <div className={`component-zype-tab ${this.props.isActiveTab ? \"active\" : \"\"}`}>\n                <div className={`tab-header ${this.props.tab.slug === \"search\" ? \"with-title\" : \"\"}`}>\n                    {this.props.tab.slug === \"search\" && (<h3 className=\"tab-title\">{this.props.tab.title}</h3>)}\n\n                    <ZypePagination\n                        isLoadingNext={this.state.isLoadingNext}\n                        totalPages={this.state.totalPages}\n                        currentPage={this.state.curPage}\n                        goToNextPage={this.goToNextPage}\n                        goToPrevPage={this.goToPrevPage}\n                    />\n                </div>\n                <div className=\"videos-container\">\n                    {\n                        videos && videos.map((video, idx) => (\n                            <ZypeVideoComponent\n                                setCurrentVideo={this.props.setCurrentVideo}\n                                nextVideo={this.getNextVideo(idx)}\n                                key={video.slug}\n                                video={video}\n                                idx={idx}\n                            />\n                        ))\n                    }\n                </div>\n            </div>\n        );\n    }\n}\n",
    "import * as React from \"react\";\n\nimport { ZypeTabSkeleton } from \"./ZypeTabsSkeleton.component\";\nimport { ZypeConfigTab, ZypeVideo } from \"./ZypeMedia.types\";\nimport { PwsMediaService } from \"../service/pws-media.service\";\nimport { ZypeNavBar } from \"./ZypeNavBar.component\";\nimport { ZypeTab } from \"./ZypeTab.component\";\n\ninterface ZypeTabsProps {\n    setCurrentVideo: (video: ZypeVideo, nextVideo: ZypeVideo | null) => void;\n    setActiveTab: (idx: number) => void;\n    mediaService: PwsMediaService;\n    tabs: ZypeConfigTab[] | null;\n    loadingTabs: boolean;\n    activeTab: number;\n}\n\ninterface ZypeTabsState {\n    loadingSearchResults: boolean;\n    searchTab: ZypeConfigTab;\n    searchTabActive: boolean;\n}\n\nconst searchTabConfig: ZypeConfigTab = {\n    categories: {},\n    hasLive: false,\n    title: \"Search results\",\n    slug: \"search\",\n    resume: null,\n};\n\nexport class ZypeTabs extends React.Component<ZypeTabsProps, ZypeTabsState> {\n    constructor(props: ZypeTabsProps) {\n        super(props);\n\n        this.state = {\n            loadingSearchResults: true,\n            searchTab: searchTabConfig,\n            searchTabActive: false,\n        };\n    }\n\n    setActiveTab = (idx: number) => {\n        if (this.state.searchTabActive) {\n            this.setState({ searchTabActive: false }, () => this.props.setActiveTab(idx));\n        } else {\n            this.props.setActiveTab(idx);\n        }\n    }\n\n    onSearch = async (query: string) => {\n        if (!query) {\n            return console.info(\"Can't search with empty query param\");\n        }\n\n        searchTabConfig.title = `Search results for \"${query}\":`;\n\n        this.setState(\n            {\n                searchTabActive: true,\n                loadingSearchResults: true,\n                searchTab: searchTabConfig,\n            },\n            () => this.doSearch(query),\n        );\n    }\n\n    doSearch = async (query: string) => {\n        const res = await this.props.mediaService.getVideos(null, { query });\n\n        if (res) {\n            this.setState({\n                searchTab: { ...searchTabConfig, ...res },\n                loadingSearchResults: false,\n            });\n        } else {\n            console.warn(\"Search failed!\");\n            this.setState({ searchTabActive: false, loadingSearchResults: false });\n        }\n    }\n\n    render() {\n        return (\n            <div className=\"component-zype-tabs\">\n                <ZypeNavBar\n                    activeTab={this.state.searchTabActive ? -1 : this.props.activeTab}\n                    setActiveTab={this.setActiveTab}\n                    onSearch={this.onSearch}\n                    tabs={this.props.tabs}\n                />\n                <div className=\"tabs-container\">\n                    {this.props.tabs && this.props.tabs.map((tab, idx) => (\n                        <ZypeTab\n                            isActiveTab={!this.state.searchTabActive && this.props.activeTab === idx}\n                            setCurrentVideo={this.props.setCurrentVideo}\n                            mediaService={this.props.mediaService}\n                            key={tab.title}\n                            tab={tab}\n                        />\n                    ))}\n\n                    {/* Search */}\n                    {\n                        this.state.searchTabActive && this.state.loadingSearchResults\n                        ? <ZypeTabSkeleton />\n                        : (\n                            <ZypeTab\n                                isActiveTab={this.state.searchTabActive}\n                                setCurrentVideo={this.props.setCurrentVideo}\n                                mediaService={this.props.mediaService}\n                                tab={this.state.searchTab}\n                            />\n                        )\n                    }\n                </div>\n            </div>\n        );\n    }\n}\n",
    "import React, { useEffect } from 'react';\n\ndeclare global {\n    interface Window { googletag: any; gptadslots: any; }\n}\n\nexport interface ZypeAdProps {\n    path: string;\n    size: [number, number];\n    id: string;\n}  \n\nexport const ZypeAd = (props: ZypeAdProps) => {\n    useEffect(() => {\n        let gptadslots = window.gptadslots;\n        let googletag  = window.googletag || {};\n\n        googletag.cmd = googletag.cmd || [];\n\n        (function(){ var gads = document.createElement('script');\n            gads.async = true; gads.type = 'text/javascript';\n            gads.src = '//www.googletagservices.com/tag/js/gpt.js';\n            var node = document.getElementsByTagName('script')[0];\n            if(node && node.parentNode) {\n                node.parentNode.insertBefore(gads, node);\n            }\n        })();\n    \n        googletag.cmd.push(function() {\n            if(!gptadslots[4]) {\n                // It should be already defined. If it isn't, do it here. If it is, then defining it twice breaks things\n                gptadslots[4] = googletag.defineSlot(props.path, [props.size], props.id)\n                    .setTargeting('prnpage', ['videos'])\n                    .setTargeting('pos', ['top'])\n                    .addService(googletag.pubads());\n            }\n    \n            googletag.pubads().enableSingleRequest();\n            googletag.pubads().setTargeting('prntype', ['web'])\n                .setTargeting('prngenre', ['conservative_talk']);\n            googletag.pubads().enableAsyncRendering();\n            googletag.enableServices();\n        });\n    });\n\n    return (<div id={props.id} />);\n };\n",
    "import * as React from \"react\";\r\n\r\nimport { ZypeConfigTab, ZypeVideo, ZypeCategory, ZypeViewVideoResponse } from \"./ZypeMedia.types\";\r\nimport { ZypeTabsSkeleton } from \"./ZypeTabsSkeleton.component\";\r\nimport { PwsMediaService } from \"../service/pws-media.service\";\r\nimport { ZypePlayer } from \"./ZypePlayer.component\";\r\nimport { ZypeTabs } from \"./ZypeTabs.component\";\r\nimport { ZypeAd } from \"./ZypeAd.component\";\r\n\r\nimport \"./ZypeMedia.style.scss\";\r\n\r\ninterface ZypeMediaProps {\r\n    viewVideoResponse: ZypeViewVideoResponse;\r\n    episodeSlug: string | null;\r\n    groupSlug: string | null;\r\n    mediaService: PwsMediaService;\r\n    isAuthenticated: boolean;\r\n    pageSlug: string;\r\n}\r\n\r\ninterface ZypeMediaState {\r\n    tabs: ZypeConfigTab[] | null;\r\n    playerApiKey: string | null;\r\n    nextVideo: ZypeVideo | null;\r\n    curVideo: ZypeVideo | null;\r\n    loadingTabs: boolean;\r\n    activeTab: number;\r\n}\r\n\r\nexport class ZypeMedia extends React.Component<ZypeMediaProps, ZypeMediaState> {\r\n    constructor(props: ZypeMediaProps) {\r\n        super(props);\r\n\r\n        this.state = {\r\n            playerApiKey: null,\r\n            loadingTabs: true,\r\n            nextVideo: null,\r\n            curVideo: null,\r\n            activeTab: 0,\r\n            tabs: null,\r\n        };\r\n    }\r\n\r\n    componentDidMount() {\r\n        this.loadVideo(this.props.episodeSlug);\r\n        this.handleHistoryTravel();\r\n    }\r\n\r\n    loadVideo = async (slug: string | null) => {\r\n        if (!slug) {\r\n            return this.initializeTabs();\r\n        }\r\n\r\n        let resp: ZypeViewVideoResponse | undefined = await this.props.mediaService.getVideoBySlug(slug);\r\n\r\n        if (!resp || !resp.video) {\r\n            return this.initializeTabs();\r\n        }\r\n\r\n        //if (!this.props.isAuthenticated && resp.video.subscriptionRequired) {\r\n        let isAuthenticated = document.cookie.includes('STYXKEY_ACCESS_TOKEN');\r\n        if ( !isAuthenticated && resp.video.subscriptionRequired ) {\r\n            //return window.location.href = '/wp-login.php?redirect_to=' + window.location;\r\n            let loginLinkEl = document.querySelector('a[href=\"#cnb-login-modal\"]');\r\n            if (loginLinkEl instanceof HTMLElement) {\r\n               loginLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription require modal if user not yet subscription\r\n        let userSubscribed = document.cookie.includes('STYXKEY_USER_SUBSCRIBED');\r\n        if ( ! userSubscribed && isAuthenticated && resp.video.subscriptionRequired ) {\r\n            let subsRequireLinkEl = document.getElementsByClassName(\"cnb-subs-require-md-link\")[0];\r\n            if (subsRequireLinkEl instanceof HTMLElement) {\r\n               subsRequireLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription reactivate modal if user cancelled subscription\r\n        let userCancelledSubs = document.cookie.includes('STYXKEY_USER_CANCELLED_SUBS');\r\n        if ( userCancelledSubs && isAuthenticated && resp.video.subscriptionRequired ) {\r\n            let subsReactivateLinkEl = document.getElementsByClassName(\"cnb-subs-reactivate-md-link\")[0];\r\n            if (subsReactivateLinkEl instanceof HTMLElement) {\r\n               subsReactivateLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        this.pushVideoToHistory(resp.video, this.props.groupSlug);\r\n\r\n        this.setState({ playerApiKey: resp.playerApiKey, curVideo: resp.video }, this.initializeTabs);\r\n    }\r\n\r\n    initializeTabs = async () => {\r\n        const resp = await this.props.mediaService.getConfig();\r\n\r\n        this.setState({ loadingTabs: false });\r\n        if (resp) {\r\n            const activeTabIdx = resp.tabs.findIndex(tab => tab.slug === this.props.groupSlug);\r\n\r\n            let curTabVideos: ZypeVideo[] = [];\r\n\r\n            if (activeTabIdx >= 0 && resp.tabs[activeTabIdx].videos) {\r\n                curTabVideos = resp.tabs[activeTabIdx].videos!;\r\n            } else if (resp.tabs[0] && resp.tabs[0].videos) {\r\n                curTabVideos = resp.tabs[0].videos!;\r\n            }\r\n\r\n            this.setState({\r\n                loadingTabs: false,\r\n                tabs: resp.tabs,\r\n                nextVideo: curTabVideos ? curTabVideos[0] : null,\r\n                activeTab: activeTabIdx >= 0 ? activeTabIdx : 0,\r\n                playerApiKey: resp.playerApiKey,\r\n            });\r\n\r\n            // fallback in case if wasn't able to load initial video id\r\n            if (!this.state.curVideo && curTabVideos) {\r\n                this.setCurrentVideo(curTabVideos[0]);\r\n            }\r\n        }\r\n    }\r\n\r\n    setActiveTab = (activeTab: number) => {\r\n        this.setState({ activeTab });\r\n    }\r\n\r\n    setCurrentVideo = (curVideo: ZypeVideo | null, nextVideo: ZypeVideo | null = null) => {\r\n        if (!curVideo) {\r\n            return console.warn(\"Can't set curVideo to null\");\r\n        }\r\n\r\n        // if (!this.props.isAuthenticated && curVideo.subscriptionRequired) {\r\n        let isAuthenticated = document.cookie.includes('STYXKEY_ACCESS_TOKEN');\r\n        if ( !isAuthenticated && curVideo.subscriptionRequired ) {\r\n            //return window.location.href = '/wp-login.php?redirect_to=' + window.location;\r\n            let loginLinkEl = document.querySelector('a[href=\"#cnb-login-modal\"]');\r\n            if (loginLinkEl instanceof HTMLElement) {\r\n               loginLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription require modal if user not yet subscription\r\n        let userSubscribed = document.cookie.includes('STYXKEY_USER_SUBSCRIBED');\r\n        if ( ! userSubscribed && isAuthenticated && curVideo.subscriptionRequired ) {\r\n            let subsRequireLinkEl = document.getElementsByClassName(\"cnb-subs-require-md-link\")[0];\r\n            if (subsRequireLinkEl instanceof HTMLElement) {\r\n               subsRequireLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription reactivate modal if user cancelled subscription\r\n        let userCancelledSubs = document.cookie.includes('STYXKEY_USER_CANCELLED_SUBS');\r\n        if ( userCancelledSubs && isAuthenticated && curVideo.subscriptionRequired ) {\r\n            let subsReactivateLinkEl = document.getElementsByClassName(\"cnb-subs-reactivate-md-link\")[0];\r\n            if (subsReactivateLinkEl instanceof HTMLElement) {\r\n               subsReactivateLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        this.pushVideoToHistory(curVideo);\r\n        this.setState({ curVideo }, () => this.setNextVideo(nextVideo));\r\n    }\r\n\r\n    // needed if video was originally fetched while unauthenticated\r\n    reFetchCurVideo = async () => {\r\n        if (!this.state.curVideo) {\r\n            return console.error(\"No current video to re-fetch\");\r\n        }\r\n\r\n        const res = await this.props.mediaService.getVideoBySlug(this.state.curVideo.slug);\r\n\r\n        // if (!this.props.isAuthenticated && res?.video.subscriptionRequired) {\r\n        let isAuthenticated = document.cookie.includes('STYXKEY_ACCESS_TOKEN');\r\n        if ( !isAuthenticated && res?.video.subscriptionRequired ) {\r\n            //return window.location.href = '/wp-login.php?redirect_to=' + window.location;\r\n            let loginLinkEl = document.querySelector('a[href=\"#cnb-login-modal\"]');\r\n            if (loginLinkEl instanceof HTMLElement) {\r\n               loginLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription require modal if user not yet subscription\r\n        let userSubscribed = document.cookie.includes('STYXKEY_USER_SUBSCRIBED');\r\n        if ( ! userSubscribed && isAuthenticated && res?.video.subscriptionRequired ) {\r\n            let subsRequireLinkEl = document.getElementsByClassName(\"cnb-subs-require-md-link\")[0];\r\n            if (subsRequireLinkEl instanceof HTMLElement) {\r\n               subsRequireLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        // Show subscription reactivate modal if user cancelled subscription\r\n        let userCancelledSubs = document.cookie.includes('STYXKEY_USER_CANCELLED_SUBS');\r\n        if ( userCancelledSubs && isAuthenticated && res?.video.subscriptionRequired ) {\r\n            let subsReactivateLinkEl = document.getElementsByClassName(\"cnb-subs-reactivate-md-link\")[0];\r\n            if (subsReactivateLinkEl instanceof HTMLElement) {\r\n               subsReactivateLinkEl.click();\r\n            }\r\n            return;\r\n        }\r\n\r\n        if (res) {\r\n            this.setState({ curVideo: res.video });\r\n        }\r\n    }\r\n\r\n    getNextVideo = async () => {\r\n        if (!this.state.curVideo) {\r\n            console.warn(\"Can't get next video - current video is not set\");\r\n            return null;\r\n        }\r\n\r\n        if (!this.state.curVideo.id) {\r\n            console.warn(\"Can't get next video - current video doesn't have an id\");\r\n            return null;\r\n        }\r\n\r\n        // const res = await this.props.mediaService.getNextVideo(this.state.curVideo.id);\r\n        const res = await this.props.mediaService.getNextVideo(this.state.curVideo.publishedAt);\r\n\r\n        if (res) {\r\n            return res.video;\r\n        } else {\r\n            console.warn(\"No next video found\");\r\n            return null;\r\n        }\r\n    }\r\n\r\n    setNextVideo = async (nextVideo: ZypeVideo | null) => {\r\n        if (nextVideo) {\r\n            return this.setState({ nextVideo });\r\n        }\r\n\r\n        nextVideo = await this.getNextVideo();\r\n\r\n        if (nextVideo) {\r\n            this.setState({ nextVideo });\r\n        }\r\n    }\r\n\r\n    playNextVideo = async () => {\r\n        console.debug(\"Play next video\");\r\n        if (this.state.nextVideo) {\r\n            this.setCurrentVideo(this.state.nextVideo);\r\n        } else {\r\n            this.setCurrentVideo(await this.getNextVideo());\r\n        }\r\n    }\r\n\r\n    getTabByCategories = (categories: ZypeCategory[]) =>\r\n        this.state.tabs\r\n            ? this.state.tabs.find(tab =>\r\n                categories.some(c =>\r\n                    !!tab.categories[c.title]\r\n                    && c.value.some(v => tab.categories[c.title] === v),\r\n                ),\r\n            )\r\n            : null\r\n\r\n    pushVideoToHistory = (video: ZypeVideo, groupSlug?: string | null) => {\r\n        if (!groupSlug) {\r\n            const tab = this.getTabByCategories(video.categories);\r\n            if (tab) {\r\n                groupSlug = tab.slug;\r\n            } else {\r\n                groupSlug = this.state.tabs ? this.state.tabs[this.state.activeTab].slug : null;\r\n            }\r\n        }\r\n\r\n        if (!groupSlug) {\r\n            return console.debug(\"Can't add video to history - couldn't figure out the tab\");\r\n        }\r\n\r\n        window.history.pushState({ video }, video.title, `/${this.props.pageSlug}/${groupSlug}/${video.slug}/`);\r\n    }\r\n\r\n    handleHistoryTravel() {\r\n        // handle user clicking back/forth in browser navigation\r\n        window.onpopstate = (e: PopStateEvent) => {\r\n            if (e.state && e.state.video) {\r\n                this.setState({ curVideo: e.state.video, nextVideo: null });\r\n            }\r\n        };\r\n    }\r\n\r\n    render() {\r\n        return(\r\n            <div className=\"component-zype-media\">\r\n                <ZypePlayer\r\n                    reFetchCurVideo={this.reFetchCurVideo}\r\n                    playNextVideo={this.playNextVideo}\r\n                    apiKey={this.state.playerApiKey}\r\n                    video={this.state.curVideo}\r\n                    mediaService={this.props.mediaService}\r\n                />\r\n                {\r\n                    this.state.loadingTabs\r\n                    ? <ZypeTabsSkeleton />\r\n                    : (\r\n                        <ZypeTabs\r\n                            setCurrentVideo={this.setCurrentVideo}\r\n                            loadingTabs={this.state.loadingTabs}\r\n                            setActiveTab={this.setActiveTab}\r\n                            mediaService={this.props.mediaService}\r\n                            activeTab={this.state.activeTab}\r\n                            tabs={this.state.tabs}\r\n                        />\r\n                    )\r\n                }\r\n                <section className=\"ads\">\r\n                    <ZypeAd\r\n                        path=\"/6663/prnd/prn-rush\"\r\n                        size={[300,250]}\r\n                        id=\"div-gpt-ad-Midrec_300x250_Top\"\r\n                    />\r\n                </section>\r\n            </div>\r\n        );\r\n    }\r\n}\r\n",
    "import React from 'react';\r\n\r\nimport { PwsMediaService } from \"./service/pws-media.service\";\r\nimport { ZypeMedia } from \"./zype/ZypeMedia.component\";\r\nimport { ZypeViewVideoResponse } from './zype/ZypeMedia.types';\r\n\r\nexport interface CnbMediaProps {\r\n    pwsHost: string;\r\n    showSlug: string;\r\n    groupSlug: string | null;\r\n    episodeSlug: string | null;\r\n    pageSlug: string;\r\n    isAuthenticated: boolean;\r\n}\r\n\r\nexport interface CnbMediaState {\r\n    isAuthenticated: boolean;\r\n}\r\n\r\nexport default class CnbMediaApp extends React.Component<CnbMediaProps, CnbMediaState> {\r\n    private mediaService: PwsMediaService;\r\n\r\n    constructor(props: CnbMediaProps) {\r\n        super(props);\r\n\r\n        //this.mediaService = new PwsMediaService(props.showSlug, props.pwsHost);\r\n        this.mediaService = new PwsMediaService();\r\n\r\n        this.state = {\r\n            isAuthenticated: this.props.isAuthenticated || document.cookie.includes('STYXKEY_ACCESS_TOKEN')\r\n        }\r\n    }\r\n\r\n    render() {\r\n        const initialVideoResponse: ZypeViewVideoResponse = {\r\n            authenticated: this.props.isAuthenticated,\r\n            playerApiKey: \"\",\r\n            video: {\r\n                id: null,\r\n                title: \"\",\r\n                slug: \"\",\r\n                description: \"\",\r\n                shortDescription: \"\",\r\n                thumbnails: [],\r\n                categories: [],\r\n                publishedAt: \"\",\r\n                subscriptionRequired: false,\r\n                manifest: null,\r\n                onAir: false,\r\n                isAudio: false,\r\n                duration: 0,\r\n                autoplay: false,\r\n            }\r\n        }\r\n\r\n        return (\r\n            <ZypeMedia\r\n                mediaService={this.mediaService}\r\n                viewVideoResponse={initialVideoResponse}\r\n                groupSlug={this.props.groupSlug}\r\n                episodeSlug={this.props.episodeSlug}\r\n                pageSlug={this.props.pageSlug}\r\n                isAuthenticated={this.state.isAuthenticated}\r\n            ></ZypeMedia>\r\n        );\r\n    }\r\n}\r\n",
    "import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport CnbMediaApp from \"./CnbMediaApp\";\n\nconst rootElement = document.getElementById(\"cnb-media-app\");\n\nif (rootElement) {\n    const data  = rootElement.getAttribute('data-props') || \"{}\";\n    const props = JSON.parse(data);\n\n    ReactDOM.render(<React.StrictMode><CnbMediaApp {...props} /></React.StrictMode>, rootElement);\n}\n"
  ],
  "sourceRoot": ""
}