{"version":3,"file":"js/plugins/vbtv-engine.b8a9add7b09d073bc946.js","mappings":"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","sources":["webpack://@template/frontend/./scripts/libraries/_plugins/vbtv-engine.js"],"sourcesContent":["import { isMobile } from \"../_helpers\";\nimport EventsHelper from \"../_helpers/events\";\nimport Packages from \"./packages\";\n\nexport default class VbtvEngine {\n\n  init() {\n    const _this = this;\n\n    _this.initVariables();\n\n    if (\n      !_this.VbtvMosaicCard.length &&\n      !_this.VbtvVideoRails.length &&\n      !_this.VbtvPlaylistCard.length &&\n      !_this.VbtvPackageGetStarted.length &&\n      !_this.VbtvPackageIntro.length &&\n      !_this.VbtvPackageCompare.length\n    )\n      return;\n\n    _this.assignAttrValues()\n\n    if (\n      !!_this.vbtvApiKeys.vbtvDomain &&\n      !!_this.vbtvApiKeys.vbtvApiDomain &&\n      !!_this.vbtvApiKeys.vbtvLoginResource &&\n      !!_this.vbtvApiKeys.vbtvRealm &&\n      !!_this.vbtvApiKeys.vbtvApiKey &&\n      !!_this.vbtvApiKeys.vbtvAppName\n    ) {\n      _this.authenticateVbtvApi();\n    } else {\n      console.log(\n        \"authenticateVbtvApi() Failed! Required Data missing for VBTV!\"\n      );\n      _this.vbtvApiFallback(_this.vbtvConstants.all);\n    }\n  }\n\n  initVariables() {\n    const _this = this;\n    _this.packages = new Packages();\n\n    _this.VbtvMosaicCard = $(\".vbw-vbtv-mosaic-card\").first();\n    _this.VbtvMosaicFailoverWrap = $(\".vbw-vbtv-mosaic-failover-wrap\").first();\n    _this.VbtvVideoRails = $(\".vbw-video-container\");\n\n    _this.VbtvPlaylistCard = $(\".vbw-vbtv-playlist-card\").first();\n    _this.VbtvPlaylistFailoverWrap = $(\n      \".vbw-vbtv-playlist-failover-wrap\"\n    ).first();\n\n    _this.VbtvPackageGetStarted = $(\".vbw-packages__getstarted\").first();\n    _this.VbtvPackageIntro = $(\".vbw-packages__intro\").first();\n    _this.VbtvPackageCompare = $(\".vbw-packages__compare\").first();\n\n    _this.VbtvPackagesIntroFailoverWrap = $(\n      \".vbw-packages__intro-failover-wrap\"\n    ).first();\n    _this.VbtvPackagesGetStartedFailoverWrap = $(\n      \".vbw-packages__getstarted-failover-wrap\"\n    ).first();\n    _this.VbtvPackageCompareFailoverWrap = $(\n      \".vbw-packages__compare-failover-wrap\"\n    ).first();\n\n    _this.VbtvRailTemplate = $(\".vbw-vbtv-rail-template\").first();\n    _this.VbtvPlaylistTemplate = $(\".vbw-playlist-template\").first();\n    _this.VbtvPackagesGetStartedTemplate = $(\n      \".vbw-vbtv-package-get-started-template\"\n    ).first();\n    _this.VbtvPackagesIntroTemplate = $(\n      \".vbw-vbtv-package-intro-template\"\n    ).first();\n    _this.VbtvPackagesCompareTemplate = $(\n      \".vbw-package-compare-template\"\n    ).first();\n\n    _this.packageComparePlanConfig = window.packageComparePlanConfig;\n    _this.packageGetStartedConfig = window.packageGetStartedConfig;\n    _this.packageIntroConfig = window.packageIntroConfig;\n\n    _this.vbtvAuthToken = \"\";\n    _this.vbtvRefreshToken = \"\";\n    _this.vbtvTokenExpiryTimer = \"\";\n    _this.vbtvApiKeys = {};\n    _this.vbtvApiFailedCounter = 0;\n\n    _this.vbtvPackageEndeavourData = null;\n    _this.vbtvPackageEntityData = null;\n\n    _this.vbtvConstants = {\n      all: \"all-vbtv-views\",\n      mosaic: \"mosaic-vbtv-view\",\n      playlist: \"playlist\",\n      packageGetStarted: \"package-get-started\",\n      packageIntro: \"package-intro\",\n      packageCompare: \"package-compare\",\n      packagesData: \"packages-data\",\n    };\n\n    _this.vbtvLocalStorageKeys = {\n      authToken: \"vbtvAuthToken\",\n      refreshToken: \"vbtvRefreshToken\",\n      tokenExpiryTimer: \"vbtvTokenExpiryTimer\",\n    };\n\n    _this.vbtvDataId = {\n      vbtvDomain: \"data-vbtv-domain\",\n      vbtvApiDomain: \"data-vbtv-api-domain\",\n      vbtvLoginResource: \"data-vbtv-login-resource\",\n      vbtvRealm: \"data-vbtv-realm\",\n      vbtvApiKey: \"data-vbtv-api-key\",\n      vbtvAppName: \"data-vbtv-app-name\",\n      vbtvExpiryTimer: \"data-vbtv-expiry-timer\",\n      vbtvRailApiResource: \"data-vbtv-rail-api-resource\",\n      vbtvMosaicApiResource: \"data-vbtv-mosaic-api-resource\",\n      vbtvPlaylistApiResource: \"data-vbtv-playlist-api-resource\",\n      vbtvBucketId: \"data-vbtv-bucket-id\",\n      vbtvBucketLength: \"data-vbtv-rail-length\",\n      vbtvSectionId: \"data-vbtv-section-id\",\n      vbtvRailItemSkip: \"data-vbtv-rail-skip\",\n      vbtvPlaylistBp: \"data-vbtv-bucket-page\",\n      vbtvPlaylistBpp: \"data-vbtv-bucket-per-page\",\n      vbtvVideoNumber: \"data-vbtv-video-number\",\n      vbtvBucketType: \"data-vbtv-bucket-type\",\n      vbtvLanguageApiResource: \"data-vbtv-language-resouce\",\n      vbtvPackageApiResource: \"data-vbtv-package-resouce\",\n      vbtvPackageEntityApiResource: \"data-vbtv-entity-resource\",\n      vbtvLicencePurchaseResource: \"data-vbtv-licence-purchase-resource\",\n    };\n  }\n\n  assignAttrValues() {\n    const _this = this;\n\n    if (_this.VbtvMosaicCard.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n    }\n    else if (_this.VbtvVideoRails.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvVideoRails.first().attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n    }\n    else if (_this.VbtvPlaylistCard.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n    }\n    else if (_this.VbtvPackageGetStarted.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n      _this.vbtvApiKeys.vbtvPackageEntityResource = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvPackageEntityApiResource\n      );\n      _this.vbtvApiKeys.vbtvPackageApiResource = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvPackageApiResource\n      );\n      _this.vbtvApiKeys.vbtvLicencePurchaseResource = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvLicencePurchaseResource\n      );\n    }\n    else if (_this.VbtvPackageIntro.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n      _this.vbtvApiKeys.vbtvPackageEntityResource = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvPackageEntityApiResource\n      );\n      _this.vbtvApiKeys.vbtvPackageApiResource = _this.VbtvPackageIntro.attr(\n        _this.vbtvDataId.vbtvPackageApiResource\n      );\n    }\n    else if (_this.VbtvPackageCompare.length) {\n      _this.vbtvApiKeys.vbtvDomain = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvDomain\n      );\n      _this.vbtvApiKeys.vbtvApiDomain = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvApiDomain\n      );\n      _this.vbtvApiKeys.vbtvLoginResource = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvLoginResource\n      );\n      _this.vbtvApiKeys.vbtvRealm = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvRealm\n      );\n      _this.vbtvApiKeys.vbtvApiKey = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvApiKey\n      );\n      _this.vbtvApiKeys.vbtvAppName = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvAppName\n      );\n      _this.vbtvApiKeys.vbtvTokenExpiryTimer = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvExpiryTimer\n      );\n      _this.vbtvApiKeys.vbtvPackageEntityResource = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvPackageEntityApiResource\n      );\n      _this.vbtvApiKeys.vbtvPackageApiResource = _this.VbtvPackageCompare.attr(\n        _this.vbtvDataId.vbtvPackageApiResource\n      );\n    }\n  }\n\n  authenticateVbtvApi(refetchToken = false) {\n    const _this = this;\n    let isTokenValid = false;\n\n    if (!refetchToken) {\n      // Check localstorage\n      _this.vbtvAuthToken = localStorage.getItem(\n        _this.vbtvLocalStorageKeys.authToken\n      );\n      _this.vbtvTokenExpiryTimer = localStorage.getItem(\n        _this.vbtvLocalStorageKeys.tokenExpiryTimer\n      );\n\n      if (_this.vbtvTokenExpiryTimer) {\n        isTokenValid =\n          new Date().getTime() < new Date(_this.vbtvTokenExpiryTimer).getTime();\n      }\n    }\n\n    // If token present and valid\n    if (!!_this.vbtvAuthToken && isTokenValid) {\n      _this.initVbtvDataFetch();\n    } else {\n      $.ajax({\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Realm: _this.vbtvApiKeys.vbtvRealm,\n          \"x-api-key\": _this.vbtvApiKeys.vbtvApiKey,\n          app: _this.vbtvApiKeys.vbtvAppName,\n        },\n        type: \"POST\",\n        url:\n          _this.vbtvApiKeys.vbtvApiDomain + _this.vbtvApiKeys.vbtvLoginResource,\n      })\n        .done(function (data) {\n          _this.updateLocalStorage(data);\n          _this.vbtvAuthToken = data.authorisationToken;\n          _this.initVbtvDataFetch();\n        })\n        .fail(function (err) {\n          _this.vbtvApiFallback(_this.vbtvConstants.all);\n          console.log(\"authenticateVbtvApi() Failed for VBTV!\");\n        });\n    }\n  }\n\n  updateLocalStorage(keys) {\n    const _this = this;\n    const expiryTimer = _this.vbtvApiKeys.vbtvTokenExpiryTimer\n      ? new Date().getTime() +\n        _this.vbtvApiKeys.vbtvTokenExpiryTimer * 60 * 1000\n      : new Date().getTime() + 30 * 60 * 1000;\n    localStorage.setItem(\n      _this.vbtvLocalStorageKeys.authToken,\n      keys.authorisationToken\n    );\n    localStorage.setItem(\n      _this.vbtvLocalStorageKeys.refreshToken,\n      keys.refreshToken\n    );\n    localStorage.setItem(\n      _this.vbtvLocalStorageKeys.tokenExpiryTimer,\n      expiryTimer\n    );\n  }\n\n  initVbtvDataFetch() {\n    const _this = this;\n\n    // Get Mosaic Video Data Call init\n    if (_this.VbtvMosaicCard.length) {\n      let mosaicApiResource = _this.VbtvMosaicCard.attr(\n        _this.vbtvDataId.vbtvMosaicApiResource\n      );\n      if (mosaicApiResource) {\n        const sectionId = _this.VbtvMosaicCard.attr(\n          _this.vbtvDataId.vbtvSectionId\n        )\n          ? _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvSectionId)\n          : \"home\";\n        const bp = _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvPlaylistBp)\n          ? _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvPlaylistBp)\n          : \"1\";\n        const bpp = _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvPlaylistBpp)\n          ? _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvPlaylistBpp)\n          : \"5\";\n        const rpp = _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvVideoNumber)\n          ? _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvVideoNumber)\n          : \"1\";\n\n        mosaicApiResource = mosaicApiResource\n          .toLowerCase()\n          .replace(\"{sectionid}\", sectionId)\n          .replace(\"{bp}\", bp)\n          .replace(\"{bpp}\", bpp)\n          .replace(\"{rpp}\", rpp);\n        _this.fetchVbtvApiData(\n          _this.vbtvApiKeys.vbtvApiDomain + mosaicApiResource,\n          _this.renderMosaicCard.bind(_this),\n          _this.vbtvConstants.mosaic\n        );\n      } else {\n        console.log(\n          \"renderMosaicCard() Failed! Required Data missing for VBTV!\"\n        );\n        _this.vbtvApiFallback(_this.vbtvConstants.mosaic);\n      }\n    }\n\n    // Get Video Rail Data Call init\n    if (_this.VbtvVideoRails.length) {\n      _this.VbtvVideoRails.each(function () {\n        const bucketId = $(this).attr(_this.vbtvDataId.vbtvBucketId);\n        const skipValue = $(this).attr(_this.vbtvDataId.vbtvRailItemSkip)\n          ? parseInt($(this).attr(_this.vbtvDataId.vbtvRailItemSkip))\n          : 0;\n        const sectionId = $(this).attr(_this.vbtvDataId.vbtvSectionId)\n          ? $(this).attr(_this.vbtvDataId.vbtvSectionId)\n          : \"home\";\n        const rpp = $(this).attr(_this.vbtvDataId.vbtvBucketLength)\n          ? $(this).attr(_this.vbtvDataId.vbtvBucketLength)\n          : \"10\";\n        let railApiResource = $(this).attr(\n          _this.vbtvDataId.vbtvRailApiResource\n        );\n\n        if (!!bucketId && !!railApiResource) {\n          railApiResource = railApiResource\n            .toLowerCase()\n            .replace(\"{sectionid}\", sectionId)\n            .replace(\"{bucketid}\", bucketId)\n            .replace(\"{rpp}\", parseInt(rpp) + skipValue);\n          _this.fetchVbtvApiData(\n            _this.vbtvApiKeys.vbtvApiDomain + railApiResource,\n            _this.renderVideoRail.bind(_this),\n            bucketId\n          );\n        } else {\n          console.log(\n            \"renderVideoRail() Failed! Required Data missing for VBTV!\"\n          );\n          _this.vbtvApiFallback(bucketId);\n        }\n      });\n    }\n\n    // Get Mosaic playlist Data Call init\n    if (_this.VbtvPlaylistCard.length) {\n      let playlistApiResource = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvPlaylistApiResource\n      );\n      if (playlistApiResource) {\n        const sectionId = _this.VbtvPlaylistCard.attr(\n          _this.vbtvDataId.vbtvSectionId\n        )\n          ? _this.VbtvPlaylistCard.attr(_this.vbtvDataId.vbtvSectionId)\n          : \"home\";\n        const bp = _this.VbtvPlaylistCard.attr(_this.vbtvDataId.vbtvPlaylistBp)\n          ? _this.VbtvPlaylistCard.attr(_this.vbtvDataId.vbtvPlaylistBp)\n          : \"1\";\n        const bpp = _this.VbtvPlaylistCard.attr(\n          _this.vbtvDataId.vbtvPlaylistBpp\n        )\n          ? _this.VbtvPlaylistCard.attr(_this.vbtvDataId.vbtvPlaylistBpp)\n          : \"5\";\n\n        playlistApiResource = playlistApiResource\n          .toLowerCase()\n          .replace(\"{sectionid}\", sectionId)\n          .replace(\"{bp}\", bp)\n          .replace(\"{bpp}\", bpp);\n        _this.fetchVbtvApiData(\n          _this.vbtvApiKeys.vbtvApiDomain + playlistApiResource,\n          _this.renderPlaylist.bind(_this),\n          _this.vbtvConstants.playlist\n        );\n      } else {\n        console.log(\"renderPlaylist() Failed! Required Data missing for VBTV!\");\n        _this.vbtvApiFallback(_this.vbtvConstants.playlist);\n      }\n    }\n\n    if (\n      !!_this.VbtvPackageGetStarted.length ||\n      !!_this.VbtvPackageIntro.length ||\n      !!_this.VbtvPackageCompare.length\n    ) {\n      let vbtvPackageResource = _this.VbtvPackageGetStarted.attr(\n        _this.vbtvDataId.vbtvPackageApiResource\n      );\n      if (!vbtvPackageResource) {\n        vbtvPackageResource = _this.VbtvPackageIntro.attr(\n          _this.vbtvDataId.vbtvPackageApiResource\n        );\n      }\n      if (!vbtvPackageResource) {\n        vbtvPackageResource = _this.VbtvPackageCompare.attr(\n          _this.vbtvDataId.vbtvPackageApiResource\n        );\n      }\n\n      if (!!vbtvPackageResource && _this.isVbtvEndeavorApiFetch()) {\n        _this.fetchVbtPackagesEntityApiData(\n          _this.vbtvApiKeys.vbtvPackageEntityResource,\n          _this.vbtvConstants.packagesData\n        );\n      }\n    }\n\n    // Get Packages Get Started Init\n    if (!!_this.vbtvPackageEndeavourData && !!_this.vbtvPackageEntityData) {\n      if (\n        !!_this.VbtvPackageGetStarted.length &&\n        !_this.packageGetStartedConfig.isEditorialDataAvailable\n      ) {\n        _this.renderPackageModules(\n          _this.vbtvPackageEndeavourData,\n          _this.vbtvPackageEntityData,\n          _this.vbtvConstants.packageGetStarted\n        );\n      }\n      // Get Packages Get Started Init\n      if (\n        !!_this.VbtvPackageIntro.length &&\n        !_this.packageIntroConfig.isEditorialDataAvailable\n      ) {\n        _this.renderPackageModules(\n          _this.vbtvPackageEndeavourData,\n          _this.vbtvPackageEntityData,\n          _this.vbtvConstants.packageIntro\n        );\n      }\n\n      if (\n        !!_this.VbtvPackageCompare.length &&\n        !_this.packageComparePlanConfig.isEditorialDataAvailable\n      ) {\n        _this.renderPackageModules(\n          _this.vbtvPackageEndeavourData,\n          _this.vbtvPackageEntityData,\n          _this.vbtvConstants.packageCompare\n        );\n      }\n\n      // Reload carousel\n      _this.packages.initCarousel();\n    } else {\n      _this.packages.initCarousel();\n    }\n  }\n\n  fetchVbtvApiData(\n    apiUrl,\n    renderCb,\n    contentId,\n    miscData = null,\n    isAsync = true\n  ) {\n    const _this = this;\n\n    $.ajax({\n      headers: {\n        \"Content-Type\": \"application/json\",\n        Realm: _this.vbtvApiKeys.vbtvRealm,\n        \"x-api-key\": _this.vbtvApiKeys.vbtvApiKey,\n        app: _this.vbtvApiKeys.vbtvAppName,\n        Authorization: \"Bearer \" + _this.vbtvAuthToken,\n      },\n      type: \"GET\",\n      url: apiUrl,\n      async: isAsync,\n    })\n      .done(function (data) {\n        if (miscData) {\n          renderCb(data, miscData, contentId);\n        } else {\n          renderCb(data, contentId);\n        }\n\n        // Reload carousel\n        _this.packages.initCarousel();\n      })\n      .fail(function (err) {\n        _this.vbtvApiFailedCounter++;\n        console.log(`fetchVbtvApiData() Failed for VBTV ${contentId}!`);\n\n        if (_this.vbtvApiFailedCounter > 1) {\n          _this.vbtvApiFallback(contentId);\n        } else {\n          _this.authenticateVbtvApi(true);\n        }\n      });\n  }\n\n  isVbtvEndeavorApiFetch() {\n    const _this = this;\n    return (\n      !_this.packageComparePlanConfig?.isEditorialDataAvailable ||\n      !_this.packageGetStartedConfig?.isEditorialDataAvailable ||\n      !_this.packageIntroConfig?.isEditorialDataAvailable\n    );\n  }\n\n  fetchVbtPackagesEntityApiData(apiUrl, contentId) {\n    const _this = this;\n    $.ajax({\n      type: \"GET\",\n      url: apiUrl,\n      cache: true,\n      async: false,\n    })\n      .done(function (data) {\n        if (data) {\n          _this.fetchVbtvApiData(\n            _this.vbtvApiKeys.vbtvApiDomain +\n              _this.vbtvApiKeys.vbtvPackageApiResource,\n            _this.setPackageModulesData.bind(_this),\n            contentId,\n            data,\n            false\n          );\n        }\n      })\n      .fail(function (err) {\n        _this.vbtvApiFailedCounter++;\n        console.log(`fetchVbtvEntitiesApiData() Failed for VBTV ${contentId}!`);\n\n        if (_this.vbtvApiFailedCounter > 1) {\n          _this.vbtvApiFallback(contentId);\n        }\n      });\n  }\n\n  renderMosaicCard(data) {\n    const _this = this;\n    const videoNumber = _this.VbtvMosaicCard.attr(\n      _this.vbtvDataId.vbtvVideoNumber\n    )\n      ? _this.VbtvMosaicCard.attr(_this.vbtvDataId.vbtvVideoNumber)\n      : 1;\n    let videoData;\n\n    // Check if data missing in API\n    if (!(!!data && !!data.buckets && data.buckets.length > 0)) {\n      _this.vbtvApiFallback(_this.vbtvConstants.mosaic);\n      console.log(\n        `renderMosaicCard() Failed for VBTV! Content Missing in API!`\n      );\n    } else {\n      // Find first Video item from buckets\n      for (let m = 0; m < data.buckets.length; m++) {\n        if (\n          data.buckets[m].type.toLowerCase() === \"live\" &&\n          data.buckets[m].contentList?.length >= videoNumber\n        ) {\n          videoData = data.buckets[m].contentList[videoNumber - 1];\n          break;\n        }\n      }\n      if (!videoData) {\n        for (let m = 0; m < data.buckets.length; m++) {\n          if (\n            data.buckets[m].type.toLowerCase() === \"upcoming\" &&\n            data.buckets[m].contentList?.length >= videoNumber\n          ) {\n            videoData = data.buckets[m].contentList[videoNumber - 1];\n            break;\n          } else if (\n            data.buckets[m].type.toLowerCase() === \"upcoming\" &&\n            data.buckets[m].contentList?.length < videoNumber &&\n            data.buckets[m].contentList?.length > 0\n          ) {\n            console.log(\n              `renderMosaicCard() Not enough videos in list as per Mosaic Card Video Number!`\n            );\n            _this.vbtvApiFallback(_this.vbtvConstants.mosaic);\n          }\n        }\n      }\n\n      // Render content\n      if (videoData) {\n        _this.updateVideoCard(\n          _this.VbtvMosaicCard.parent(),\n          \".vbw-vbtv-mosaic-card\",\n          videoData\n        );\n        _this.VbtvMosaicCard.show();\n\n        if (videoData.live) {\n          if (\n            isMobile() ||\n            _this.VbtvMosaicCard.hasClass(\"mosaic-vertical-card\")\n          ) {\n            _this.VbtvMosaicCard.find(\".fa-text__live-default\").show();\n          } else {\n            _this.VbtvMosaicCard.find(\".fa-text__live\").show();\n          }\n        }\n      } else {\n        _this.VbtvMosaicCard.hide();\n        _this.vbtvApiFallback(_this.vbtvConstants.mosaic);\n      }\n    }\n  }\n\n  renderVideoRail(data, bucketId) {\n    const _this = this;\n\n    // Check if data missing in API\n    if (!!data && !!data.contentList && data.contentList.length > 0) {\n      const list = [];\n\n      for (const i in data.contentList) {\n        // Skip items handle\n        const skipItems = $(\n          `[${_this.vbtvDataId.vbtvBucketId}=\"${bucketId}\"]`\n        ).attr(_this.vbtvDataId.vbtvRailItemSkip);\n        if (!!skipItems && parseInt(skipItems) > parseInt(i)) continue;\n\n        // Create Rail item from template in page\n        const rail = data.contentList[i];\n        const template = _this.updateVideoCard(\n          _this.VbtvRailTemplate,\n          \".vbw-video-rail-card\",\n          rail\n        );\n\n        if (rail.live) {\n          $(template).find(\".fa-text__live-wrap\").show();\n        }\n\n        list.push(template.html());\n      }\n\n      // Extra div to create sliding space on desktop\n      if (!isMobile()) {\n        list.push(\n          '<a class=\"vbw-video-rail-card swiper-slide\" href=\"#\" style=\"pointer-events: none;\"><article class=\"fm-card -fullimage fm-card--btn-alignment\"></article></a>'\n        );\n      }\n      $(`[data-rail-wrapper-id=\"${bucketId}\"]`).html(list.join(\"\"));\n\n      // Reload carousel\n      EventsHelper.ReloadCarousels();\n    } else {\n      _this.vbtvApiFallback(bucketId);\n      console.log(\n        `renderVideoRail() Failed for VBTV ${bucketId}! Content Missing in API!`\n      );\n    }\n  }\n\n  renderPlaylist(data) {\n    const _this = this;\n\n    // Check if data missing in API\n    if (!(!!data && !!data.buckets && data.buckets.length > 0)) {\n      _this.vbtvApiFallback(_this.vbtvConstants.playlist);\n      console.log(`renderPlaylist() Failed for VBTV! Content Missing in API!`);\n    } else {\n      // Collect Playlists\n      let playlists = [];\n      const playlistBucketType = _this.VbtvPlaylistCard.attr(\n        _this.vbtvDataId.vbtvBucketType\n      )\n        ? _this.VbtvPlaylistCard.attr(_this.vbtvDataId.vbtvBucketType)\n        : \"PLAYLISTS\";\n\n      for (const i in data.buckets) {\n        const bucket = data.buckets[i];\n\n        if (bucket.type !== playlistBucketType) continue;\n        if (playlists.length > 3) break;\n        playlists = [...playlists, ...bucket.contentList];\n      }\n\n      if (playlists.length > 0) {\n        const list = [];\n        for (const i in playlists) {\n          if (i > 2) break;\n          // Rail item create\n          const playlist = playlists[i];\n          const template = _this.updatePlaylistView(\n            _this.VbtvPlaylistTemplate,\n            playlist\n          );\n          list.push(template.html());\n        }\n        $(`.vbw-vbtv-playlist-ul`).html(list.join(\"\"));\n      }\n    }\n  }\n\n  setPackageModulesData(vbtvEndeavourData, vbtvPackageEntityData, contentId) {\n    const _this = this;\n    if (_this.vbtvConstants.packagesData === contentId) {\n      _this.vbtvPackageEndeavourData = vbtvEndeavourData;\n      _this.vbtvPackageEntityData = vbtvPackageEntityData;\n    }\n  }\n\n  renderPackageModules(vbtvEndeavourData, vbtvPackageEntityData, contentId) {\n    if (!vbtvEndeavourData || !vbtvPackageEntityData) {\n      return;\n    }\n    const _this = this;\n    const isPackageCompare = contentId === _this.vbtvConstants.packageCompare;\n    if (isPackageCompare) {\n      _this.setupPackagesCompareSpecsBody(\n        vbtvEndeavourData,\n        vbtvPackageEntityData\n      );\n    }\n\n    for (const licenseObj of vbtvEndeavourData) {\n      const vbtvPackageEntity = vbtvPackageEntityData?.vbtvPackages?.find(\n        (entity) =>\n          !!entity.licenceId &&\n          entity.licenceId.trim() === licenseObj.licence.id.toString()\n      );\n      if (vbtvPackageEntity) {\n        const packageAmount =\n          licenseObj.licence.amounts.find((amount) => amount.local) ??\n          licenseObj.licence.amounts.find((amount) => amount.default);\n        if (packageAmount) {\n          if (isPackageCompare)\n            _this.setupPackagesCompare(\n              vbtvPackageEntity,\n              licenseObj,\n              packageAmount\n            );\n          else\n            _this.renderPackagesCards(\n              vbtvPackageEntity,\n              licenseObj,\n              packageAmount,\n              contentId\n            );\n        }\n      }\n    }\n\n    _this.setupPackagesModuleMetadata(contentId);\n  }\n\n  setupPackagesCompareSpecsBody(vbtvEndeavourData, vbtvPackageEntityData) {\n    if (!vbtvPackageEntityData.specsHeader) return;\n    const _this = this;\n    const specsHeader = vbtvPackageEntityData.specsHeader;\n    const packageCompareTemplate = _this.VbtvPackagesCompareTemplate.clone();\n    specsHeader.sort(function (spec1, spec2) {\n      return spec2.order - spec1.order;\n    });\n    const compareBody = _this.VbtvPackageCompare.find(\".compare-tbody\");\n    for (const specs of specsHeader) {\n      const packageCompareSpecsTemplate = packageCompareTemplate\n        .find(\".vbw-tr-package-specs\")\n        .clone();\n      packageCompareSpecsTemplate\n        .find(\".vbw-package-title-text\")\n        .text(specs.text);\n      packageCompareSpecsTemplate.addClass(specs.code);\n      for (const licenseObj of vbtvEndeavourData) {\n        const packageType = _this.getPackageTimeSpan(\n          licenseObj?.licence?.purchaseStrategy?.subscriptionPeriod\n        );\n\n        if (!packageType) continue;\n        const vbtvPackageTimeClass = `vbw-package-${packageType}`;\n        const vbtvPackageEntity = vbtvPackageEntityData?.vbtvPackages?.find(\n          (entity) =>\n            !!entity.licenceId &&\n            entity.licenceId.trim() === licenseObj.licence.id.toString()\n        );\n        let mark = \"\";\n        let markClass = \"\";\n        const packageCompareSpecsTemplateStatusMark = packageCompareTemplate\n          .find(\".vbw-tr-package-specs-compare td\")\n          .clone();\n        if (vbtvPackageEntity?.specs[specs.code]) {\n          mark = \"✓\";\n          markClass = \"spec-pass\";\n        } else {\n          mark = \" — \";\n          markClass = \"spec-empty\";\n        }\n        packageCompareSpecsTemplateStatusMark.addClass(vbtvPackageTimeClass);\n        packageCompareSpecsTemplateStatusMark.addClass(markClass);\n        packageCompareSpecsTemplateStatusMark.text(mark);\n        packageCompareSpecsTemplate.append(\n          packageCompareSpecsTemplateStatusMark\n        );\n      }\n      compareBody.prepend(packageCompareSpecsTemplate);\n    }\n  }\n\n  getPackageTimeSpan(subscrptionPeriod) {\n    switch (subscrptionPeriod) {\n      case \"P1Y\":\n        return \"year\";\n      case \"P1M\":\n        return \"month\";\n      default:\n        return null;\n    }\n  }\n\n  setupPackagesCompare(vbtvPackageEntity, licenseObj, packageAmount) {\n    const _this = this;\n    const packageType = _this.getPackageTimeSpan(\n      licenseObj?.licence?.purchaseStrategy?.subscriptionPeriod\n    );\n    if (!packageType) return;\n    const vbtvLicencePurchaseResource = _this.vbtvApiKeys.vbtvLicencePurchaseResource?.replace(\n      \"{licence}\",\n      licenseObj.licence.id\n    );\n    const licenceBuyUrl = `${_this.vbtvApiKeys.vbtvDomain}${vbtvLicencePurchaseResource}`;\n\n    const compareHeader = _this.VbtvPackageCompare.find(\".compare-thead tr\");\n    const purchaseRow = _this.VbtvPackageCompare.find(\".vbw-tr-purchase\");\n\n    const vbtvCompareTemplate = _this.VbtvPackagesCompareTemplate.clone();\n    const compareHeaderTemplate = vbtvCompareTemplate\n      .find(\".vbw-package-th\")\n      .clone();\n    const purchaseRowTemplate = vbtvCompareTemplate.find(\n      \".vbw-tr-purchase .vbw-package-btn\"\n    );\n\n    const packageTypeClass = `vbw-package-${packageType}`;\n    compareHeaderTemplate.addClass(packageTypeClass);\n    purchaseRowTemplate.addClass(packageTypeClass);\n\n    compareHeaderTemplate.find(\".th-name\").text(vbtvPackageEntity.shortName);\n    const amount = _this.getPackageAmount(packageAmount);\n    const currency = _this.getCurrency(packageAmount.currency);\n    compareHeaderTemplate.find(\".th-price\").text(currency + amount);\n    compareHeader.append(compareHeaderTemplate);\n\n    purchaseRowTemplate.find(\"a\").attr(\"href\", licenceBuyUrl);\n    purchaseRow.append(purchaseRowTemplate);\n  }\n\n  setupPackagesModuleMetadata(contentId) {\n    const _this = this;\n    let selector = null;\n    let monthPackagesCount = 0;\n    let yearPackagesCount = 0;\n    let isAnnual = false;\n    let yearCountSelector = \".vbw-package-year\";\n    let monthCountSelector = \".vbw-package-month\";\n    if (contentId === _this.vbtvConstants.packageGetStarted) {\n      selector = _this.VbtvPackageGetStarted;\n      isAnnual = _this.packageGetStartedConfig.isAnnual;\n    } else if (contentId === _this.vbtvConstants.packageIntro) {\n      selector = _this.VbtvPackageIntro;\n      isAnnual = _this.packageIntroConfig.isAnnual;\n    } else if (contentId === _this.vbtvConstants.packageCompare) {\n      selector = _this.VbtvPackageCompare;\n      isAnnual = _this.packageComparePlanConfig.isAnnual;\n      yearCountSelector = \".vbw-package-compare-header.vbw-package-year\";\n      monthCountSelector = \".vbw-package-compare-header.vbw-package-month\";\n    }\n    const yearCount = selector.find(yearCountSelector)?.length;\n    const monthCount = selector.find(monthCountSelector)?.length;\n    if (!!monthCount || monthCount > 0) {\n      monthPackagesCount = _this.getTimeSpanCount(monthCount);\n      selector.attr(\"data-month\", monthPackagesCount);\n      selector.attr(\"data-month-count\", monthCount);\n    }\n    if (!!yearCount || yearCount > 0) {\n      yearPackagesCount = _this.getTimeSpanCount(yearCount);\n      selector.attr(\"data-year\", yearPackagesCount);\n      selector.attr(\"data-year-count\", yearCount);\n    }\n    if (monthCount == 0 && yearCount == 0) {\n      _this.vbtvApiFallback(contentId);\n    }\n    selector.attr(\n      \"data-class\",\n      isAnnual ? yearPackagesCount : monthPackagesCount\n    );\n  }\n\n  getPackageAmount(packageAmountObj) {\n    const amountStr = packageAmountObj.amount.toString();\n    return (\n      amountStr.slice(0, amountStr.length - packageAmountObj.scale) +\n      \".\" +\n      amountStr.slice(amountStr.length - packageAmountObj.scale)\n    );\n  }\n\n  getTimeSpanCount(count) {\n    if (!count) return null;\n    if (count < 3) return 1;\n    else if (count < 5) return 2;\n    else if (count == 5) return 3;\n    else return 4;\n  }\n\n  renderPackagesCards(vbtvPackageEntity, licenseObj, finalAmount, contentId) {\n    const _this = this;\n    let swiperList = \"\";\n    let translations = null;\n    const cardType = _this.getPackageTimeSpan(\n      licenseObj?.licence?.purchaseStrategy?.subscriptionPeriod\n    );\n    swiperList = `.swiper-list-${cardType}`;\n    licenseObj.entity = vbtvPackageEntity;\n    if (contentId == _this.vbtvConstants.packageGetStarted) {\n      const vbtvGetStartedTemplate = _this.VbtvPackagesGetStartedTemplate.clone();\n      if (vbtvGetStartedTemplate) {\n        const pageNo = 2;\n        translations = _this.packageGetStartedConfig.translations;\n        const card = _this.updatePackagesCard(\n          vbtvGetStartedTemplate,\n          licenseObj,\n          finalAmount,\n          translations,\n          cardType,\n          pageNo\n        );\n        _this.VbtvPackageGetStarted.find(swiperList)\n          .find(\".vbw-packages-list\")\n          .append(card);\n        card.show();\n      }\n    } else if (contentId == _this.vbtvConstants.packageIntro) {\n      const vbtvIntroTemplate = _this.VbtvPackagesIntroTemplate.clone();\n      if (vbtvIntroTemplate) {\n        const pageNo = 1;\n        translations = _this.packageIntroConfig.translations;\n        const card = _this.updatePackagesCard(\n          vbtvIntroTemplate,\n          licenseObj,\n          finalAmount,\n          translations,\n          cardType,\n          pageNo\n        );\n        _this.VbtvPackageIntro.find(swiperList)\n          .find(\".vbw-packages-list\")\n          .append(card);\n        card.show();\n      }\n    }\n  }\n\n  updatePackagesCard(\n    selector,\n    packageData,\n    finalAmount,\n    translations,\n    cardType,\n    pageNo\n  ) {\n    const _this = this;\n\n    const vbtvLicencePurchaseResource = _this.vbtvApiKeys.vbtvLicencePurchaseResource?.replace(\n      \"{licence}\",\n      packageData.licence.id\n    );\n    const licenceBuyUrl = `${_this.vbtvApiKeys.vbtvDomain}${vbtvLicencePurchaseResource}`;\n    selector.removeClass(\"vbw-vbtv-package-get-started-template\");\n    selector.addClass(`vbw-package-${cardType}`);\n    selector.attr(\n      \"data-hash\",\n      `${_this.convertToSlug(packageData.entity?.longName)}-${pageNo}`\n    );\n    selector.find(\".vbw-package-card-name\").text(packageData.entity?.shortName);\n    selector\n      .find(\".vbw-package-card-desc\")\n      .html(packageData.entity?.description);\n    selector\n      .find(\".vbw-package-card-price-currency\")\n      .text(_this.getCurrency(finalAmount.currency));\n    const amount = _this.getPackageAmount(finalAmount);\n    selector.find(\".vbw-package-card-link\").attr(\"href\", licenceBuyUrl);\n    selector.find(\".vbw-package-card-price-val\").text(amount);\n    if (cardType === \"year\")\n      selector\n        .find(\".vbw-package-card-price-span\")\n        .text(`/${translations.packagesModuleYearTimeSpan}`);\n    else\n      selector\n        .find(\".vbw-package-card-price-span\")\n        .text(`/${translations.packagesModuleMonthTimeSpan}`);\n    if (packageData.entity.mostPopular)\n      selector\n        .find(\".vbw-package-card-popular\")\n        .text(translations.packagesModuleMostPopular);\n    selector.find(\".vbw-package-card-detail\").html(packageData.entity?.details);\n    return selector;\n  }\n\n  vbtvApiFallback(contentId) {\n    const _this = this;\n\n    // Handle All or Mosaic Fallback\n    if (\n      contentId === _this.vbtvConstants.all ||\n      contentId === _this.vbtvConstants.mosaic\n    ) {\n      _this.VbtvMosaicCard.hide();\n      _this.VbtvMosaicCard.siblings().show();\n      _this.VbtvMosaicFailoverWrap.show();\n    }\n    // Handle All or Playlist Fallback\n    if (\n      contentId === _this.vbtvConstants.all ||\n      contentId === _this.vbtvConstants.playlist\n    ) {\n      _this.VbtvPlaylistCard.hide();\n      _this.VbtvPlaylistFailoverWrap.show();\n    }\n    // Handle All or Rails Fallback\n    if (\n      contentId === _this.vbtvConstants.all ||\n      (contentId !== _this.vbtvConstants.mosaic &&\n        contentId !== _this.vbtvConstants.playlist)\n    ) {\n      // Hide all rails from page\n      if (contentId === _this.vbtvConstants.all) {\n        $(\".vbw-video-rail-wrap\").each(function () {\n          $(this).hide();\n        });\n      } else {\n        $(`[${_this.vbtvDataId.vbtvBucketId}=\"${contentId}\"]`)\n          ?.closest(\".vbw-video-rail-wrap\")\n          .hide();\n      }\n    }\n    // Handle All or Packages GetStarted Fallback\n    if (\n      (contentId === _this.vbtvConstants.all ||\n        contentId === _this.vbtvConstants.packageGetStarted) &&\n      !_this.packageGetStartedConfig?.isEditorialDataAvailable\n    ) {\n      _this.VbtvPackagesGetStartedFailoverWrap.hide();\n    }\n    // Handle All or Packages Intro Fallback\n    if (\n      (contentId === this.vbtvConstants.all ||\n        contentId === _this.vbtvConstants.packageIntro) &&\n      !_this.packageIntroConfig?.isEditorialDataAvailable\n    ) {\n      _this.VbtvPackagesIntroFailoverWrap.hide();\n    }\n    // Handle All or Packages Compare Fallback\n    if (\n      (contentId === this.vbtvConstants.all ||\n        contentId === _this.vbtvConstants.packageCompare) &&\n      !_this.packageComparePlanConfig?.isEditorialDataAvailable\n    ) {\n      _this.VbtvPackageCompareFailoverWrap.hide();\n    }\n  }\n\n  getCurrency(shortForm) {\n    switch (shortForm) {\n      case \"USD\":\n      case \"CAD\":\n        return \"$\";\n      case \"BRL\":\n        return \"R$\";\n      case \"GBP\":\n        return \"£\";\n      case \"EUR\":\n        return \"€\";\n      case \"THB\":\n        return \"฿\";\n      case \"JPY\":\n        return \"¥\";\n      default:\n        return \"\";\n    }\n  }\n\n  updateVideoCard(selector, itemWrap, videoData) {\n    const _this = this;\n    const urlPathType =\n      videoData?.type?.toLowerCase() == \"vod\" ? \"/video/\" : \"/live/\";\n\n    selector.find(itemWrap).attr(\"title\", videoData.title);\n    selector\n      .find(itemWrap)\n      .attr(\"href\", _this.vbtvApiKeys.vbtvDomain + urlPathType + videoData.id);\n    selector.find(\".fm-card__figure img\").attr(\"alt\", \"video rail image\");\n    selector.find(\".fm-card__figure img\").attr(\"src\", videoData.thumbnailUrl);\n\n    selector.find(\".fa-roofline span\").text(\"\");\n    selector.find(\".fa-text__title\").text(videoData.title);\n    selector.find(\".fa-text__meta\").text(\"\");\n\n    return selector;\n  }\n\n  updatePlaylistView(selector, playlistData) {\n    const _this = this;\n    const urlPathType =\n      playlistData?.type?.toLowerCase() == \"vod\"\n        ? \"/video/\"\n        : playlistData?.type?.toLowerCase() == \"playlist\"\n        ? \"/playlist/\"\n        : \"/live/\";\n\n    selector.find(\".vbw-vbtv-playlist-link\").attr(\"title\", playlistData.title);\n    selector\n      .find(\".vbw-vbtv-playlist-link\")\n      .attr(\"aria-label\", playlistData.title);\n    selector\n      .find(\".vbw-vbtv-playlist-link\")\n      .attr(\n        \"href\",\n        _this.vbtvApiKeys.vbtvDomain + urlPathType + playlistData.id\n      );\n    selector.find(\".vbw-vbtv-playlist-title\").text(playlistData.title);\n    selector.find(\".vbw-vbtv-playlist-decipline\").text(\"\");\n\n    return selector;\n  }\n\n  convertToSlug(text) {\n    if (text) {\n      return text\n        .toLowerCase()\n        .replace(/[^\\w ]+/g, \"\")\n        .replace(/ +/g, \"-\");\n    }\n    return \"\";\n  }\n}\n"],"names":["VbtvEngine","_classCallCheck","_createClass","key","value","_this","this","initVariables","VbtvMosaicCard","length","VbtvVideoRails","VbtvPlaylistCard","VbtvPackageGetStarted","VbtvPackageIntro","VbtvPackageCompare","assignAttrValues","vbtvApiKeys","vbtvDomain","vbtvApiDomain","vbtvLoginResource","vbtvRealm","vbtvApiKey","vbtvAppName","authenticateVbtvApi","console","log","vbtvApiFallback","vbtvConstants","all","packages","Packages","$","first","VbtvMosaicFailoverWrap","VbtvPlaylistFailoverWrap","VbtvPackagesIntroFailoverWrap","VbtvPackagesGetStartedFailoverWrap","VbtvPackageCompareFailoverWrap","VbtvRailTemplate","VbtvPlaylistTemplate","VbtvPackagesGetStartedTemplate","VbtvPackagesIntroTemplate","VbtvPackagesCompareTemplate","packageComparePlanConfig","window","packageGetStartedConfig","packageIntroConfig","vbtvAuthToken","vbtvRefreshToken","vbtvTokenExpiryTimer","vbtvApiFailedCounter","vbtvPackageEndeavourData","vbtvPackageEntityData","mosaic","playlist","packageGetStarted","packageIntro","packageCompare","packagesData","vbtvLocalStorageKeys","authToken","refreshToken","tokenExpiryTimer","vbtvDataId","vbtvExpiryTimer","vbtvRailApiResource","vbtvMosaicApiResource","vbtvPlaylistApiResource","vbtvBucketId","vbtvBucketLength","vbtvSectionId","vbtvRailItemSkip","vbtvPlaylistBp","vbtvPlaylistBpp","vbtvVideoNumber","vbtvBucketType","vbtvLanguageApiResource","vbtvPackageApiResource","vbtvPackageEntityApiResource","vbtvLicencePurchaseResource","attr","vbtvPackageEntityResource","isTokenValid","arguments","undefined","localStorage","getItem","Date","getTime","initVbtvDataFetch","ajax","headers","Realm","app","type","url","done","data","updateLocalStorage","authorisationToken","fail","err","keys","expiryTimer","setItem","mosaicApiResource","sectionId","bp","bpp","rpp","toLowerCase","replace","fetchVbtvApiData","renderMosaicCard","bind","each","bucketId","skipValue","parseInt","railApiResource","renderVideoRail","playlistApiResource","renderPlaylist","vbtvPackageResource","isVbtvEndeavorApiFetch","fetchVbtPackagesEntityApiData","isEditorialDataAvailable","renderPackageModules","initCarousel","apiUrl","renderCb","contentId","miscData","isAsync","Authorization","async","concat","_this$packageCompareP","_this$packageGetStart","_this$packageIntroCon","cache","setPackageModulesData","videoData","videoNumber","buckets","m","_data$buckets$m$conte","contentList","_data$buckets$_m$cont","_data$buckets$_m$cont2","_data$buckets$_m$cont3","updateVideoCard","parent","show","live","isMobile","hasClass","find","hide","list","i","skipItems","rail","template","push","html","join","EventsHelper","ReloadCarousels","playlists","playlistBucketType","bucket","_toConsumableArray","updatePlaylistView","vbtvEndeavourData","isPackageCompare","setupPackagesCompareSpecsBody","_step","_iterator","_createForOfIteratorHelper","_loop","_vbtvPackageEntityDat","licenseObj","vbtvPackageEntity","vbtvPackages","entity","licenceId","trim","licence","id","toString","_licenseObj$licence$a","packageAmount","amounts","amount","local","default","setupPackagesCompare","renderPackagesCards","s","n","e","f","setupPackagesModuleMetadata","specsHeader","packageCompareTemplate","clone","sort","spec1","spec2","order","_step2","compareBody","_iterator2","specs","packageCompareSpecsTemplate","text","addClass","code","_step3","_iterator3","_loop2","_licenseObj$licence","_vbtvPackageEntityDat2","packageType","getPackageTimeSpan","purchaseStrategy","subscriptionPeriod","vbtvPackageTimeClass","mark","markClass","packageCompareSpecsTemplateStatusMark","append","prepend","subscrptionPeriod","_licenseObj$licence2","_this$vbtvApiKeys$vbt","licenceBuyUrl","compareHeader","purchaseRow","vbtvCompareTemplate","compareHeaderTemplate","purchaseRowTemplate","packageTypeClass","shortName","getPackageAmount","currency","getCurrency","_selector$find","_selector$find2","selector","monthPackagesCount","yearPackagesCount","isAnnual","yearCountSelector","monthCountSelector","yearCount","monthCount","getTimeSpanCount","packageAmountObj","amountStr","slice","scale","count","finalAmount","_licenseObj$licence3","swiperList","translations","cardType","vbtvGetStartedTemplate","card","updatePackagesCard","vbtvIntroTemplate","packageData","pageNo","_this$vbtvApiKeys$vbt2","_packageData$entity","_packageData$entity2","_packageData$entity3","_packageData$entity4","removeClass","convertToSlug","longName","description","packagesModuleYearTimeSpan","packagesModuleMonthTimeSpan","mostPopular","packagesModuleMostPopular","details","_this$packageGetStart2","_this$packageIntroCon2","_this$packageCompareP2","_$","siblings","closest","shortForm","itemWrap","_videoData$type","urlPathType","title","thumbnailUrl","playlistData","_playlistData$type","_playlistData$type2"],"sourceRoot":""}