@playkit-js/playkit-js-kava 1.14.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"playkit-kava.js","mappings":"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","sources":["webpack://KalturaPlayer.plugins.kava/webpack/universalModuleDefinition","webpack://KalturaPlayer.plugins.kava/./node_modules/@playkit-js/playkit-js-providers/dist/playkit-analytics-service.js","webpack://KalturaPlayer.plugins.kava/webpack/bootstrap","webpack://KalturaPlayer.plugins.kava/webpack/runtime/define property getters","webpack://KalturaPlayer.plugins.kava/webpack/runtime/hasOwnProperty shorthand","webpack://KalturaPlayer.plugins.kava/webpack/runtime/make namespace object","webpack://KalturaPlayer.plugins.kava/external root \"KalturaPlayer\"","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://KalturaPlayer.plugins.kava/./src/kava-event-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-rate-handler.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-timer.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/event-bucket-name.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/button-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-event-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/page-load-type.ts","webpack://KalturaPlayer.plugins.kava/./src/applications-events.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/kaltura-application.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-feature.ts","webpack://KalturaPlayer.plugins.kava/./src/application-events-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-model.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/http-method-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/player-skin.ts","webpack://KalturaPlayer.plugins.kava/./src/log-failed-live-events.ts","webpack://KalturaPlayer.plugins.kava/./src/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://KalturaPlayer.plugins.kava/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"KalturaPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"KalturaPlayer\"] = factory();\n\telse\n\t\troot[\"KalturaPlayer\"] = root[\"KalturaPlayer\"] || {}, root[\"KalturaPlayer\"][\"plugins\"] = root[\"KalturaPlayer\"][\"plugins\"] || {}, root[\"KalturaPlayer\"][\"plugins\"][\"kava\"] = factory();\n})(self, () => {\nreturn ","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){\"use strict\";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function o(e){var t=function(e,t){if(\"object\"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,\"string\");if(\"object\"!==n(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"===n(t)?t:String(t)}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function a(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{NAME:function(){return P},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return h},RequestBuilder:function(){return l},VERSION:function(){return C}});var u=function(){return{VERSION:\"\",DEBUG:{value:\"\",name:\"\"},ERROR:{value:\"\",name:\"\"},INFO:{value:\"\",name:\"\"},OFF:{value:\"\",name:\"\"},TIME:{value:\"\",name:\"\"},TRACE:{value:\"\",name:\"\"},WARN:{value:\"\",name:\"\"},createDefaultHandler:function(){},debug:function(){},enabledFor:function(){},error:function(){},get:function(){},getLevel:function(){},info:function(){},log:function(){},setHandler:function(){},setLevel:function(){},time:function(){},timeEnd:function(){},trace:function(){},useDefaults:function(){},warn:function(){}}};var c=function(e){return u(e)},f=s((function e(t,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r(this,e),this.severity=t,this.category=n,this.code=o,this.data=i,e._logger.error(\"Category:\".concat(n,\" | Code:\").concat(o,\" |\"),i)}));a(f,\"Severity\",{RECOVERABLE:1,CRITICAL:2}),a(f,\"Category\",{NETWORK:1,SERVICE:2,PROVIDER:3}),a(f,\"Code\",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002}),a(f,\"_logger\",c(\"Error\"));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),a(this,\"retryConfig\",{async:!0,timeout:0,maxAttempts:4}),a(this,\"_attemptCounter\",1),this.headers=t}return s(e,[{key:\"getUrl\",value:function(e){return e+\"/service/\"+this.service+(this.action?\"/action/\"+this.action:\"\")}},{key:\"doHttpRequest\",value:function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t}},{key:\"_createXHR\",value:function(){var e=this,t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState&&200===t.status)try{var r=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(r)}catch(r){e._requestPromise.reject(e._createError(t,f.Code.BAD_SERVER_RESPONSE,{text:t.responseText}))}},t.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(t.timeout=this.retryConfig.timeout);var r=performance.now();t.ontimeout=function(){e._handleError(t,f.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,f.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)}},{key:\"_getResponseHeaders\",value:function(e){return e.getAllResponseHeaders().split(\"\\n\").filter((function(e){return 0===e.toLowerCase().indexOf(\"x-\")}))}},{key:\"_handleError\",value:function(e,t,r){var n=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(n);this._attemptCounter++,this._createXHR()}},{key:\"_createError\",value:function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new f(f.Severity.CRITICAL,f.Category.NETWORK,t,r)}}]),e}(),p=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,o){(\"object\"===n(t)||Array.isArray(t)&&t.length>0)&&(r[o]=e(t))})):\"object\"===n(t)?(r=Object.assign({},t),Object.keys(r).forEach((function(t){(\"object\"===n(r[t])||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r},y={serviceUrl:\"https://cdnapisec.kaltura.com/api_v3\",cdnUrl:\"https://cdnapisec.kaltura.com\",serviceParams:{apiVersion:\"3.3.0\",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1},h=function(){function e(){r(this,e)}return s(e,null,[{key:\"set\",value:function(e){e&&Object.assign(y,e)}},{key:\"get\",value:function(){return p(y)}}]),e}();function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&v(e,t)}function m(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function g(e,t){if(t&&(\"object\"===n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return m(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var R=s((function e(t){r(this,e),a(this,\"hasError\",!1),\"KalturaAPIException\"===t.objectType?(this.hasError=!0,this.error=new O(t.code,t.message)):t.error&&\"KalturaAPIException\"===t.error.objectType?(this.hasError=!0,this.error=new O(t.error.code,t.error.message)):this.data=t})),O=s((function e(t,n){r(this,e),this.code=t,this.message=n}));var b=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){var e;r(this,i);for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return a(m(e=o.call.apply(o,[this].concat(n))),\"requests\",[]),e}return s(i,[{key:\"add\",value:function(e){this.requests.push(e);var t={},r={service:e.service,action:e.action};return Object.assign(t,a({},this.requests.length,Object.assign(r,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:\"execute\",value:function(e){var t=this;return new Promise((function(r,n){try{t.params=JSON.stringify(t.params)}catch(e){i._logger.error(\"\".concat(e.message)),n(new f(f.Severity.CRITICAL,f.Category.PROVIDER,f.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(o){var i=new _(o,e);i.success?r({headers:t.responseHeaders,response:i}):n(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:i.results}))}),(function(e){n(e)}))}))}}]),i}(l);a(b,\"_logger\",c(\"MultiRequestBuilder\"));var _=s((function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r(this,e),a(this,\"results\",[]);var o=t.result?t.result:t,i=(Array.isArray(o)?o:[o]).map((function(e){return new R(e)})),s=i.filter((function(e){return e.hasError}));s.forEach((function(t){e._logger.error(\"Service returned an error with error code: \".concat(t.error.code,\" and message: \").concat(t.error.message,\".\"))})),this.results=i,n&&s.length||s.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));a(_,\"_logger\",c(\"MultiRequestResult\"));var T=function(e){var t=[],r=/\\[\\]$/,o=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},i=function(e,r){r=\"function\"==typeof r?r():null==r?\"\":r,t[t.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(r)};return function e(s,a){var u,c,f;if(s)if(o(a))for(u=0,c=a.length;u<c;u++)r.test(s)?i(s,a[u]):e(s+\":\"+(\"object\"===n(a[u])?u:\"\"),a[u]);else if(a&&\"[object Object]\"===String(a))for(f in a)e(s+\":\"+f,a[f]);else i(s,a);else if(o(a))for(u=0,c=a.length;u<c;u++)i(a[u].name,a[u].value);else for(f in a)e(f,a[f]);return t}(\"\",e).join(\"&\").replace(/%20/g,\"+\")};var S=\"analytics\",A=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){return r(this,i),o.apply(this,arguments)}return s(i,null,[{key:\"trackEvent\",value:function(e,t,r){return\"POST\"===r?i._trackEventByPOST(e,t):i._trackEventByGET(e,t)}},{key:\"_trackEventByGET\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new l;return o.service=S,o.action=\"trackEvent\",o.method=\"GET\",o.retryConfig.maxAttempts=1,o.tag=\"analytics-trackEvent\",o.params=n,o.url=e+\"?service=\"+o.service+\"&action=\"+o.action+\"&\"+T(o.params),o}},{key:\"_trackEventByPOST\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new Map;o.set(\"Content-Type\",\"application/json\");var i=new l(o),s={eventType:n.eventType,partnerId:n.partnerId,entryId:n.entryId,sessionId:n.sessionId};return[\"eventType\",\"partnerId\",\"entryId\",\"sessionId\"].forEach((function(e){return delete n[e]})),i.service=S,i.action=\"trackEvent\",i.method=\"POST\",i.retryConfig.maxAttempts=1,i.tag=\"analytics-trackEvent\",i.params=JSON.stringify(n),i.url=e+\"?service=\"+i.service+\"&action=\"+i.action+\"&\"+T(s),i}}]),i}(function(){function e(){r(this,e)}return s(e,null,[{key:\"getMultiRequest\",value:function(e,t,r){var n=h.get(),o=n.serviceParams;Object.assign(o,{ks:t,clientTag:\"html5:v\"+e}),r&&Object.assign(o,{partnerId:r});var i=new Map;i.set(\"Content-Type\",\"application/json\");var s=new b(i);return s.method=\"POST\",s.service=\"multirequest\",s.url=s.getUrl(n.serviceUrl),s.params=o,s}}]),e}()),P=\"@playkit-js/playkit-js-providers-analytics-service\",C=\"2.40.4\";return t}()}));\n//# sourceMappingURL=playkit-analytics-service.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = KalturaPlayer;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","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 return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\n\n/**\n * @name KavaEventType\n * @enum\n */\nexport const KavaEventModel = {\n /**\n * @type {string} VIEW\n * @memberof KavaEventType\n */\n VIEW: {\n type: 'VIEW',\n index: 99,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n playTimeSum: model.getPlayTimeSum(),\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n averageBitrate: model.getAverageBitrate(),\n audioLanguage: model.getLanguage(),\n soundMode: model.getSoundMode(),\n tabMode: model.getTabMode(),\n viewabilityMode: model.getViewabilityMode(),\n screenMode: model.getScreenMode()\n };\n\n if (!isNaN(model.getForwardBufferHealth())) {\n eventModel.forwardBufferHealth = model.getForwardBufferHealth();\n }\n if (model.getMaxManifestDownloadTime() > 0) {\n eventModel.manifestDownloadTime = model.getMaxManifestDownloadTime();\n }\n if (model.getSegmentDownloadTime() > 0) {\n eventModel.segmentDownloadTime = model.getSegmentDownloadTime();\n }\n if (model.getBandwidth()) {\n eventModel.bandwidth = model.getBandwidth();\n }\n if (model.getDroppedFramesRatio() !== null) {\n eventModel.droppedFramesRatio = model.getDroppedFramesRatio();\n }\n\n if (!isNaN(model.getTargetBuffer())) {\n eventModel.targetBuffer = model.getTargetBuffer();\n }\n\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n\n if (model.getNetworkConnectionOverhead()) {\n eventModel.networkConnectionOverhead = model.getNetworkConnectionOverhead();\n }\n if (!isNaN(model.getFlavorParamsId())) {\n eventModel.flavorParamsId = model.getFlavorParamsId();\n }\n if (!isNaN(model.getPlaybackMode())) {\n eventModel.playbackMode = model.getPlaybackMode();\n }\n if (model.getSourceEntryId() !== null) {\n eventModel.sourceEntryId = model.getSourceEntryId();\n }\n\n return eventModel;\n }\n },\n /**\n * @type {string} IMPRESSION\n * @memberof KavaEventType\n */\n IMPRESSION: {\n type: 'IMPRESSION',\n index: 1,\n getEventModel: (model: KavaModel): any => {\n const eventModel = {} as KavaModel;\n if (model.getPlayerJSLoadTime() !== null) {\n eventModel.playerJSLoadTime = model.getPlayerJSLoadTime();\n }\n const isV2ToV7Redirected = model.getV2ToV7Redirect();\n const registeredPlugins = model.getRegisteredPlugins();\n eventModel['loadedPlugins'] = isV2ToV7Redirected ? `v2-v7redirect,${registeredPlugins}` : registeredPlugins;\n return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed(),\n playerSkin: model.getPlayerSkin()\n };\n\n if (model.getCaption()) {\n commonModel.caption = model.getCaption();\n }\n if (model.getSessionStartTime()) {\n commonModel.sessionStartTime = model.getSessionStartTime();\n }\n if (model.getKS()) {\n commonModel.ks = model.getKS();\n }\n if (model.getVirtualEventId()) {\n commonModel.virtualEventId = model.getVirtualEventId();\n }\n if (model.getUIConfId()) {\n commonModel.uiConfId = model.getUIConfId();\n }\n if (model.getPlaylistId()) {\n commonModel.playlistId = model.getPlaylistId();\n }\n if (model.getCustomVar1()) {\n commonModel.customVar1 = model.getCustomVar1();\n }\n if (model.getCustomVar2()) {\n commonModel.customVar2 = model.getCustomVar2();\n }\n if (model.getCustomVar3()) {\n commonModel.customVar3 = model.getCustomVar3();\n }\n if (model.getPlaybackContext()) {\n commonModel.playbackContext = model.getPlaybackContext();\n }\n if (model.getApplication()) {\n commonModel.application = model.getApplication();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel.kalturaApplicationVer = model.getKalturaApplicationVersion();\n }\n if (model.getKalturaApplication()) {\n commonModel.kalturaApplication = model.getKalturaApplication();\n }\n if (model.getUserId()) {\n commonModel.userId = model.getUserId();\n }\n if (model.getPersistentSessionId()) {\n commonModel.persistentSessionId = model.getPersistentSessionId();\n }\n if (model.getHostingKalturaApplication()) {\n commonModel.hostingKalturaApplication = model.getHostingKalturaApplication();\n }\n if (model.getHostingKalturaApplicationVersion()) {\n commonModel.hostingKalturaApplicationVersion = model.getHostingKalturaApplicationVersion();\n }\n const eventModel = eventObj.getEventModel(model);\n return Object.assign(eventModel, commonModel);\n}\n","/**\n * Manage the video rates for the KAVA plugin.\n * @private\n * @class KavaRateHandler\n */\nclass KavaRateHandler {\n private _rates: any[] = [];\n\n constructor() {\n this._rates = [];\n }\n\n /**\n * Sets the video rates.\n * @param {Array<number>} rates - The video rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setRates(rates: Array<number>): void {\n this._rates = [];\n rates.forEach((rate) => {\n this._rates.push({\n rate: rate,\n active: false,\n duration: 0\n });\n });\n }\n\n /**\n * Sets the current rate.\n * @param {number} rate - The current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setCurrent(rate: number): void {\n this._rates.forEach((o) => (o.active = false));\n const obj = this._rates.find((o) => o.rate === rate);\n if (obj) {\n obj.active = true;\n }\n }\n\n /**\n * Gets the current rate.\n * @returns {number} - The current rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getCurrent(): number {\n const current = this._rates.find((o) => o.active);\n return current ? current.rate : -1;\n }\n\n /**\n * Increases the duration of the current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public countCurrent(): void {\n const current = this._rates.find((o) => o.active);\n if (current) {\n current.duration++;\n }\n }\n\n /**\n * Gets the average rate.\n * @returns {number} - The average rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getAverage(): number {\n let totalDuration = 0;\n let sum = 0;\n this._rates.forEach((o) => {\n sum += o.rate * o.duration;\n totalDuration += o.duration;\n });\n return totalDuration ? sum / totalDuration : 0;\n }\n\n /**\n * Resets the duration of all rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public reset(): void {\n this._rates.forEach((o) => (o.duration = 0));\n }\n\n /**\n * Destroys the class.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public destroy(): void {\n this._rates = [];\n }\n}\n\nexport { KavaRateHandler };\n","import { core } from '@playkit-js/kaltura-player-js';\nconst { FakeEvent, FakeEventTarget } = core;\n\nconst SECOND: number = 1000;\n\n/**\n * Create service worker with timer.\n * @private\n * @class WorkerTimer\n * @param {void} callback - callback that triggers on timer tick.\n * @param {number} interval - interval in ms.\n */\nclass WorkerTimer {\n private worker: Worker | null = null;\n constructor(callback, interval) {\n const blob = new Blob([`setInterval(() => postMessage(0), ${interval});`]);\n const workerScript = URL.createObjectURL(blob);\n this.worker = new Worker(workerScript);\n this.worker.onmessage = callback;\n }\n\n /**\n * Terminate service worker.\n * @returns {void}\n * @memberof WorkerTimer\n * @instance\n */\n public stop(): void {\n if (this.worker) {\n this.worker.terminate();\n }\n }\n}\n\n/**\n * Mange a timer and dispatches related events.\n * @private\n * @class KavaTimer\n * @param {Object} config - The timer config.\n */\nclass KavaTimer extends FakeEventTarget {\n private _resetCounter!: number;\n private _eventCounter!: number;\n private _timer?: WorkerTimer | null;\n private _stopped!: boolean;\n private _config: any;\n\n public static Event = {\n TICK: 'tick',\n RESET: 'reset',\n REPORT: 'report'\n };\n\n constructor(config: any) {\n super();\n this._config = config;\n }\n\n /**\n * Starts the timer interval.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public start(): void {\n this._terminateTimer();\n this._stopped = false;\n this._resetCounter = 0;\n this._eventCounter = 0;\n this._timer = new WorkerTimer(() => this._monitor(), SECOND);\n }\n\n /**\n * Continues the timer to dispatch REPORT.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public resume(): void {\n this._stopped = false;\n this._resetCounter = 0;\n }\n\n /**\n * Stops the timer from dispatch REPORT and starts the timer to dispatch RESET.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public stop(): void {\n this._stopped = true;\n }\n\n /**\n * @returns {boolean} - Whether the timer is stopped.\n * @memberof KavaTimer\n * @instance\n */\n public isStopped(): boolean {\n return this._stopped;\n }\n\n /**\n * Destroys the timer.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public destroy(): void {\n this._terminateTimer();\n }\n\n private _terminateTimer(): void {\n if (this._timer) {\n this._timer.stop();\n this._timer = null;\n }\n }\n\n private _monitor(): void {\n if (this._stopped) {\n if (this._resetCounter === this._config.resetCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.RESET));\n this._resetCounter = 0;\n this._eventCounter = 0;\n }\n this._resetCounter++;\n } else {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.TICK));\n if (this._eventCounter === this._config.eventCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.REPORT));\n this._eventCounter = 0;\n }\n this._eventCounter++;\n }\n }\n}\n\nexport { KavaTimer };\n","export enum EventBucketName {\n ApplicationEvents = 'ApplicationEvents',\n PlayerEvents = 'PlayerEvents'\n}\n","// EventVar 1 in kava server\n\nexport enum ButtonType {\n Create = 1,\n Filter = 2,\n Search = 3,\n Export = 4,\n Navigate = 5,\n Schedule = 6,\n Insert = 7,\n Choose = 8,\n Launch = 9,\n Open = 10,\n Send = 11,\n Invite = 12,\n Close = 13,\n Save = 14,\n Expand = 15,\n Collapse = 16,\n Edit = 17,\n Delete = 18,\n Browse = 19,\n Load = 20,\n Add = 21,\n Menu = 22,\n Register = 23,\n Login = 24,\n Link = 25,\n Toggle = 26,\n Thumbnail = 27,\n Download = 28,\n Share = 29\n}\n","export const ApplicationEventType = {\n BUTTON_CLICKED: 10002,\n PAGE_LOAD: 10003\n};\n","// // EventVar 1 in kava server\nexport enum PageLoadType {\n View = 1,\n Create = 2,\n Edit = 3,\n Participate = 4,\n List = 5,\n Analytics = 6,\n Admin = 7,\n Error = 8,\n Login = 9,\n Registration = 10,\n Custom = 11\n}\n","const playkitUIEventsNamespace = 'playkit-ui';\nexport const PlaykitUIEvents = {\n USER_CLICKED_LOGO: `${playkitUIEventsNamespace}-userclickedlogo`,\n USER_SELECTED_CAPTIONS_SIZE: `${playkitUIEventsNamespace}-userselectedcaptionssize`,\n USER_SELECTED_CAPTIONS_WEIGHT: `${playkitUIEventsNamespace}-userselectedcaptionsweight`,\n USER_SELECTED_CAPTIONS_ALIGNMENT: `${playkitUIEventsNamespace}-userselectedcaptionsalignment`,\n USER_SELECTED_CAPTIONS_FONT_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsfontcolor`,\n USER_SELECTED_CAPTIONS_FONT_FAMILY: `${playkitUIEventsNamespace}-userselectedcaptionsfontfamily`,\n USER_SELECTED_CAPTIONS_FONT_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionsfontstyle`,\n USER_SELECTED_CAPTIONS_FONT_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsfontopacity`,\n USER_SELECTED_CAPTIONS_BACKGROUND_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundcolor`,\n USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundopacity`,\n USER_SHOWED_CAPTIONS: `${playkitUIEventsNamespace}-usershowedcaptions`,\n USER_HID_CAPTIONS: `${playkitUIEventsNamespace}-userhidcaptions`,\n USER_SELECTED_CAPTION_TRACK: `${playkitUIEventsNamespace}-userselectedcaptiontrack`,\n USER_SELECTED_AUDIO_TRACK: `${playkitUIEventsNamespace}-userselectedaudiotrack`,\n USER_COPIED_DEBUG_INFO: `${playkitUIEventsNamespace}-usercopieddebuginfo`,\n DISPLAY_INFO_BEFORE_PLAYBACK: `${playkitUIEventsNamespace}-displayinfobeforeplayback`,\n USER_SELECTED_CAPTIONS_PRESET_MINIMALIST: `${playkitUIEventsNamespace}-userselectedcaptionspresetminimalist`,\n USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST: `${playkitUIEventsNamespace}-userselectedcaptionspresethighcontrast`,\n USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionspresetclassictvstyle`,\n USER_SELECTED_CAPTIONS_PRESET_EASY_READING: `${playkitUIEventsNamespace}-userselectedcaptionspreseteasyreading`,\n USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS: `${playkitUIEventsNamespace}-userselectedcaptionspresetearlyreaders`,\n USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE: `${playkitUIEventsNamespace}-userselectedcaptionspresetnightmode`,\n USER_SELECTED_CAPTIONS_CUSTOM: `${playkitUIEventsNamespace}-userselectedcaptionscustom`\n};\n\nexport const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n TRANSCRIPT_POPOUT_OPEN: 'transcript_popout_open',\n TRANSCRIPT_POPOUT_CLOSE: 'transcript_popout_close',\n TRANSCRIPT_POPOUT_DRAG: 'transcript_popout_drag',\n TRANSCRIPT_POPOUT_RESIZE: 'transcript_popout_resize'\n};\n\nexport const EadEvents = {\n EAD_ON: 'EAD_on',\n EAD_OFF: 'EAD_off',\n EAD_SKIP: 'EAD_skip',\n EAD_REPLAY: 'EAD_replay',\n EAD_PAUSE: 'EAD_pause',\n EAD_RESUME: 'EAD_resume',\n EAD_PLAY: 'EAD_play',\n EAD_SCROLL: 'EAD_scroll'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout',\n SIDE_DISPLAYED: 'dualscreen_side_displayed'\n};\nexport const ShareEvents = {\n SHARE_CLICKED: 'share_clicked',\n SHARE_CLOSE: 'share_close',\n SHARE_NETWORK: 'share_network',\n SHARE_COPY: 'share_copy'\n};\n\nexport const BumperEvents = {\n BUMPER_CLICKED: 'bumper_clicked'\n};\nexport const SkipEvents = {\n SKIP_BUTTON_CLICK: 'skip_button_click',\n SKIP_BUTTON_DISPLAYED: 'skip_button_displayed'\n};\nexport const PlaylistEvents = {\n PLAYLIST_OPEN: 'playlist_open',\n PLAYLIST_CLOSE: 'playlist_close'\n};\n\nexport const RelatedEvents = {\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close',\n RELATED_ENTRY_SELECTED: 'related_entry_selected',\n RELATED_ENTRY_AUTO_PLAYED: 'related_entry_auto_played',\n RELATED_GRID_DISPLAYED: 'related_grid_displayed'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click',\n CALL_TO_ACTION_DISPLAYED: 'call_to_action_displayed'\n};\n\nexport const HotspotsEvents = {\n HOTSPOT_CLICK: 'hotspot_click',\n HOTSPOT_DISPLAYED: 'hotspot_displayed'\n};\n\nexport const IvqEventTypes = {\n QUIZ_STARTED: 'QuizStarted',\n QUIZ_SKIPPED: 'QuizSkipped',\n QUIZ_SEEK: 'QuizSeek',\n QUESTION_ANSWERED: 'QuestionAnswered',\n QUIZ_SUBMITTED: 'QuizSubmitted',\n QUIZ_RETAKE: 'QuizRetake',\n QUIZ_QUESTION_CHANGED: 'QuizQuestionChanged'\n};\n\nexport const DetectAdBlockEvents = {\n DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN: 'detect_ad_block_partial_overlay_shown',\n DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN: 'detect_ad_block_full_overlay_shown',\n DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED: 'detect_ad_block_secondary_button_clicked',\n DETECT_AD_BLOCK_X_BUTTON_CLICKED: 'detect_ad_block_x_button_clicked',\n DETECT_AD_BLOCK_AD_BLOCKER_DISABLED: 'detect_ad_block_ad_blocker_disabled',\n DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED: 'detect_ad_block_ad_blocker_not_disabled'\n};\n\nexport const ReelsEvents = {\n REELS_PLAY: 'reels_play',\n REELS_PAUSE: 'reels_pause',\n REELS_MUTE: 'reels_mute',\n REELS_UNMUTE: 'reels_unmute',\n REELS_SEEK: 'reels_seek',\n REELS_POSTER_CLICKED: 'reels_poster_clicked',\n REELS_ENTRY_LOADED: 'reels_entry_loaded',\n REELS_PLAYLIST_LOADED: 'reels_playlist_loaded'\n};\n\nexport const SummaryAndChaptersEvents = {\n SUMMARY_CHAPTERS_OPEN: 'summary_chapters_open',\n SUMMARY_CHAPTERS_CLOSE: 'summary_chapters_close',\n SUMMARY_CHAPTERS_READ_CHAPTERS: 'summary_chapters_read_chapters',\n SUMMARY_CHAPTERS_READ_OVERVIEW: 'summary_chapters_read_overview',\n SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD: 'summary_chapters_copy_to_clipboard',\n SUMMARY_CHAPTERS_CHAPTER_EXPAND: 'summary_chapters_chapter_expand',\n SUMMARY_CHAPTERS_CHAPTER_COLLAPSE: 'summary_chapters_chapter_collapse',\n SUMMARY_CHAPTERS_CHAPTER_SEEK: 'summary_chapters_chapter_seek'\n};\n\nexport const AudioPlayerEvents = {\n AUDIO_PLAYER_VISUALIZATION_STATE: 'audio_player_visualization_state'\n};\n\nexport const CpeTrackerEvents = {\n CPE_TRACKER_HOVER: 'cpe_tracker_hover'\n};\n\nexport const BannerOverlayEvents = {\n BANNER_MESSAGE_DISPLAYS: 'banner_message_displays',\n BANNER_MESSAGE_MANUALLY_DISMISSED: 'banner_message_manually_dismissed'\n};\n\n// events fired by the kava plugin itself - the kava plugin does not listen to these events\nexport const KavaEvents = {\n KAVA_REQUEST_SUCCEEDED: 'kava_request_succeeded',\n KAVA_REQUEST_FAILED: 'kava_request_failed'\n};\n\nexport const GenieEvents = {\n GENIE_OPEN_AUTO: 'genie_open_auto',\n GENIE_OPEN_MANUAL: 'genie_open_manual',\n GENIE_CLOSE: 'genie_close',\n GENIE_NEW_THREAD: 'genie_new_thread'\n};\n\nexport const PluginsEvents = {\n ...NavigationEvents,\n ...DownloadEvents,\n ...TranscriptEvents,\n ...DualscreenEvents,\n ...ShareEvents,\n ...BumperEvents,\n ...SkipEvents,\n ...PlaylistEvents,\n ...RelatedEvents,\n ...CallToActionEvents,\n ...HotspotsEvents,\n ...IvqEventTypes,\n ...DetectAdBlockEvents,\n ...ReelsEvents,\n ...EadEvents,\n ...SummaryAndChaptersEvents,\n ...AudioPlayerEvents,\n ...CpeTrackerEvents,\n ...BannerOverlayEvents,\n ...GenieEvents\n};\n","type ApplicationType = { [app: string]: string };\n\nconst KalturaApplication: ApplicationType = {\n KMC: '0',\n KMS: '1',\n KAF: '2',\n PITCH: '3',\n KMS_GO: '4',\n WEBCASTING: '5',\n PERSONAL_CAPTURE: '6',\n KME: '7',\n KME_MOBILE_APP: '8',\n PATH: '9',\n LECTURE_CAPTURE: '10',\n EP: '11',\n CHAT_AND_COLLABORATION: '12',\n ANALYTICS: '13',\n EXPRESS_CAPTURE: '14',\n KPF: '15',\n KAF_GO: '16',\n SITES: '17',\n STUDIO: '18',\n CAPTIONS_EDITOR: '19',\n CHECKLIST: '20',\n PLAYER: '21',\n GENIE: '23'\n};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\n","export enum ApplicationFeature {\n DUAL_SCREEN = 'dual_screen',\n SHARE_EMBED = 'share_embed',\n DOWNLOAD = 'download',\n BUMPER = 'bumper',\n NAVIGATION = 'navaigation',\n TRANSCRIPT = 'transcript',\n PLAYLIST = 'playlist',\n SKIP = 'skip',\n RELATED = 'related',\n CALL_TO_ACTION = 'call_to_action',\n HOTSPOPT = 'hotspot',\n QUIZ = 'quiz',\n UI = 'ui',\n DETECT_AD_BLOCK = 'detect_ad_block',\n REELS = 'reels_player',\n EAD = 'extended_audio_description',\n ADVANCED_CAPTIONS = 'advanced_captions',\n CAPTIONS = 'captions',\n AUDION_TRACKS = 'audio_tracks',\n SUMMARY_CHAPTERS = 'summary_chapters',\n DEBUG_INFO = 'debug_info',\n AUDIO_PLAYER = 'audio_player',\n CPE_TRACKER = 'cpe_tracker',\n BANNER_OVERLAY = 'banner_overlay',\n GENIE = 'genie'\n}\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PlaykitUIEvents, PluginsEvents } from './applications-events';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { ApplicationFeature } from './enums/application-feature';\n\nexport function getApplicationEventsModel(eventObj: KavaEvent, model: KavaModel, innerEventPayload: any): any {\n const commonModel = {\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n kalturaApplication: KalturaApplication.PLAYER,\n application: model.getApplication(false)\n };\n\n if (model.getVirtualEventId()) {\n commonModel['virtualEventId'] = model.getVirtualEventId();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel['kalturaApplicationVer'] = model.getKalturaApplicationVersion();\n }\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n if (model.getKS()) {\n commonModel['ks'] = model.getKS();\n }\n if (model.getHostingKalturaApplication()) {\n commonModel['hostingKalturaApplication'] = model.getHostingKalturaApplication();\n }\n if (model.getHostingKalturaApplicationVersion()) {\n commonModel['hostingKalturaApplicationVersion'] = model.getHostingKalturaApplicationVersion();\n }\n\n const eventModel = eventObj.getEventModel(innerEventPayload);\n const namedEventModel = {};\n const { eventType, eventVar1, eventVar2, eventVar3, eventVar4, applicationFeature } = eventModel;\n namedEventModel['eventType'] = eventType;\n namedEventModel['feature'] = applicationFeature;\n\n if (eventModel.eventType === ApplicationEventType.BUTTON_CLICKED) {\n namedEventModel['buttonName'] = eventVar1;\n namedEventModel['buttonType'] = eventVar2;\n namedEventModel['buttonValue'] = eventVar3;\n namedEventModel['buttonInfo'] = eventVar4;\n } else if (eventModel.eventType === ApplicationEventType.PAGE_LOAD) {\n namedEventModel['pageName'] = eventVar1;\n namedEventModel['pageType'] = eventVar2;\n namedEventModel['pageValue'] = eventVar3;\n namedEventModel['pageInfo'] = eventVar4;\n }\n\n return Object.assign(namedEventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: ({ layout }: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: layout !== 'Hidden' ? 'Dual__screen_change_layout' : '',\n eventVar2: ButtonType.Choose,\n eventVar3: layout,\n applicationFeature: ApplicationFeature.DUAL_SCREEN\n })\n },\n [PluginsEvents.SIDE_DISPLAYED]: {\n type: 'SIDE_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Dual__screen_slide_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.DUAL_SCREEN\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_open',\n eventVar2: ButtonType.Open,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption'],\n applicationFeature: ApplicationFeature.SHARE_EMBED\n };\n let eventVar1: string = '';\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n eventVar1 = 'Share_embed_X_click';\n break;\n case 'facebook':\n eventVar1 = 'Share_embed_facebook_click';\n break;\n case 'email':\n eventVar1 = 'Share_embed_email_click';\n break;\n case 'linkedin':\n eventVar1 = 'Share_embed_linkedin_click';\n break;\n case 'embed':\n eventVar1 = 'Share_embed_embed_click';\n break;\n }\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_copy_click',\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption'],\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.DOWNLOAD_ITEM_CLICKED]: {\n type: 'DOWNLOAD_ITEM_CLICKED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download,\n applicationFeature: ApplicationFeature.DOWNLOAD\n };\n const { assetType, fileType, description, isDefault } = payload;\n\n let eventVar1: string;\n let eventVar3: string;\n\n switch (assetType) {\n case 'Media':\n eventVar1 = isDefault ? 'Download_video_download' : 'Download_additional_stream_download';\n eventVar3 = description;\n break;\n case 'Captions':\n eventVar1 = 'Download_captions_download';\n eventVar3 = description;\n break;\n case 'Attachments':\n eventVar1 = 'Download_attachment_download';\n eventVar3 = fileType;\n break;\n default:\n eventVar1 = '';\n eventVar3 = '';\n }\n return { ...model, eventVar1, eventVar3 };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_open',\n eventVar2: ButtonType.Open,\n eventVar3: '',\n applicationFeature: ApplicationFeature.DOWNLOAD\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.DOWNLOAD\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Bumper_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['clickThroughUrl'],\n applicationFeature: ApplicationFeature.BUMPER\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Navigation_open_auto' : 'Navigation_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Navigation_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n let eventVar1: string = '';\n let eventVar2: ButtonType = ButtonType.Open;\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n const eventVar3 = searchQuery;\n switch (activeTab) {\n case 'All':\n const isItSearch = searchQuery.length > 0 || availableTabs.length === 0;\n eventVar1 = isItSearch ? 'Navigation_search' : 'Navigation_all_tab';\n eventVar2 = isItSearch ? ButtonType.Search : ButtonType.Open;\n break;\n case 'Chapter':\n eventVar1 = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, eventVar1, eventVar2, eventVar3 };\n }\n },\n [PluginsEvents.NAVIGATION_ITEM_CLICK]: {\n type: 'NAVIGATION_ITEM_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n let eventVar1: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n eventVar1 = 'Navigation_chapter_click';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.NAVIGATION_EXPANDABLE_TEXT_CLICK]: {\n type: 'NAVIGATION_EXPANDABLE_TEXT_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let eventVar1: string = '';\n const eventVar2 = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n eventVar1 = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n eventVar1 = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n eventVar1 = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, eventVar1, eventVar2 };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Transcript_open_auto' : 'Transcript_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_download',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition'],\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_print',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition'],\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_search',\n eventVar2: ButtonType.Search,\n eventVar3: payload.search,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_navigate_result',\n eventVar2: ButtonType.Navigate,\n eventVar3: payload.index,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_OPEN]: {\n type: 'TRANSCRIPT_POPOUT_OPEN',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_open',\n eventVar2: ButtonType.Expand,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_CLOSE]: {\n type: 'TRANSCRIPT_POPOUT_CLOSE',\n getEventModel: (payload: { type: string }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_close',\n eventVar2: ButtonType.Collapse,\n eventVar3: payload.type,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_DRAG]: {\n type: 'TRANSCRIPT_POPOUT_DRAG',\n getEventModel: (payload: { position: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_drag',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.position.x},${payload.position.y}`,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_RESIZE]: {\n type: 'TRANSCRIPT_POPOUT_RESIZE',\n getEventModel: (payload: { size: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_resize',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.size.x},${payload.size.y}`,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.PLAYLIST_OPEN]: {\n type: 'PLAYLIST_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: payload['position'],\n applicationFeature: ApplicationFeature.PLAYLIST\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Playlist_side_panel_close_manual',\n eventVar2: ButtonType.Close,\n eventVar3: payload['position'],\n applicationFeature: ApplicationFeature.PLAYLIST\n })\n },\n [PluginsEvents.SKIP_BUTTON_CLICK]: {\n type: 'SKIP_BUTTON_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SKIP\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_click';\n if (mode === 'outro') eventVar1 = 'Skip_outro_click';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SKIP_BUTTON_DISPLAYED]: {\n type: 'SKIP_BUTTON_DISPLAYED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SKIP\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_displayed';\n if (mode === 'outro') eventVar1 = 'Skip_outro_displayed';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_open_manual',\n eventVar2: ButtonType.Open,\n eventVar3: payload['expandMode'],\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_ENTRY_SELECTED]: {\n type: 'RELATED_ENTRY_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_entry_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_ENTRY_AUTO_PLAYED]: {\n type: 'RELATED_ENTRY_AUTO_PLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_entry_auto_continue',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_GRID_DISPLAYED]: {\n type: 'RELATED_GRID_DISPLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_open_auto',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.CALL_TO_ACTION_BUTTON_CLICK]: {\n type: 'CALL_TO_ACTION_BUTTON_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: payload['label'],\n eventVar2: ButtonType.Link,\n eventVar1: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click',\n applicationFeature: ApplicationFeature.CALL_TO_ACTION\n })\n },\n [PluginsEvents.CALL_TO_ACTION_DISPLAYED]: {\n type: 'CALL_TO_ACTION_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'CTA_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload.displayType,\n eventVar4: payload.isMetadataBased ? 'metadata_based' : 'player_level',\n applicationFeature: ApplicationFeature.CALL_TO_ACTION\n })\n },\n [PluginsEvents.HOTSPOT_DISPLAYED]: {\n type: 'HOTSPOT_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Hotspot_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload['label'],\n applicationFeature: ApplicationFeature.HOTSPOPT\n })\n },\n [PluginsEvents.HOTSPOT_CLICK]: {\n type: 'HOTSPOT_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Hotspot_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['label'],\n applicationFeature: ApplicationFeature.HOTSPOPT\n })\n },\n [PluginsEvents.QUIZ_STARTED]: {\n type: 'QUIZ_STARTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_start',\n eventVar2: ButtonType.Load,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SUBMITTED]: {\n type: 'QUIZ_SUBMITTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_submit',\n eventVar2: ButtonType.Send,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SKIPPED]: {\n type: 'QUIZ_SKIPPED',\n getEventModel: ({ questionIndex }: { questionIndex: number }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_skip_question',\n eventVar2: ButtonType.Navigate,\n eventVar3: questionIndex,\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SEEK]: {\n type: 'QUIZ_SEEK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_nav_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.EAD_ON]: {\n type: 'EAD_ON',\n getEventModel: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_on',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n eventVar4: payload?.settings ? 'settings' : 'toggle',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_OFF]: {\n type: 'EAD_OFF',\n getEventModel: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_off',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n eventVar4: payload?.settings ? 'settings' : 'toggle',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_SKIP]: {\n type: 'EAD_SKIP',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_skip',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_REPLAY]: {\n type: 'EAD_REPLAY',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_replay',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_PAUSE]: {\n type: 'EAD_PAUSE',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_pause',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_RESUME]: {\n type: 'EAD_PAUSE',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_resume',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_PLAY]: {\n type: 'EAD_PLAY',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_play',\n eventVar2: ButtonType.Toggle,\n eventVar3: '',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_SCROLL]: {\n type: 'EAD_SCROLL',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_scroll',\n eventVar2: ButtonType.Browse,\n eventVar3: '',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PlaykitUIEvents.USER_CLICKED_LOGO]: {\n type: 'USER_CLICKED_LOGO',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Logo_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['logoUrl'],\n applicationFeature: ApplicationFeature.UI\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_SIZE]: {\n type: 'USER_SELECTED_CAPTIONS_SIZE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_size',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_WEIGHT]: {\n type: 'USER_SELECTED_CAPTIONS_WEIGHT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_weight',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_ALIGNMENT]: {\n type: 'USER_SELECTED_CAPTIONS_ALIGNMENT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_alignment',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_COLOR',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_FAMILY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_FAMILY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_family',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_STYLE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_style',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_OPACITY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_COLOR',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_MINIMALIST]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_MINIMALIST',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_minimalist',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_high_contrast',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_classic_tv_style',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_EASY_READING]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_EASY_READING',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_easy_reading',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_early_readers',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_night_mode',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_CUSTOM]: {\n type: 'USER_SELECTED_CAPTIONS_CUSTOM',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_custom',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SHOWED_CAPTIONS]: {\n type: 'USER_SHOWED_CAPTIONS',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_on',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_HID_CAPTIONS]: {\n type: 'USER_HID_CAPTIONS',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_off',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTION_TRACK]: {\n type: 'USER_SELECTED_CAPTION_TRACK',\n getEventModel: ({ captionTrack, autoSelected }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_language_selected',\n eventVar2: ButtonType.Choose,\n eventVar3: captionTrack?.language,\n eventVar4: autoSelected ? 'Auto display' : 'Manual selection',\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_AUDIO_TRACK]: {\n type: 'USER_SELECTED_AUDIO_TRACK',\n getEventModel: ({ audioTrack }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'audioSelected',\n eventVar2: ButtonType.Choose,\n eventVar3: audioTrack?.language,\n eventVar4: audioTrack?.language?.startsWith('ad-') ? 'AD' : 'non_AD',\n applicationFeature: ApplicationFeature.AUDION_TRACKS\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Allow_playback',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Block_playback',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'secondary_button',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_X_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_X_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'x_button',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'disabled',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'still_detected',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.REELS_PLAY]: {\n type: 'REELS_PLAY',\n getEventModel: ({ duration, isResume }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_play_click',\n eventVar3: isResume ? 'resume' : 'manual_play',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_PAUSE]: {\n type: 'REELS_PAUSE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_pause',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_MUTE]: {\n type: 'REELS_MUTE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_mute',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_UNMUTE]: {\n type: 'REELS_UNMUTE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_unmute',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_SEEK]: {\n type: 'REELS_SEEK',\n getEventModel: ({ duration, from, to }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'reels_seek',\n eventVar3: to > from ? 'forward' : 'backward',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_POSTER_CLICKED]: {\n type: 'REELS_POSTER_CLICKED',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_navigate_to_entry',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_ENTRY_LOADED]: {\n type: 'REELS_ENTRY_LOADED',\n getEventModel: ({ muted, playlistId }) => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'reels_entry_start_playback',\n eventVar3: muted ? 'muted' : 'unmuted',\n eventVar4: playlistId,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_PLAYLIST_LOADED]: {\n type: 'REELS_PLAYLIST_LOADED',\n getEventModel: ({ muted, autoplay, playlistId }) => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'reels_playlist_load',\n eventVar3: `${muted ? 'muted' : 'unmuted'} ; ${autoplay ? 'autoplay_on' : 'autoplay_off'}`,\n eventVar4: playlistId,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_OPEN]: {\n type: 'SUMMARY_CHAPTERS_OPEN',\n getEventModel: ({ buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Toggle,\n eventVar1: 'summary_chapters_open_plugin',\n eventVar3: buttonName,\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CLOSE]: {\n type: 'SUMMARY_CHAPTERS_CLOSE',\n getEventModel: ({ buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Toggle,\n eventVar1: 'summary_chapters_close_plugin',\n eventVar3: buttonName,\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_READ_CHAPTERS]: {\n type: 'SUMMARY_CHAPTERS_READ_CHAPTERS',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_read_as_chapters',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_READ_OVERVIEW]: {\n type: 'SUMMARY_CHAPTERS_READ_OVERVIEW',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_read_as_overview',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD]: {\n type: 'SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_copy_to_clipboard',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_EXPAND]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_EXPAND',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Expand,\n eventVar1: 'summary_chapters_expand_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_COLLAPSE]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_COLLAPSE',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Collapse,\n eventVar1: 'summary_chapters_collapse_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_SEEK]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_SEEK',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'summary_chapters_seek_to_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PlaykitUIEvents.USER_COPIED_DEBUG_INFO]: {\n type: 'USER_COPIED_DEBUG_INFO',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'copy_debug_info',\n eventVar3: '',\n applicationFeature: ApplicationFeature.DEBUG_INFO\n })\n },\n [PluginsEvents.AUDIO_PLAYER_VISUALIZATION_STATE]: {\n type: 'AUDIO_PLAYER_VISUALIZATION_STATE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.Analytics,\n eventVar1: 'audio_player_visualization_state',\n eventVar3: payload.state,\n eventVar4: payload.size,\n applicationFeature: ApplicationFeature.AUDIO_PLAYER\n })\n },\n [PluginsEvents.CPE_TRACKER_HOVER]: {\n type: 'CPE_TRACKER_HOVER',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'CPE_tracker_hover',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.CPE_TRACKER\n })\n },\n [PluginsEvents.BANNER_MESSAGE_DISPLAYS]: {\n type: 'BANNER_MESSAGE_DISPLAYS',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.Analytics,\n eventVar1: 'banner_message_displays',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.BANNER_OVERLAY\n })\n },\n [PluginsEvents.BANNER_MESSAGE_MANUALLY_DISMISSED]: {\n type: 'BANNER_MESSAGE_MANUALLY_DISMISSED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'banner_message_manually_dismissed',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.BANNER_OVERLAY\n })\n },\n [PlaykitUIEvents.DISPLAY_INFO_BEFORE_PLAYBACK]: {\n type: 'DISPLAY_INFO_BEFORE_PLAYBACK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'display_info_before_playback',\n eventVar3: '',\n applicationFeature: ApplicationFeature.UI\n })\n },\n [PluginsEvents.GENIE_OPEN_AUTO]: {\n type: 'GENIE_OPEN_AUTO',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'genie_open_auto',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_OPEN_MANUAL]: {\n type: 'GENIE_OPEN_MANUAL',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Open,\n eventVar1: 'genie_open_manual',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_CLOSE]: {\n type: 'GENIE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'genie_close',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_NEW_THREAD]: {\n type: 'GENIE_NEW_THREAD',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Open,\n eventVar1: 'genie_new_thread',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n }\n};\n","import { getEventModel } from './kava-event-model';\nimport { KavaEvent } from './types';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { getApplicationEventsModel } from './application-events-model';\n\n/**\n * The KAVA model that stores data.\n * @class KavaModel\n * @private\n * @param {?Object} - Initial model.\n */\nclass KavaModel {\n private sessionStartTime!: number;\n private eventIndex!: number;\n private errorPosition!: ErrorPosition;\n private playTimeSum!: number;\n private bufferTime!: number;\n private bufferTimeSum!: number;\n private language!: string;\n private caption!: string;\n private errorCode!: number;\n private errorDetails: any;\n private joinTime!: number;\n private canPlayTime!: number;\n private targetPosition!: number;\n private targetBuffer!: number;\n private registeredPlugins!: string;\n public totalSegmentsDownloadTime: number = 0;\n public totalSegmentsDownloadBytes: number = 0;\n public maxSegmentDownloadTime: number = 0;\n public maxManifestDownloadTime: number = 0;\n private forwardBufferHealth!: number;\n private droppedFramesRatio?: number | null = null;\n private soundMode!: SoundMode;\n private viewabilityMode!: ViewabilityMode;\n private tabMode!: TabMode;\n private screenMode: ScreenMode = ScreenMode.NOT_IN_FULLSCREEN;\n public maxNetworkConnectionOverhead: number = 0;\n private flavorParamsId: number = NaN;\n private networkConnectionType!: string;\n public playerJSLoadTime?: number | null = null;\n private shareNetworkName: string = '';\n private reportType: number = NaN;\n private playbackMode: number = NaN;\n private sourceEntryId: string | null = null;\n\n public getActualBitrate!: () => any;\n public getPlaybackSpeed!: () => any;\n public getAverageBitrate!: () => any;\n public getPartnerId!: () => any;\n public getEntryId!: () => any;\n public getPlaylistId!: () => any;\n public getSessionId!: () => any;\n public getClientVer!: () => any;\n public getClientTag!: () => any;\n public getKS!: () => any;\n public getVirtualEventId!: () => any;\n public getUIConfId!: () => any;\n public getReferrer!: () => any;\n public getCustomVar1!: () => any;\n public getCustomVar2!: () => any;\n public getCustomVar3!: () => any;\n public getPosition!: () => any;\n public getDeliveryType!: () => any;\n public getPlaybackType!: () => any;\n public getPlaybackContext!: () => any;\n public getApplication!: (playerEvent?: boolean) => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\n public getHostingKalturaApplication!: () => any;\n public getHostingKalturaApplicationVersion!: () => any;\n public getPlayerSkin!: () => any;\n public getV2ToV7Redirect!: () => any;\n public getNumFailedAnalyticReports!: () => number;\n\n constructor(model?: object) {\n if (model) {\n this.updateModel(model);\n }\n }\n\n /**\n * Gets the total play time.\n * @returns {number} - The play time sum.\n * @memberof KavaModel\n * @instance\n */\n public getPlayTimeSum(): number {\n return this.playTimeSum;\n }\n\n public getCanPlayTime(): number {\n return this.canPlayTime;\n }\n\n /**\n * Gets the buffer time.\n * @returns {number} - The buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTime(): number {\n return this.bufferTime;\n }\n\n /**\n * Gets the total buffer time.\n * @returns {number} - The total buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTimeSum(): number {\n return this.bufferTimeSum;\n }\n\n /**\n * Gets the player bundle js load duration time\n * @returns {number} - The player js load duration time\n * @memberof KavaModel\n * @instance\n */\n public getPlayerJSLoadTime(): number | null {\n if (this.playerJSLoadTime) {\n return Math.round(this.playerJSLoadTime * 1000) / 1000;\n } else {\n return null;\n }\n }\n\n /**\n * Gets the join time.\n * @returns {number} - The join time.\n * @memberof KavaModel\n * @instance\n */\n public getJoinTime(): number {\n return this.joinTime;\n }\n\n /**\n * Gets a target position\n * @returns {number} - The target position.\n * @memberof KavaModel\n * @instance\n */\n public getTargetPosition(): number {\n return this.targetPosition;\n }\n\n /**\n * Gets the target buffer\n * @returns {number} - The target buffer in seconds.\n * @memberof KavaModel\n * @instance\n */\n public getTargetBuffer(): number {\n return this.targetBuffer;\n }\n\n /**\n * Gets registered plugins list\n * @returns {string} - The current list of loaded plugins\n * @memberof KavaModel\n * @instance\n */\n public getRegisteredPlugins(): string {\n return this.registeredPlugins;\n }\n\n /**\n * Gets an audio language.\n * @returns {string} - The audio language.\n * @memberof KavaModel\n * @instance\n */\n public getLanguage(): string {\n return this.language;\n }\n\n /**\n * Gets a caption language.\n * @returns {string} - The caption language.\n * @memberof KavaModel\n * @instance\n */\n public getCaption(): string {\n return this.caption;\n }\n\n /**\n * Gets the average bandwidth since last report.\n * @returns {number} - The bandwidth in kbps\n * @memberof KavaModel\n * @instance\n */\n public getBandwidth(): number {\n return this.totalSegmentsDownloadTime > 0 ? Math.round((this.totalSegmentsDownloadBytes * 8) / this.totalSegmentsDownloadTime) / 1000 : 0;\n }\n\n /**\n * Returns the longest manifest download time in seconds\n * @returns {number} - manifest max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getMaxManifestDownloadTime(): number {\n return this.maxManifestDownloadTime;\n }\n\n /**\n * Returns the longest segment download time in seconds\n * @returns {number} - segment max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getSegmentDownloadTime(): number {\n return this.maxSegmentDownloadTime;\n }\n\n /**\n * Gets the forward buffer health ratio.\n * @returns {number} - the ratio between the available buffer and the target buffer\n * @memberof KavaModel\n * @instance\n */\n public getForwardBufferHealth(): number {\n return this.forwardBufferHealth;\n }\n /**\n * Gets the dropped frames ratio since last view event.\n * @returns {number} - dropped frames ratio since last view event\n * @memberof KavaModel\n * @instance\n */\n public getDroppedFramesRatio(): number | null | undefined {\n return this.droppedFramesRatio;\n }\n\n /**\n * Gets the sound mode of the player.\n * @returns {SoundMode} the state of the sound (muted ot not)\n * @memberof KavaModel\n * @instance\n */\n public getSoundMode(): SoundMode {\n return this.soundMode;\n }\n\n /**\n * Gets the viewability mode of the player.\n * @returns {ViewabilityMode} the state of the view (in-view ot not)\n * @memberof KavaModel\n * @instance\n */\n public getViewabilityMode(): ViewabilityMode {\n return this.viewabilityMode;\n }\n\n /**\n * Gets the screen mode of the browser player.\n * @returns {number} the state of the full screen if is on or not.\n * @memberof KavaModel\n * @instance\n */\n public getScreenMode(): ScreenMode {\n return this.screenMode;\n }\n\n /**\n * Gets the Tab mode of the browser.\n * @returns {TabMode} the state of the tab (focused or not)\n * @memberof KavaModel\n * @instance\n */\n public getTabMode(): TabMode {\n return this.tabMode;\n }\n\n /**\n * Gets the effectiveType read-only property of the NetworkInformation interface (from navigator)\n * @returns {string} the effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionType(): string {\n return this.networkConnectionType;\n }\n\n /**\n * Gets the max dns+ssl+tcp resolving time over all video segments\n * @returns {number} max dns+ssl+tcp in seconds\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionOverhead(): number {\n // convert ms to seconds in 0.xxx format\n return Math.round(this.maxNetworkConnectionOverhead) / 1000;\n }\n\n /**\n * Gets the error code.\n * @returns {number} - The error code.\n * @memberof KavaModel\n * @instance\n */\n public getErrorCode(): number {\n return this.errorCode;\n }\n\n /**\n * Gets the flavor id from ID3 tag in the packager\n * @returns {number} - The flavor id.\n * @memberof KavaModel\n * @instance\n */\n public getFlavorParamsId(): number {\n return this.flavorParamsId;\n }\n\n /**\n * Gets the error additional data.\n * @returns {string} - The stringifyed error data.\n * @memberof KavaModel\n * @instance\n */\n public getErrorDetails(): string {\n let retVal: string = '';\n if (this.errorDetails) {\n try {\n retVal = JSON.stringify(this.errorDetails);\n } catch (e) {\n // do nothing\n }\n }\n return retVal;\n }\n\n /**\n * Gets the event index counter.\n * @returns {number} - The event index counter.\n * @memberof KavaModel\n * @instance\n */\n public getEventIndex(): number {\n return this.eventIndex;\n }\n\n /**\n * Gets the error position (start or mid playing)\n * @returns {number} - The error position - 1 for pre playing, 2 for mid stream error\n * @memberof KavaModel\n * @instance\n */\n public getErrorPosition(): ErrorPosition {\n return this.errorPosition;\n }\n\n /**\n * Gets the session start time.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getSessionStartTime(): number {\n return this.sessionStartTime;\n }\n\n /**\n * Gets the share network name.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getShareNetworkName(): string {\n return this.shareNetworkName;\n }\n\n public getReportType(): number {\n return this.reportType;\n }\n\n public getPlaybackMode(): number {\n return this.playbackMode;\n }\n\n /**\n * Gets the source entry id - the entry id that the current part of a simulive entry was generated from.\n * @returns {string} - Source entry id.\n * @memberof KavaModel\n * @instance\n */\n public getSourceEntryId(): string | null {\n return this.sourceEntryId;\n }\n\n /**\n * Updates the model.\n * @param {Object} obj - A partial or full updated model.\n * @returns {void}\n * @memberof KavaModel\n * @instance\n */\n public updateModel(obj: object): void {\n Object.assign(this, obj);\n }\n\n /**\n * Gets the model for a certain event.\n * @param {KavaEvent} eventObj - The event object.\n * @param {EventBucketName} eventBucketName - The dashboard name in kava dashboards.\n * @param {any} eventPayload - The original player event payload.\n * @returns {Object} - The event model.\n * @memberof KavaModel\n * @instance\n */\n public getModel(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): any {\n switch (eventBucketName) {\n case EventBucketName.PlayerEvents:\n return getEventModel(eventObj, this);\n case EventBucketName.ApplicationEvents:\n return getApplicationEventsModel(eventObj, this, eventPayload);\n }\n }\n}\n\nenum SoundMode {\n SOUND_OFF = 1,\n SOUND_ON = 2\n}\n\nenum ViewabilityMode {\n NOT_IN_VIEW = 1,\n IN_VIEW = 2\n}\n\nenum TabMode {\n TAB_NOT_FOCUSED = 1,\n TAB_FOCUSED = 2\n}\n\nenum ScreenMode {\n NOT_IN_FULLSCREEN = 1,\n FULLSCREEN = 2\n}\n\nenum ErrorPosition {\n PRE_PLAY = 3,\n PRE_PLAYING = 1,\n MID_STREAM = 2\n}\n\nexport { KavaModel, SoundMode, TabMode, ErrorPosition, ScreenMode, ViewabilityMode };\n","import { KavaHttpMethodType } from '../types';\n\nconst HttpMethodType: KavaHttpMethodType = {\n GET: 'GET',\n POST: 'POST'\n};\n\nexport { HttpMethodType };\n","export enum Application {\n REELS = 'reels',\n AUDIO = 'audio',\n VIDEO = 'video'\n}\n","export enum PlayerSkin {\n PLAYER = 1,\n AUDIO = 2,\n REELS = 3\n}\n","/**\n * Logs failed events to browser's local storage\n * @param {any} error - The error that occurred\n * @param {KavaModel} model - The Kava model\n * @returns {void}\n */\nimport { KavaModel } from './kava-model';\nimport { LocalStorageManager } from '@playkit-js/kaltura-player-js';\n\nconst FAILED_LIVE_EVENT_KEY_PREFIX = 'FailedLiveEvent_';\nconst FAILED_LIVE_COUNTER_KEY_PREFIX = 'FailedLiveEventCounter_';\nexport const NUM_OF_LOGGED_FAILED_EVENTS: number = 100;\n\nexport class LogFailedLiveEvents {\n private logger: any;\n private numOfLoggedFailedEvents: any;\n constructor(logger: any, numOfLoggedFailedEvents: any) {\n this.logger = logger;\n this.numOfLoggedFailedEvents = numOfLoggedFailedEvents || NUM_OF_LOGGED_FAILED_EVENTS;\n }\n\n public logFailedLiveAnalyticsEventsToLocalStorage(error: any, model: KavaModel): void {\n // Get essential event info from model\n const eventType = model['eventType'] || 'unknown';\n const entryId = model['entryId'] || 'unknown';\n const sessionId = model['sessionId'] || 'unknown';\n const partnerId = model['partnerId'] || 'unknown';\n const position = model['position'] || 0;\n const errorDetails = model['errorDetails'] || null;\n const numOfLoggedFailedEvents = this.numOfLoggedFailedEvents;\n\n // Construct storage key\n const storageKey = `${FAILED_LIVE_EVENT_KEY_PREFIX}-${entryId}`;\n\n // Create the data object to store\n const dataToStore = {\n error: error,\n model: {\n // Store essential properties only to avoid localStorage size issues\n eventType,\n entryId,\n sessionId,\n partnerId,\n position,\n errorDetails\n }\n };\n\n //In case that we log error, add counter to the localstorage of how many failures\n const failureCountKey = this.getFailedCounterKey(entryId);\n try {\n const counter = LocalStorageManager.getItem(failureCountKey) || 0;\n LocalStorageManager.setItem(failureCountKey, counter + 1);\n this.appendNewFailedLiveEventToLocalStorage(dataToStore, storageKey, numOfLoggedFailedEvents);\n } catch (e) {\n this.logger.warn('Failed to store failed event in localStorage:', e);\n }\n }\n\n private appendNewFailedLiveEventToLocalStorage(data: any, storageKey: string, tailLength: number): void {\n //get the stored object from localStorage\n const storedObject = LocalStorageManager.getItem(storageKey);\n // If the stored object is not an array, initialize it\n let storedArray: any[] = storedObject ? storedObject : [];\n // Append the new data to the array\n storedArray.push({ date: new Date(), data });\n // If the array exceeds the tail length, remove the oldest items\n if (storedArray.length > tailLength) {\n storedArray = storedArray.slice(storedArray.length - tailLength);\n }\n // Store the updated array back to localStorage\n LocalStorageManager.setItem(storageKey, JSON.stringify(storedArray));\n }\n\n public getFailedCounterKey(entryId: string): string {\n return `${FAILED_LIVE_COUNTER_KEY_PREFIX}-${entryId}`;\n }\n\n public getNumFailedAnalyticReports(entryId: string): number {\n return parseInt(LocalStorageManager.getItem(this.getFailedCounterKey(entryId)) || 0);\n }\n}\n","import { BasePlugin, core, KalturaPlayer } from '@playkit-js/kaltura-player-js';\nimport { FakeEvent, VideoTrack } from '@playkit-js/playkit-js';\nimport { OVPAnalyticsService } from '@playkit-js/playkit-js-providers/analytics-service';\nimport { KavaEventModel, KavaEventType } from './kava-event-model';\nimport { KavaRateHandler } from './kava-rate-handler';\nimport { KavaTimer } from './kava-timer';\nimport { ErrorPosition, KavaModel, ScreenMode, SoundMode, TabMode, ViewabilityMode } from './kava-model';\nimport { HttpMethodType } from './enums/http-method-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { KavaConfigObject, KavaEvent } from './types';\nimport { DownloadEvent, InfoEvent, ModerationEvent, RelatedEvent, ShareEvent } from './temp-imported-plugins-event-names-temp';\nimport { PluginsEvents, PlaykitUIEvents, KavaEvents } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel, getApplicationEventsModel } from './application-events-model';\nimport { Application } from './enums/application';\nimport { PlayerSkin } from './enums/player-skin';\nimport { LogFailedLiveEvents, NUM_OF_LOGGED_FAILED_EVENTS } from './log-failed-live-events';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _timePercentEvent!: { [time: string]: boolean };\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n private _lastViewEventPlayTime: number = -1;\n private _logFailedLiveEvents: LogFailedLiveEvents;\n\n /**\n * Default config of the plugin.\n * @type {Object}\n * @static\n * @memberof Kava\n */\n public static defaultConfig: any = {\n serviceUrl: `${Utils.Http.protocol}//analytics.kaltura.com/api_v3/index.php`,\n requestMethod: HttpMethodType.POST,\n viewEventCountdown: 10,\n resetSessionCountdown: 30,\n dvrThreshold: 120,\n playbackContext: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: 'PLAYER',\n hostingKalturaApplication: '',\n hostingKalturaApplicationVersion: '',\n numOfLoggedFailedEvents: NUM_OF_LOGGED_FAILED_EVENTS\n };\n\n /**\n * @static\n * @return {boolean} - Whether the plugin is valid in the current environment.\n * @memberof Kava\n */\n public static isValid(): boolean {\n return true;\n }\n\n constructor(name: string, player: KalturaPlayer, config: KavaConfigObject) {\n super(name, player, config);\n this._logFailedLiveEvents = new LogFailedLiveEvents(this.logger, config.numOfLoggedFailedEvents);\n this._rateHandler = new KavaRateHandler();\n this._model = new KavaModel();\n this._setModelDelegates();\n this._timer = new KavaTimer({\n resetCounter: this.config.resetSessionCountdown,\n eventCounter: this.config.viewEventCountdown\n });\n this._viewEventEnabled = true;\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n // check the Resource Timing API is supported in the browser and we have a uiConfId\n if (performance && this.config.uiConfId) {\n const entry = performance.getEntriesByType('resource').find((entry) => entry.name.match('embedPlaykitJs.*' + this.config.uiConfId));\n if (entry) {\n this._model.updateModel({ playerJSLoadTime: entry.duration });\n }\n }\n }\n\n private _updateSoundModeInModel(): void {\n this._model.updateModel({\n soundMode: this.player.muted || this.player.volume === 0 ? SoundMode.SOUND_OFF : SoundMode.SOUND_ON\n });\n }\n\n private _updateViewabilityModeInModel(isVisible: boolean): void {\n this._model.updateModel({\n viewabilityMode: isVisible || this.player.isInPictureInPicture() ? ViewabilityMode.IN_VIEW : ViewabilityMode.NOT_IN_VIEW\n });\n }\n\n private _handleNewPerformanceEntries(list: PerformanceObserverEntryList): void {\n const perfEntries = list.getEntries();\n for (let i = 0; i < perfEntries.length; i++) {\n this._performanceEntries.push(perfEntries[i]);\n }\n while (this._pendingFragLoadedUrls.length) {\n // handle frag loaded events which haven't been added to the entry list yet\n this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop()!);\n }\n }\n\n /**\n * Destroys the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public destroy(): void {\n this.eventManager.destroy();\n this._reset();\n }\n\n private _reset(): void {\n this._timer.destroy();\n this._rateHandler.destroy();\n if (this._performanceObserver) {\n this._performanceObserver.disconnect();\n }\n this._performanceEntries = [];\n this._pendingFragLoadedUrls = [];\n }\n\n /**\n * Reset the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public reset(): void {\n this.eventManager.removeAll();\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0,\n sessionStartTime: null\n });\n this._reset();\n }\n\n /**\n * loadMedia of the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public loadMedia(): void {\n if (window.PerformanceObserver) {\n this._performanceObserver = new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this));\n this._performanceObserver.observe({ entryTypes: ['resource'] });\n }\n }\n\n /**\n * Gets the model object for a certain event.\n * @param {string} event - Event name.\n * @returns {Object} - Model object.\n * @instance\n * @memberof Kava\n * @example\n * const kava = player.plugins.kava;\n * const viewModel = kava.getEventModel(kava.EventType.VIEW);\n * kava.sendAnalytics(viewModel);\n */\n public getEventModel(event: string): any {\n if (event) {\n return this._model.getModel(KavaEventModel[event]);\n }\n }\n\n /**\n * @returns {KavaEventType} - The kava events list.\n * @instance\n * @memberof Kava\n */\n public get EventType(): { [event: string]: string } {\n return Utils.Object.copyDeep(KavaEventType);\n }\n\n /**\n * Sends KAVA analytics event to analytics service.\n * @param {Object} model - Event model.\n * @returns {Promise} - Promise to indicate request succeed or failed.\n * @instance\n * @memberof Kava\n * @example\n * player.plugins.kava.sendAnalytics({...})\n * .then(() => {\n * console.log('kava analytics sent successfully');\n * })\n * .catch(e => {\n * console.log('kava analytics send failed', e);\n * });\n */\n public sendAnalytics(model: any): Promise<void> {\n return new Promise((resolve, reject) => {\n OVPAnalyticsService.trackEvent(this.config.serviceUrl, model, this.config.requestMethod)\n .doHttpRequest()\n .then(\n (response) => {\n this._handleServerResponseSuccess(response, model);\n resolve();\n },\n (err) => {\n this._handleServerResponseFailed(err, model);\n reject(err);\n }\n );\n this._model.updateModel({ eventIndex: this._model.getEventIndex() + 1 });\n });\n }\n\n private _resetFlags(): void {\n this._previousCurrentTime = 0;\n this._lastViewEventPlayTime = -1;\n this._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._timePercentEvent = {\n PLAY_REACHED_25_PERCENT: false,\n PLAY_REACHED_50_PERCENT: false,\n PLAY_REACHED_75_PERCENT: false,\n PLAY_REACHED_100_PERCENT: false\n };\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private shouldLogLiveAnalyticsFailures(): boolean {\n return this.config?.logLiveAnalyticsFailures && this.player?.isLive();\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n const event: Partial<FakeEvent> = {\n type: KavaEvents.KAVA_REQUEST_SUCCEEDED,\n payload: { response, model }\n };\n this.player.dispatchEvent(event as FakeEvent);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n if (this.shouldLogLiveAnalyticsFailures()) {\n this._logFailedLiveEvents.logFailedLiveAnalyticsEventsToLocalStorage(err, model);\n }\n this.logger.warn('Failed to send KAVA event', model, err);\n const event: Partial<FakeEvent> = {\n type: KavaEvents.KAVA_REQUEST_FAILED,\n payload: { error: err, model }\n };\n this.player.dispatchEvent(event as FakeEvent);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this._bindApplicationEvents();\n this._bindPlaykitUIEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\n }\n\n private _bindPlaykitUIEvents(): void {\n Object.values(PlaykitUIEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _bindApplicationEvents(): void {\n Object.values(PluginsEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _onFirstPlaying(): void {\n this._isPlaying = true;\n if (!this._fragLoadedFiredOnce && this._performanceObserver) {\n this._performanceObserver.disconnect();\n this.logger.debug(\"This adapter / media doesn't fire fragLoaded - disconnect performance observer\");\n }\n }\n\n private _onLoadStart(): void {\n this._loadStartTime = Date.now();\n }\n\n private _getRates(): Array<number> {\n const rates: number[] = [];\n const videoTracks: VideoTrack[] = this.player.getTracks(this.player.Track.VIDEO) as unknown as VideoTrack[];\n videoTracks.forEach((videoTrack) => rates.push(videoTrack.bandwidth / DIVIDER));\n return rates;\n }\n\n private _setInitialTracks(): void {\n const rates = this._getRates();\n const activeTracks = this.player.getActiveTracks();\n this._rateHandler.setRates(rates);\n if (activeTracks.video) {\n this._rateHandler.setCurrent(activeTracks.video.bandwidth / DIVIDER);\n }\n if (activeTracks.audio) {\n this._model.updateModel({ language: activeTracks.audio.language });\n }\n if (activeTracks.text) {\n this._model.updateModel({ caption: activeTracks.text.language });\n }\n }\n\n /**\n * gets the available buffer length\n * @returns {number} the remaining buffer length of the current played time range\n * @private\n */\n private _getAvailableBuffer(): number {\n let availableBuffer = NaN;\n if (this.player.stats) {\n availableBuffer = this.player.stats.availableBuffer;\n }\n return availableBuffer;\n }\n\n /**\n * calculates the forward buffer health ratio\n * @returns {number} the ratio between available buffer and the target buffer\n * @private\n */\n private _getForwardBufferHealth(): number {\n let forwardBufferHealth = NaN;\n const availableBuffer = this._getAvailableBuffer();\n const targetBuffer = this._getTargetBuffer();\n\n if (!isNaN(targetBuffer)) {\n // considering playback left to the target calculation\n forwardBufferHealth = Math.round((availableBuffer * 1000) / targetBuffer) / 1000;\n }\n\n return forwardBufferHealth;\n }\n\n /**\n * get the target buffer length from the player\n * @returns {number} the target buffer in seconds\n * @private\n */\n private _getTargetBuffer(): number {\n let targetBuffer = NaN;\n if (this.player.stats) {\n targetBuffer = this.player.stats.targetBuffer;\n }\n return targetBuffer;\n }\n\n /**\n * calculates the dropped frames ratio since last call\n * @returns {number} the ratio between dropped frames and the total frames\n * @private\n */\n private _getDroppedFramesRatio(): number {\n let droppedFrames = -1;\n const droppedAndDecoded: [number, number] | null = this._getDroppedAndDecodedFrames();\n if (droppedAndDecoded) {\n const lastDroppedFrames = droppedAndDecoded[0];\n const lastTotalFrames = droppedAndDecoded[1];\n const droppedFramesDelta = lastDroppedFrames - this._lastDroppedFrames;\n const totalFramesDelta = lastTotalFrames - this._lastTotalFrames;\n droppedFrames = totalFramesDelta ? Math.round((droppedFramesDelta / totalFramesDelta) * 1000) / 1000 : 0;\n\n this._lastTotalFrames = lastTotalFrames;\n this._lastDroppedFrames = lastDroppedFrames;\n }\n return droppedFrames;\n }\n\n /**\n * returns dropped and total frames from the VideoPlaybackQuality Interface of the browser (if supported)\n * @returns {number} {number} the number of video frames dropped and total video frames (created and dropped)\n * since the creation of the associated HTMLVideoElement\n * @private\n */\n private _getDroppedAndDecodedFrames(): [number, number] | null {\n if (typeof this.player.getVideoElement()!.getVideoPlaybackQuality === 'function') {\n const videoPlaybackQuality = this.player.getVideoElement()!.getVideoPlaybackQuality();\n return [videoPlaybackQuality.droppedVideoFrames, videoPlaybackQuality.totalVideoFrames];\n } else if (\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDroppedFrameCount === 'number' &&\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDecodedFrameCount === 'number'\n ) {\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n return [this.player.getVideoElement().webkitDroppedFrameCount, this.player.getVideoElement().webkitDecodedFrameCount];\n } else {\n return null;\n }\n }\n\n private _onReport(): void {\n if (this._viewEventEnabled) {\n this._updatePlayTimeSumModel();\n this._model.updateModel({\n forwardBufferHealth: this._getForwardBufferHealth(),\n targetBuffer: this._getTargetBuffer(),\n droppedFramesRatio: this._getDroppedFramesRatio()\n });\n if (this._lastViewEventPlayTime !== this._model.getPlayTimeSum()) {\n this._lastViewEventPlayTime = this._model.getPlayTimeSum();\n this._sendAnalytics(KavaEventModel.VIEW);\n } else {\n this.logger.warn(`VIEW event blocked because view event with same time already sent: ${this._lastViewEventPlayTime}`);\n }\n } else {\n this.logger.warn('VIEW event blocked because server response of viewEventsEnabled=false');\n }\n this._model.updateModel({\n totalSegmentsDownloadTime: 0,\n totalSegmentsDownloadBytes: 0,\n maxManifestDownloadTime: 0,\n maxSegmentDownloadTime: 0,\n maxNetworkConnectionOverhead: 0,\n bufferTime: 0\n });\n }\n\n private _updateNetworkConnectionTypeinModel(navConnection: any): void {\n this._model.updateModel({\n networkConnectionType: navConnection.effectiveType\n });\n }\n\n private _initNetworkConnectionType(): void {\n // @ts-expect-error - Property 'webkitConnection' does not exist on type 'Navigator'\n const navConnection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection;\n\n if (navConnection) {\n this.eventManager.listen(navConnection, 'change', () => this._updateNetworkConnectionTypeinModel(navConnection));\n this._updateNetworkConnectionTypeinModel(navConnection);\n }\n }\n\n private _onPlaying(): void {\n if (this._isFirstPlaying) {\n this._updateSoundModeInModel();\n this._updateViewabilityModeInModel(this.player.isVisible);\n if (!this.player.isUntimedImg()) this._timer.start();\n this._isFirstPlaying = false;\n const playRequestStartTime =\n this.player.config.playback.preload === 'auto' || this._isManualPreload ? this._firstPlayRequestTime : this._loadStartTime;\n this._model.updateModel({\n joinTime: Kava._getTimeDifferenceInSeconds(playRequestStartTime)\n });\n this._sendAnalytics(KavaEventModel.PLAY);\n this._onReport();\n } else if (this._isEnded) {\n this._timer.start();\n this._isEnded = false;\n this._sendAnalytics(KavaEventModel.REPLAY);\n } else if (this._isPaused) {\n this._timer.resume();\n this._isPaused = false;\n this._sendAnalytics(KavaEventModel.RESUME);\n }\n }\n\n private _onCanPlay(): void {\n this._canPlayOccured = true;\n this._model.updateModel({\n canPlayTime: Kava._getTimeDifferenceInSeconds(this._loadStartTime)\n });\n }\n\n private _onFirstPlay(): void {\n if (this._canPlayOccured) {\n this._isManualPreload = true;\n }\n this._isFirstPlay = false;\n this._firstPlayRequestTime = Date.now();\n this._sendAnalytics(KavaEventModel.PLAY_REQUEST);\n }\n\n private _onSourceSelected(): void {\n const plugins = Object.values(this.player.plugins).map((plugin: any) => plugin.name);\n this._model.updateModel({ registeredPlugins: plugins.join(',') });\n\n this._sendAnalytics(KavaEventModel.IMPRESSION);\n\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));\n if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {\n this._timePercentEvent.PLAY_REACHED_25 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {\n this._timePercentEvent.PLAY_REACHED_50 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {\n this._timePercentEvent.PLAY_REACHED_75 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {\n this._timePercentEvent.PLAY_REACHED_100 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n const data = JSON.parse(id3TagCues[id3TagCues.length - 1].value.data);\n this._model.updateModel({ flavorParamsId: Number(data.sequenceId) });\n\n if (data.clipId) {\n const [partType, entryId] = data.clipId.split('-');\n\n switch (partType) {\n case 'preStartContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 1 });\n break;\n }\n case 'content': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 2 });\n break;\n }\n case 'postEntryContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 3 });\n break;\n }\n default:\n break;\n }\n }\n } catch (e) {\n this.logger.debug('error parsing id3', e);\n }\n }\n }\n\n private _onVideoTrackChanged(event: FakeEvent): void {\n const videoTrack = event.payload.selectedVideoTrack;\n this._rateHandler.setCurrent(videoTrack.bandwidth / DIVIDER);\n if (this.player.isAdaptiveBitrateEnabled()) {\n this._sendAnalytics(KavaEventModel.FLAVOR_SWITCH);\n } else {\n this._sendAnalytics(KavaEventModel.SOURCE_SELECTED);\n }\n }\n\n private _onAudioTrackChanged(event: FakeEvent): void {\n const audioTrack = event.payload.selectedAudioTrack;\n this._model.updateModel({ language: audioTrack.language });\n this._sendAnalytics(KavaEventModel.AUDIO_SELECTED);\n }\n\n private _onTextTrackChanged(event: FakeEvent): void {\n if (this._isPlaying) {\n const textTrack = event.payload.selectedTextTrack;\n this._model.updateModel({ caption: textTrack.language });\n this._sendAnalytics(KavaEventModel.CAPTIONS);\n }\n }\n\n private _onError(event: FakeEvent): void {\n if (event.payload && event.payload.severity === PKError.Severity.CRITICAL) {\n this._model.updateModel({\n errorCode: event.payload.code,\n errorDetails: event.payload.data,\n errorPosition: this._isFirstPlay ? ErrorPosition.PRE_PLAY : this._isFirstPlaying ? ErrorPosition.PRE_PLAYING : ErrorPosition.MID_STREAM\n });\n this._sendAnalytics(KavaEventModel.ERROR);\n this.reset();\n }\n }\n\n private _onPlaybackRateChanged(): void {\n if (!this.player.playbackRates.length || this.player.playbackRates.includes(this.player.playbackRate!)) {\n this._sendAnalytics(KavaEventModel.SPEED);\n }\n }\n\n private _onPlayerStateChanged(event: FakeEvent): void {\n const oldState = event.payload.oldState;\n const newState = event.payload.newState;\n if (oldState.type === this.player.State.BUFFERING) {\n this._isBuffering = false;\n this._updateBufferModel();\n this._sendAnalytics(KavaEventModel.BUFFER_END);\n }\n if (newState.type === this.player.State.BUFFERING) {\n this._isBuffering = true;\n this._bufferStartTime = Date.now();\n this._sendAnalytics(KavaEventModel.BUFFER_START);\n }\n }\n\n private _onRelatedClicked(): void {\n this._sendAnalytics(KavaEventModel.RELATED_OPEN);\n }\n\n private _onRelatedSelected(): void {\n this._sendAnalytics(KavaEventModel.RELATED_SELECTED);\n }\n\n private _onShareClicked(): void {\n this._sendAnalytics(KavaEventModel.SHARE_CLICKED);\n }\n\n private _onShareNetworkClicked(event: FakeEvent): void {\n const shareNetworkName = event.payload.shareNetworkName;\n if (shareNetworkName) {\n this._model.updateModel({ shareNetworkName: shareNetworkName });\n this._sendAnalytics(KavaEventModel.SHARE_NETWORK);\n }\n }\n\n private _onReportSubmitted(event: FakeEvent): void {\n const reportType = event.payload.reportType;\n if (reportType) {\n this._model.updateModel({ reportType });\n this._sendAnalytics(KavaEventModel.REPORT_SUBMITTED);\n }\n }\n\n private _onReportClicked(): void {\n this._sendAnalytics(KavaEventModel.REPORT_CLICKED);\n }\n\n private _onInfoScreenOpened(): void {\n this._sendAnalytics(KavaEventModel.INFO);\n }\n\n private _onDownloadItemClicked(): void {\n this._sendAnalytics(KavaEventModel.DOWNLOAD);\n }\n\n private _onFullScreenChanged(screenMode: number): void {\n this._model.updateModel({ screenMode: screenMode });\n this._sendAnalytics(screenMode === ScreenMode.FULLSCREEN ? KavaEventModel.ENTER_FULLSCREEN : KavaEventModel.EXIT_FULLSCREEN);\n }\n\n private _updateSessionStartTimeModel(response: any | number): void {\n if (!this._model.getSessionStartTime() && response) {\n if (typeof response === 'object') {\n this._model.updateModel({ sessionStartTime: response.time });\n this._viewEventEnabled = response.viewEventsEnabled;\n } else {\n this._model.updateModel({ sessionStartTime: response });\n }\n }\n if (this._timer.isStopped()) {\n this._model.updateModel({ sessionStartTime: null });\n }\n }\n\n private _updateBufferModel(): void {\n const duration = Kava._getTimeDifferenceInSeconds(this._bufferStartTime);\n this._model.updateModel({\n bufferTime: this._model.getBufferTime() + duration,\n bufferTimeSum: this._model.getBufferTimeSum() + duration\n });\n }\n\n private _updatePlayTimeSumModel(): void {\n let delta;\n if (this.player.isLive()) {\n delta = this.config.viewEventCountdown - this._model.getBufferTime();\n } else {\n delta = this.player.currentTime! - this._previousCurrentTime;\n this._previousCurrentTime = this.player.currentTime!;\n }\n this._model.updateModel({ playTimeSum: this._model.getPlayTimeSum() + delta });\n }\n\n private _setModelDelegates(): void {\n this._model.getPlaybackSpeed = (): number | null => this.player.playbackRate;\n this._model.getActualBitrate = (): number => this._rateHandler.getCurrent();\n this._model.getAverageBitrate = (): number => this._rateHandler.getAverage();\n this._model.getPartnerId = (): number => this.config.partnerId;\n this._model.getEntryId = (): string => this.config.entryId;\n this._model.getPlaylistId = (): string => this.config.playlistId;\n this._model.getSessionId = (): string => this.config.sessionId;\n this._model.getPersistentSessionId = (): string => this.config.persistentSessionId;\n this._model.getClientVer = (): string => this.config.playerVersion;\n this._model.getClientTag = (): string => 'html5:v' + this.config.playerVersion;\n this._model.getKS = (): string => this.config.ks;\n this._model.getVirtualEventId = (): string => this.config.virtualEventId;\n this._model.getUIConfId = (): string => this.config.uiConfId;\n this._model.getReferrer = (): string => this.config.referrer;\n this._model.getCustomVar1 = (): string => this.config.customVar1;\n this._model.getCustomVar2 = (): string => this.config.customVar2;\n this._model.getCustomVar3 = (): string => this.config.customVar3;\n this._model.getPosition = (): number => this._getPosition();\n this._model.getDeliveryType = (): string => this._getDeliveryType();\n this._model.getPlaybackType = (): string => this._getPlaybackType();\n this._model.getPlaybackContext = (): string => this.config.playbackContext;\n this._model.getApplication = (playerEvent?: boolean): string => this._getApplication(playerEvent);\n this._model.getKalturaApplicationVersion = (): string => this.config.kalturaApplicationVersion;\n this._model.getKalturaApplication = (): string => this._getKalturaApplicationId(this.config.kalturaApplication);\n this._model.getUserId = (): string => this.config.userId;\n this._model.getHostingKalturaApplication = (): string => this.config.application;\n this._model.getHostingKalturaApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getPlayerSkin = (): number => this._getPlayerSkin();\n this._model.getV2ToV7Redirect = (): boolean => this.player.isV2ToV7Redirected;\n this._model.getNumFailedAnalyticReports = (): number => this._logFailedLiveEvents.getNumFailedAnalyticReports(this.config.entryId);\n }\n\n private _getApplication(playerEvent = true): string {\n // for player event, we want to return the application value from the configuration\n // otherwise (i.e. application event), we want to return the player type\n return playerEvent ? this.config.application : this._getPlayerType();\n }\n\n private _getPlayerType(): Application {\n if (this.player.plugins.reels !== undefined) {\n return Application.REELS;\n } else if (this.player.plugins.audioPlayer !== undefined) {\n return Application.AUDIO;\n } else {\n return Application.VIDEO;\n }\n }\n\n private _getPlayerSkin(): PlayerSkin {\n if (this.player.plugins.reels !== undefined) {\n return PlayerSkin.REELS;\n } else if (this.player.plugins.audioPlayer !== undefined) {\n return PlayerSkin.AUDIO;\n } else {\n return PlayerSkin.PLAYER;\n }\n }\n\n private _getKalturaApplicationId(kalturaAppName: string): string {\n if (kalturaAppName in KalturaApplication) {\n return KalturaApplication[kalturaAppName];\n } else {\n this.logger.warn('Kava analytics - unknon kalturaAppName: ' + kalturaAppName);\n return '';\n }\n }\n\n private _getPosition(): number {\n if (this.player.isLive()) {\n if (!Number.isNaN(this.player.duration)) {\n if (this.player.duration! - this.player.currentTime! < 1) {\n return 0;\n }\n return -(this.player.duration! - this.player.currentTime!);\n }\n return 0;\n }\n let currentTime = this.player.currentTime;\n if (typeof this.player.sources.seekFrom === 'number' && currentTime) {\n currentTime += this.player.sources.seekFrom;\n }\n return this._isFirstPlaying ? currentTime! || this.player.sources.startTime || 0 : currentTime!;\n }\n\n private _getDeliveryType(): string {\n if (this.player.streamType === this.player.StreamType.PROGRESSIVE) {\n return 'url';\n }\n return this.player.streamType;\n }\n\n private _getPlaybackType(): string {\n if (this.player.isLive()) {\n if (this.player.isDvr()) {\n const distanceFromLiveEdge = this.player.duration! - this.player.currentTime!;\n if (distanceFromLiveEdge >= this.config.dvrThreshold) {\n return 'dvr';\n }\n }\n return 'live';\n }\n return 'vod';\n }\n\n private _validate(): boolean {\n if (!this.config.partnerId) {\n this._logMissingParam('partnerId');\n return false;\n }\n if (!this.config.entryId) {\n this._logMissingParam('entryId');\n return false;\n }\n return true;\n }\n\n private _isApplicationEventValid(event: FakeEvent): boolean {\n const model = getApplicationEventsModel(ApplicationEventsModel[event.type], this._model, event.payload);\n return !!model.buttonName || !!model.pageName;\n }\n\n private _logMissingParam(missingParam: string): void {\n this.logger.warn(`Kava analytics block report because of missing param ${missingParam}`);\n }\n\n private static _getTimeDifferenceInSeconds(time: number): number {\n return (Date.now() - time) / 1000.0;\n }\n\n private _updateTabModeInModel(hiddenAttr: string): void {\n this._model.updateModel({\n // $FlowFixMe\n tabMode: this._isTabHidden(hiddenAttr) && !this.player.isInPictureInPicture() ? TabMode.TAB_NOT_FOCUSED : TabMode.TAB_FOCUSED\n });\n }\n\n private _isTabHidden(hiddenAttr: string): boolean {\n return document[hiddenAttr];\n }\n\n private _initTabMode(): void {\n let hiddenAttr: string;\n let visibilityChangeEventName: string;\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hiddenAttr = 'hidden';\n visibilityChangeEventName = 'visibilitychange';\n // @ts-expect-error - Property 'msHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.msHidden !== 'undefined') {\n hiddenAttr = 'msHidden';\n visibilityChangeEventName = 'msvisibilitychange';\n // @ts-expect-error - Property 'webkitHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.webkitHidden !== 'undefined') {\n hiddenAttr = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n // @ts-expect-error - Variable 'visibilityChangeEventName' is used before being assigned.\n if (hiddenAttr && visibilityChangeEventName) {\n this.eventManager.listen(document, visibilityChangeEventName, () => this._updateTabModeInModel(hiddenAttr));\n this._updateTabModeInModel(hiddenAttr);\n }\n }\n}\n\nexport { Kava };\n","export const DownloadEvent = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked'\n};\n\nexport const ModerationEvent = {\n REPORT_CLICKED: 'report_clicked',\n REPORT_SUBMITTED: 'report_submitted'\n};\n\nexport const ShareEvent = {\n /**\n * Fired when the user clicks on share icon.\n */\n SHARE_CLICKED: 'share_clicked',\n /**\n * Fired when the user clicks on specific social network.\n */\n SHARE_NETWORK: 'share_network'\n};\n\nexport const RelatedEvent = {\n /**\n * Fired when the user selects an entry from the list or the grid.\n */\n RELATED_SELECTED: 'related_selected',\n /**\n * Fired when the user clicks the button to show the related list.\n */\n RELATED_OPEN: 'related_open',\n /**\n * Fired when the user clicks to close the related list.\n */\n RELATED_CLOSE: 'related_close'\n};\n\nexport const InfoEvent = {\n INFO_SCREEN_OPEN: 'info_screen_open'\n};\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\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(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _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}","import { registerPlugin } from '@playkit-js/kaltura-player-js';\nimport { Kava } from './kava';\n\ndeclare const __VERSION__: string;\ndeclare const __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport { Kava as Plugin };\nexport { KavaEventType as EventType } from './kava-event-model';\nexport { HttpMethodType } from './enums/http-method-type';\nexport { VERSION, NAME };\n\nconst pluginName: string = 'kava';\n\nregisterPlugin(pluginName, Kava);\n"],"names":["root","factory","exports","module","define","amd","self","e","d","t","r","n","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","TypeError","iterator","constructor","toPrimitive","String","i","length","configurable","writable","key","s","a","NAME","P","OVPAnalyticsService","A","OVPConfiguration","h","RequestBuilder","l","VERSION","C","f","arguments","this","severity","category","code","data","_logger","error","concat","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","DEBUG","name","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Map","async","timeout","maxAttempts","headers","service","action","Promise","_requestPromise","resolve","reject","url","Severity","Category","Code","_createXHR","XMLHttpRequest","onreadystatechange","readyState","status","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","toLowerCase","indexOf","_attemptCounter","assign","attempt","p","Array","isArray","slice","keys","y","serviceUrl","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","v","setPrototypeOf","bind","__proto__","create","m","ReferenceError","g","E","getPrototypeOf","R","objectType","hasError","O","message","b","Reflect","construct","sham","Proxy","Boolean","valueOf","apply","requests","push","stringify","FAILED_PARSING_REQUEST","doHttpRequest","then","_","success","response","results","result","map","T","toString","encodeURIComponent","u","c","test","join","replace","S","_trackEventByPOST","_trackEventByGET","tag","set","eventType","partnerId","entryId","sessionId","ks","clientTag","getUrl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","obj","prop","KalturaPlayer","_typeof","_arrayLikeToArray","arr","len","arr2","_classCallCheck","instance","Constructor","toPropertyKey","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_assertThisInitialized","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_defineProperty","KavaEventModel","VIEW","type","index","getEventModel","model","eventModel","playTimeSum","getPlayTimeSum","bufferTime","getBufferTime","bufferTimeSum","getBufferTimeSum","actualBitrate","getActualBitrate","averageBitrate","getAverageBitrate","audioLanguage","getLanguage","soundMode","getSoundMode","tabMode","getTabMode","viewabilityMode","getViewabilityMode","screenMode","getScreenMode","isNaN","getForwardBufferHealth","forwardBufferHealth","getMaxManifestDownloadTime","manifestDownloadTime","getSegmentDownloadTime","segmentDownloadTime","getBandwidth","bandwidth","getDroppedFramesRatio","droppedFramesRatio","getTargetBuffer","targetBuffer","getNetworkConnectionType","networkConnectionType","getNetworkConnectionOverhead","networkConnectionOverhead","getFlavorParamsId","flavorParamsId","getPlaybackMode","playbackMode","getSourceEntryId","sourceEntryId","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","isV2ToV7Redirected","getV2ToV7Redirect","registeredPlugins","getRegisteredPlugins","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","ApplicationEventType","PageLoadType","playkitUIEventsNamespace","PlaykitUIEvents","USER_CLICKED_LOGO","USER_SELECTED_CAPTIONS_SIZE","USER_SELECTED_CAPTIONS_WEIGHT","USER_SELECTED_CAPTIONS_ALIGNMENT","USER_SELECTED_CAPTIONS_FONT_COLOR","USER_SELECTED_CAPTIONS_FONT_FAMILY","USER_SELECTED_CAPTIONS_FONT_STYLE","USER_SELECTED_CAPTIONS_FONT_OPACITY","USER_SELECTED_CAPTIONS_BACKGROUND_COLOR","USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY","USER_SHOWED_CAPTIONS","USER_HID_CAPTIONS","USER_SELECTED_CAPTION_TRACK","USER_SELECTED_AUDIO_TRACK","USER_COPIED_DEBUG_INFO","DISPLAY_INFO_BEFORE_PLAYBACK","USER_SELECTED_CAPTIONS_PRESET_MINIMALIST","USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST","USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE","USER_SELECTED_CAPTIONS_PRESET_EASY_READING","USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS","USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE","USER_SELECTED_CAPTIONS_CUSTOM","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","TRANSCRIPT_POPOUT_OPEN","TRANSCRIPT_POPOUT_CLOSE","TRANSCRIPT_POPOUT_DRAG","TRANSCRIPT_POPOUT_RESIZE","CHANGE_LAYOUT","SIDE_DISPLAYED","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","RELATED_ENTRY_SELECTED","RELATED_ENTRY_AUTO_PLAYED","RELATED_GRID_DISPLAYED","CALL_TO_ACTION_BUTTON_CLICK","CALL_TO_ACTION_DISPLAYED","HOTSPOT_CLICK","HOTSPOT_DISPLAYED","QUIZ_STARTED","QUIZ_SKIPPED","QUIZ_SEEK","QUESTION_ANSWERED","QUIZ_SUBMITTED","QUIZ_RETAKE","QUIZ_QUESTION_CHANGED","DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN","DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN","DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED","DETECT_AD_BLOCK_X_BUTTON_CLICKED","DETECT_AD_BLOCK_AD_BLOCKER_DISABLED","DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED","REELS_PLAY","REELS_PAUSE","REELS_MUTE","REELS_UNMUTE","REELS_SEEK","REELS_POSTER_CLICKED","REELS_ENTRY_LOADED","REELS_PLAYLIST_LOADED","EAD_ON","EAD_OFF","EAD_SKIP","EAD_REPLAY","EAD_PAUSE","EAD_RESUME","EAD_PLAY","EAD_SCROLL","SUMMARY_CHAPTERS_OPEN","SUMMARY_CHAPTERS_CLOSE","SUMMARY_CHAPTERS_READ_CHAPTERS","SUMMARY_CHAPTERS_READ_OVERVIEW","SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD","SUMMARY_CHAPTERS_CHAPTER_EXPAND","SUMMARY_CHAPTERS_CHAPTER_COLLAPSE","SUMMARY_CHAPTERS_CHAPTER_SEEK","AUDIO_PLAYER_VISUALIZATION_STATE","CPE_TRACKER_HOVER","BANNER_MESSAGE_DISPLAYS","BANNER_MESSAGE_MANUALLY_DISMISSED","GENIE_OPEN_AUTO","GENIE_OPEN_MANUAL","GENIE_CLOSE","GENIE_NEW_THREAD","KalturaApplication","KMC","KMS","KAF","PITCH","KMS_GO","WEBCASTING","PERSONAL_CAPTURE","KME","KME_MOBILE_APP","PATH","LECTURE_CAPTURE","EP","CHAT_AND_COLLABORATION","ANALYTICS","EXPRESS_CAPTURE","KPF","KAF_GO","SITES","STUDIO","CAPTIONS_EDITOR","CHECKLIST","PLAYER","GENIE","ApplicationFeature","getApplicationEventsModel","eventObj","innerEventPayload","commonModel","getPartnerId","getEntryId","getSessionId","kalturaApplication","application","getApplication","getVirtualEventId","getKalturaApplicationVersion","getUserId","getKS","getHostingKalturaApplication","getHostingKalturaApplicationVersion","namedEventModel","eventVar1","eventVar2","eventVar3","eventVar4","applicationFeature","ApplicationEventsModel","_ApplicationEventsMod","_ref","layout","Choose","DUAL_SCREEN","payload","View","Open","SHARE_EMBED","Close","Share","socialNetworkName","Download","assetType","fileType","description","isDefault","Link","BUMPER","NAVIGATION","searchQuery","activeTab","availableTabs","isItSearch","Search","itemType","isTextExpanded","Expand","Collapse","TRANSCRIPT","search","Navigate","Edit","position","x","size","PLAYLIST","SKIP","mode","RELATED","CALL_TO_ACTION","displayType","isMetadataBased","HOTSPOPT","Load","QUIZ","Send","_ref2","questionIndex","Toggle","settings","EAD","_ref3","trigger","_ref4","_ref5","_ref6","Browse","UI","ADVANCED_CAPTIONS","_ref7","captionTrack","autoSelected","_ref8","_audioTrack$language","audioTrack","startsWith","AUDION_TRACKS","DETECT_AD_BLOCK","_ref9","isResume","REELS","_ref10","_ref11","_ref12","_ref13","from","to","_ref14","_ref15","muted","playlistId","_ref16","autoplay","_ref17","buttonName","SUMMARY_CHAPTERS","_ref18","_ref19","chapterNumber","_ref20","_ref21","DEBUG_INFO","Analytics","state","AUDIO_PLAYER","CPE_TRACKER","BANNER_OVERLAY","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventBucketName","PlayerEvents","eventPayload","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","getPosition","playbackSpeed","getPlaybackSpeed","playerSkin","getPlayerSkin","getCaption","getSessionStartTime","virtualEventId","getUIConfId","uiConfId","getPlaylistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","kalturaApplicationVer","getKalturaApplication","userId","getPersistentSessionId","persistentSessionId","hostingKalturaApplication","hostingKalturaApplicationVersion","ApplicationEvents","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","Application","PlayerSkin","LogFailedLiveEvents","logger","numOfLoggedFailedEvents","storageKey","dataToStore","failureCountKey","getFailedCounterKey","counter","LocalStorageManager","getItem","setItem","appendNewFailedLiveEventToLocalStorage","tailLength","storedArray","date","Date","parseInt","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_logFailedLiveEvents","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","volume","SOUND_OFF","SOUND_ON","isVisible","isInPictureInPicture","IN_VIEW","NOT_IN_VIEW","list","perfEntries","getEntries","_performanceEntries","_pendingFragLoadedUrls","_handleFragPerformanceObserver","pop","eventManager","destroy","_reset","_performanceObserver","disconnect","removeAll","window","PerformanceObserver","_handleNewPerformanceEntries","observe","entryTypes","event","getModel","copyDeep","trackEvent","requestMethod","_handleServerResponseSuccess","err","_handleServerResponseFailed","_previousCurrentTime","_lastViewEventPlayTime","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_timePercentEvent","_canPlayOccured","_isManualPreload","reset","_validate","_updateBufferModel","_bufferStartTime","tamperAnalyticsHandler","sendAnalytics","catch","_this$config","_this$player","logLiveAnalyticsFailures","isLive","_updateSessionStartTimeModel","shouldLogLiveAnalyticsFailures","logFailedLiveAnalyticsEventsToLocalStorage","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","_bindApplicationEvents","_bindPlaykitUIEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_isApplicationEventValid","_sendAnalytics","_this5","_fragLoadedFiredOnce","_loadStartTime","getTracks","Track","VIDEO","videoTrack","_getRates","activeTracks","getActiveTracks","setRates","video","setCurrent","audio","availableBuffer","stats","_getAvailableBuffer","_getTargetBuffer","droppedFrames","droppedAndDecoded","_getDroppedAndDecodedFrames","lastDroppedFrames","lastTotalFrames","droppedFramesDelta","_lastDroppedFrames","totalFramesDelta","_lastTotalFrames","getVideoElement","getVideoPlaybackQuality","videoPlaybackQuality","droppedVideoFrames","totalVideoFrames","webkitDroppedFrameCount","webkitDecodedFrameCount","_updatePlayTimeSumModel","_getForwardBufferHealth","_getDroppedFramesRatio","navConnection","effectiveType","_this6","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this7","plugins","plugin","isImage","TIME_UPDATE","_onTimeUpdate","currentTime","percent","parseFloat","toFixed","PLAY_REACHED_25","PLAY_REACHED_50","PLAY_REACHED_75","PLAY_REACHED_100","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","clipId","_data$clipId$split2","next","done","minLen","partType","selectedVideoTrack","isAdaptiveBitrateEnabled","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this8","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","playerEvent","_getApplication","kalturaApplicationVersion","_getKalturaApplicationId","applicationVersion","_getPlayerSkin","getNumFailedAnalyticReports","_getPlayerType","reels","audioPlayer","AUDIO","kalturaAppName","sources","seekFrom","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","pageName","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this9","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}
1
+ {"version":3,"file":"playkit-kava.js","mappings":"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","sources":["webpack://KalturaPlayer.plugins.kava/webpack/universalModuleDefinition","webpack://KalturaPlayer.plugins.kava/./node_modules/@playkit-js/playkit-js-providers/dist/playkit-analytics-service.js","webpack://KalturaPlayer.plugins.kava/webpack/bootstrap","webpack://KalturaPlayer.plugins.kava/webpack/runtime/define property getters","webpack://KalturaPlayer.plugins.kava/webpack/runtime/hasOwnProperty shorthand","webpack://KalturaPlayer.plugins.kava/webpack/runtime/make namespace object","webpack://KalturaPlayer.plugins.kava/external root \"KalturaPlayer\"","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://KalturaPlayer.plugins.kava/./src/kava-event-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-rate-handler.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-timer.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/event-bucket-name.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/button-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-event-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/page-load-type.ts","webpack://KalturaPlayer.plugins.kava/./src/applications-events.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/kaltura-application.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-feature.ts","webpack://KalturaPlayer.plugins.kava/./src/application-events-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-model.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/http-method-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/player-skin.ts","webpack://KalturaPlayer.plugins.kava/./src/log-failed-live-events.ts","webpack://KalturaPlayer.plugins.kava/./src/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://KalturaPlayer.plugins.kava/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"KalturaPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"KalturaPlayer\"] = factory();\n\telse\n\t\troot[\"KalturaPlayer\"] = root[\"KalturaPlayer\"] || {}, root[\"KalturaPlayer\"][\"plugins\"] = root[\"KalturaPlayer\"][\"plugins\"] || {}, root[\"KalturaPlayer\"][\"plugins\"][\"kava\"] = factory();\n})(self, () => {\nreturn ","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){\"use strict\";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function o(e){var t=function(e,t){if(\"object\"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,\"string\");if(\"object\"!==n(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"===n(t)?t:String(t)}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function a(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{NAME:function(){return P},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return h},RequestBuilder:function(){return l},VERSION:function(){return C}});var u=function(){return{VERSION:\"\",DEBUG:{value:\"\",name:\"\"},ERROR:{value:\"\",name:\"\"},INFO:{value:\"\",name:\"\"},OFF:{value:\"\",name:\"\"},TIME:{value:\"\",name:\"\"},TRACE:{value:\"\",name:\"\"},WARN:{value:\"\",name:\"\"},createDefaultHandler:function(){},debug:function(){},enabledFor:function(){},error:function(){},get:function(){},getLevel:function(){},info:function(){},log:function(){},setHandler:function(){},setLevel:function(){},time:function(){},timeEnd:function(){},trace:function(){},useDefaults:function(){},warn:function(){}}};var c=function(e){return u(e)},f=s((function e(t,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r(this,e),this.severity=t,this.category=n,this.code=o,this.data=i,e._logger.error(\"Category:\".concat(n,\" | Code:\").concat(o,\" |\"),i)}));a(f,\"Severity\",{RECOVERABLE:1,CRITICAL:2}),a(f,\"Category\",{NETWORK:1,SERVICE:2,PROVIDER:3}),a(f,\"Code\",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002}),a(f,\"_logger\",c(\"Error\"));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),a(this,\"retryConfig\",{async:!0,timeout:0,maxAttempts:4}),a(this,\"_attemptCounter\",1),this.headers=t}return s(e,[{key:\"getUrl\",value:function(e){return e+\"/service/\"+this.service+(this.action?\"/action/\"+this.action:\"\")}},{key:\"doHttpRequest\",value:function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t}},{key:\"_createXHR\",value:function(){var e=this,t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState&&200===t.status)try{var r=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(r)}catch(r){e._requestPromise.reject(e._createError(t,f.Code.BAD_SERVER_RESPONSE,{text:t.responseText}))}},t.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(t.timeout=this.retryConfig.timeout);var r=performance.now();t.ontimeout=function(){e._handleError(t,f.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,f.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)}},{key:\"_getResponseHeaders\",value:function(e){return e.getAllResponseHeaders().split(\"\\n\").filter((function(e){return 0===e.toLowerCase().indexOf(\"x-\")}))}},{key:\"_handleError\",value:function(e,t,r){var n=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(n);this._attemptCounter++,this._createXHR()}},{key:\"_createError\",value:function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new f(f.Severity.CRITICAL,f.Category.NETWORK,t,r)}}]),e}(),p=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,o){(\"object\"===n(t)||Array.isArray(t)&&t.length>0)&&(r[o]=e(t))})):\"object\"===n(t)?(r=Object.assign({},t),Object.keys(r).forEach((function(t){(\"object\"===n(r[t])||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r},y={serviceUrl:\"https://cdnapisec.kaltura.com/api_v3\",cdnUrl:\"https://cdnapisec.kaltura.com\",serviceParams:{apiVersion:\"3.3.0\",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1},h=function(){function e(){r(this,e)}return s(e,null,[{key:\"set\",value:function(e){e&&Object.assign(y,e)}},{key:\"get\",value:function(){return p(y)}}]),e}();function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&v(e,t)}function m(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function g(e,t){if(t&&(\"object\"===n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return m(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var R=s((function e(t){r(this,e),a(this,\"hasError\",!1),\"KalturaAPIException\"===t.objectType?(this.hasError=!0,this.error=new O(t.code,t.message)):t.error&&\"KalturaAPIException\"===t.error.objectType?(this.hasError=!0,this.error=new O(t.error.code,t.error.message)):this.data=t})),O=s((function e(t,n){r(this,e),this.code=t,this.message=n}));var b=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){var e;r(this,i);for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return a(m(e=o.call.apply(o,[this].concat(n))),\"requests\",[]),e}return s(i,[{key:\"add\",value:function(e){this.requests.push(e);var t={},r={service:e.service,action:e.action};return Object.assign(t,a({},this.requests.length,Object.assign(r,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:\"execute\",value:function(e){var t=this;return new Promise((function(r,n){try{t.params=JSON.stringify(t.params)}catch(e){i._logger.error(\"\".concat(e.message)),n(new f(f.Severity.CRITICAL,f.Category.PROVIDER,f.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(o){var i=new _(o,e);i.success?r({headers:t.responseHeaders,response:i}):n(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:i.results}))}),(function(e){n(e)}))}))}}]),i}(l);a(b,\"_logger\",c(\"MultiRequestBuilder\"));var _=s((function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r(this,e),a(this,\"results\",[]);var o=t.result?t.result:t,i=(Array.isArray(o)?o:[o]).map((function(e){return new R(e)})),s=i.filter((function(e){return e.hasError}));s.forEach((function(t){e._logger.error(\"Service returned an error with error code: \".concat(t.error.code,\" and message: \").concat(t.error.message,\".\"))})),this.results=i,n&&s.length||s.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));a(_,\"_logger\",c(\"MultiRequestResult\"));var T=function(e){var t=[],r=/\\[\\]$/,o=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},i=function(e,r){r=\"function\"==typeof r?r():null==r?\"\":r,t[t.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(r)};return function e(s,a){var u,c,f;if(s)if(o(a))for(u=0,c=a.length;u<c;u++)r.test(s)?i(s,a[u]):e(s+\":\"+(\"object\"===n(a[u])?u:\"\"),a[u]);else if(a&&\"[object Object]\"===String(a))for(f in a)e(s+\":\"+f,a[f]);else i(s,a);else if(o(a))for(u=0,c=a.length;u<c;u++)i(a[u].name,a[u].value);else for(f in a)e(f,a[f]);return t}(\"\",e).join(\"&\").replace(/%20/g,\"+\")};var S=\"analytics\",A=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){return r(this,i),o.apply(this,arguments)}return s(i,null,[{key:\"trackEvent\",value:function(e,t,r){return\"POST\"===r?i._trackEventByPOST(e,t):i._trackEventByGET(e,t)}},{key:\"_trackEventByGET\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new l;return o.service=S,o.action=\"trackEvent\",o.method=\"GET\",o.retryConfig.maxAttempts=1,o.tag=\"analytics-trackEvent\",o.params=n,o.url=e+\"?service=\"+o.service+\"&action=\"+o.action+\"&\"+T(o.params),o}},{key:\"_trackEventByPOST\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new Map;o.set(\"Content-Type\",\"application/json\");var i=new l(o),s={eventType:n.eventType,partnerId:n.partnerId,entryId:n.entryId,sessionId:n.sessionId};return[\"eventType\",\"partnerId\",\"entryId\",\"sessionId\"].forEach((function(e){return delete n[e]})),i.service=S,i.action=\"trackEvent\",i.method=\"POST\",i.retryConfig.maxAttempts=1,i.tag=\"analytics-trackEvent\",i.params=JSON.stringify(n),i.url=e+\"?service=\"+i.service+\"&action=\"+i.action+\"&\"+T(s),i}}]),i}(function(){function e(){r(this,e)}return s(e,null,[{key:\"getMultiRequest\",value:function(e,t,r){var n=h.get(),o=n.serviceParams;Object.assign(o,{ks:t,clientTag:\"html5:v\"+e}),r&&Object.assign(o,{partnerId:r});var i=new Map;i.set(\"Content-Type\",\"application/json\");var s=new b(i);return s.method=\"POST\",s.service=\"multirequest\",s.url=s.getUrl(n.serviceUrl),s.params=o,s}}]),e}()),P=\"@playkit-js/playkit-js-providers-analytics-service\",C=\"2.40.4\";return t}()}));\n//# sourceMappingURL=playkit-analytics-service.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = KalturaPlayer;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","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 return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\n\n/**\n * @name KavaEventType\n * @enum\n */\nexport const KavaEventModel = {\n /**\n * @type {string} VIEW\n * @memberof KavaEventType\n */\n VIEW: {\n type: 'VIEW',\n index: 99,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n playTimeSum: model.getPlayTimeSum(),\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n averageBitrate: model.getAverageBitrate(),\n audioLanguage: model.getLanguage(),\n soundMode: model.getSoundMode(),\n tabMode: model.getTabMode(),\n viewabilityMode: model.getViewabilityMode(),\n screenMode: model.getScreenMode()\n };\n\n if (!isNaN(model.getForwardBufferHealth())) {\n eventModel.forwardBufferHealth = model.getForwardBufferHealth();\n }\n if (model.getMaxManifestDownloadTime() > 0) {\n eventModel.manifestDownloadTime = model.getMaxManifestDownloadTime();\n }\n if (model.getSegmentDownloadTime() > 0) {\n eventModel.segmentDownloadTime = model.getSegmentDownloadTime();\n }\n if (model.getBandwidth()) {\n eventModel.bandwidth = model.getBandwidth();\n }\n if (model.getDroppedFramesRatio() !== null) {\n eventModel.droppedFramesRatio = model.getDroppedFramesRatio();\n }\n\n if (!isNaN(model.getTargetBuffer())) {\n eventModel.targetBuffer = model.getTargetBuffer();\n }\n\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n\n if (model.getNetworkConnectionOverhead()) {\n eventModel.networkConnectionOverhead = model.getNetworkConnectionOverhead();\n }\n if (!isNaN(model.getFlavorParamsId())) {\n eventModel.flavorParamsId = model.getFlavorParamsId();\n }\n if (!isNaN(model.getPlaybackMode())) {\n eventModel.playbackMode = model.getPlaybackMode();\n }\n if (model.getSourceEntryId() !== null) {\n eventModel.sourceEntryId = model.getSourceEntryId();\n }\n\n return eventModel;\n }\n },\n /**\n * @type {string} IMPRESSION\n * @memberof KavaEventType\n */\n IMPRESSION: {\n type: 'IMPRESSION',\n index: 1,\n getEventModel: (model: KavaModel): any => {\n const eventModel = {} as KavaModel;\n if (model.getPlayerJSLoadTime() !== null) {\n eventModel.playerJSLoadTime = model.getPlayerJSLoadTime();\n }\n const isV2ToV7Redirected = model.getV2ToV7Redirect();\n const registeredPlugins = model.getRegisteredPlugins();\n eventModel['loadedPlugins'] = isV2ToV7Redirected ? `v2-v7redirect,${registeredPlugins}` : registeredPlugins;\n return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_90_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_90_PERCENT: {\n type: 'PLAY_REACHED_90_PERCENT',\n index: 15,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed(),\n playerSkin: model.getPlayerSkin()\n };\n\n if (model.getCaption()) {\n commonModel.caption = model.getCaption();\n }\n if (model.getSessionStartTime()) {\n commonModel.sessionStartTime = model.getSessionStartTime();\n }\n if (model.getKS()) {\n commonModel.ks = model.getKS();\n }\n if (model.getVirtualEventId()) {\n commonModel.virtualEventId = model.getVirtualEventId();\n }\n if (model.getUIConfId()) {\n commonModel.uiConfId = model.getUIConfId();\n }\n if (model.getPlaylistId()) {\n commonModel.playlistId = model.getPlaylistId();\n }\n if (model.getCustomVar1()) {\n commonModel.customVar1 = model.getCustomVar1();\n }\n if (model.getCustomVar2()) {\n commonModel.customVar2 = model.getCustomVar2();\n }\n if (model.getCustomVar3()) {\n commonModel.customVar3 = model.getCustomVar3();\n }\n if (model.getPlaybackContext()) {\n commonModel.playbackContext = model.getPlaybackContext();\n }\n if (model.getApplication()) {\n commonModel.application = model.getApplication();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel.kalturaApplicationVer = model.getKalturaApplicationVersion();\n }\n if (model.getKalturaApplication()) {\n commonModel.kalturaApplication = model.getKalturaApplication();\n }\n if (model.getUserId()) {\n commonModel.userId = model.getUserId();\n }\n if (model.getPersistentSessionId()) {\n commonModel.persistentSessionId = model.getPersistentSessionId();\n }\n if (model.getHostingKalturaApplication()) {\n commonModel.hostingKalturaApplication = model.getHostingKalturaApplication();\n }\n if (model.getHostingKalturaApplicationVersion()) {\n commonModel.hostingKalturaApplicationVersion = model.getHostingKalturaApplicationVersion();\n }\n const eventModel = eventObj.getEventModel(model);\n return Object.assign(eventModel, commonModel);\n}\n","/**\n * Manage the video rates for the KAVA plugin.\n * @private\n * @class KavaRateHandler\n */\nclass KavaRateHandler {\n private _rates: any[] = [];\n\n constructor() {\n this._rates = [];\n }\n\n /**\n * Sets the video rates.\n * @param {Array<number>} rates - The video rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setRates(rates: Array<number>): void {\n this._rates = [];\n rates.forEach((rate) => {\n this._rates.push({\n rate: rate,\n active: false,\n duration: 0\n });\n });\n }\n\n /**\n * Sets the current rate.\n * @param {number} rate - The current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setCurrent(rate: number): void {\n this._rates.forEach((o) => (o.active = false));\n const obj = this._rates.find((o) => o.rate === rate);\n if (obj) {\n obj.active = true;\n }\n }\n\n /**\n * Gets the current rate.\n * @returns {number} - The current rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getCurrent(): number {\n const current = this._rates.find((o) => o.active);\n return current ? current.rate : -1;\n }\n\n /**\n * Increases the duration of the current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public countCurrent(): void {\n const current = this._rates.find((o) => o.active);\n if (current) {\n current.duration++;\n }\n }\n\n /**\n * Gets the average rate.\n * @returns {number} - The average rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getAverage(): number {\n let totalDuration = 0;\n let sum = 0;\n this._rates.forEach((o) => {\n sum += o.rate * o.duration;\n totalDuration += o.duration;\n });\n return totalDuration ? sum / totalDuration : 0;\n }\n\n /**\n * Resets the duration of all rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public reset(): void {\n this._rates.forEach((o) => (o.duration = 0));\n }\n\n /**\n * Destroys the class.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public destroy(): void {\n this._rates = [];\n }\n}\n\nexport { KavaRateHandler };\n","import { core } from '@playkit-js/kaltura-player-js';\nconst { FakeEvent, FakeEventTarget } = core;\n\nconst SECOND: number = 1000;\n\n/**\n * Create service worker with timer.\n * @private\n * @class WorkerTimer\n * @param {void} callback - callback that triggers on timer tick.\n * @param {number} interval - interval in ms.\n */\nclass WorkerTimer {\n private worker: Worker | null = null;\n constructor(callback, interval) {\n const blob = new Blob([`setInterval(() => postMessage(0), ${interval});`]);\n const workerScript = URL.createObjectURL(blob);\n this.worker = new Worker(workerScript);\n this.worker.onmessage = callback;\n }\n\n /**\n * Terminate service worker.\n * @returns {void}\n * @memberof WorkerTimer\n * @instance\n */\n public stop(): void {\n if (this.worker) {\n this.worker.terminate();\n }\n }\n}\n\n/**\n * Mange a timer and dispatches related events.\n * @private\n * @class KavaTimer\n * @param {Object} config - The timer config.\n */\nclass KavaTimer extends FakeEventTarget {\n private _resetCounter!: number;\n private _eventCounter!: number;\n private _timer?: WorkerTimer | null;\n private _stopped!: boolean;\n private _config: any;\n\n public static Event = {\n TICK: 'tick',\n RESET: 'reset',\n REPORT: 'report'\n };\n\n constructor(config: any) {\n super();\n this._config = config;\n }\n\n /**\n * Starts the timer interval.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public start(): void {\n this._terminateTimer();\n this._stopped = false;\n this._resetCounter = 0;\n this._eventCounter = 0;\n this._timer = new WorkerTimer(() => this._monitor(), SECOND);\n }\n\n /**\n * Continues the timer to dispatch REPORT.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public resume(): void {\n this._stopped = false;\n this._resetCounter = 0;\n }\n\n /**\n * Stops the timer from dispatch REPORT and starts the timer to dispatch RESET.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public stop(): void {\n this._stopped = true;\n }\n\n /**\n * @returns {boolean} - Whether the timer is stopped.\n * @memberof KavaTimer\n * @instance\n */\n public isStopped(): boolean {\n return this._stopped;\n }\n\n /**\n * Destroys the timer.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public destroy(): void {\n this._terminateTimer();\n }\n\n private _terminateTimer(): void {\n if (this._timer) {\n this._timer.stop();\n this._timer = null;\n }\n }\n\n private _monitor(): void {\n if (this._stopped) {\n if (this._resetCounter === this._config.resetCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.RESET));\n this._resetCounter = 0;\n this._eventCounter = 0;\n }\n this._resetCounter++;\n } else {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.TICK));\n if (this._eventCounter === this._config.eventCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.REPORT));\n this._eventCounter = 0;\n }\n this._eventCounter++;\n }\n }\n}\n\nexport { KavaTimer };\n","export enum EventBucketName {\n ApplicationEvents = 'ApplicationEvents',\n PlayerEvents = 'PlayerEvents'\n}\n","// EventVar 1 in kava server\n\nexport enum ButtonType {\n Create = 1,\n Filter = 2,\n Search = 3,\n Export = 4,\n Navigate = 5,\n Schedule = 6,\n Insert = 7,\n Choose = 8,\n Launch = 9,\n Open = 10,\n Send = 11,\n Invite = 12,\n Close = 13,\n Save = 14,\n Expand = 15,\n Collapse = 16,\n Edit = 17,\n Delete = 18,\n Browse = 19,\n Load = 20,\n Add = 21,\n Menu = 22,\n Register = 23,\n Login = 24,\n Link = 25,\n Toggle = 26,\n Thumbnail = 27,\n Download = 28,\n Share = 29\n}\n","export const ApplicationEventType = {\n BUTTON_CLICKED: 10002,\n PAGE_LOAD: 10003\n};\n","// // EventVar 1 in kava server\nexport enum PageLoadType {\n View = 1,\n Create = 2,\n Edit = 3,\n Participate = 4,\n List = 5,\n Analytics = 6,\n Admin = 7,\n Error = 8,\n Login = 9,\n Registration = 10,\n Custom = 11\n}\n","const playkitUIEventsNamespace = 'playkit-ui';\nexport const PlaykitUIEvents = {\n USER_CLICKED_LOGO: `${playkitUIEventsNamespace}-userclickedlogo`,\n USER_SELECTED_CAPTIONS_SIZE: `${playkitUIEventsNamespace}-userselectedcaptionssize`,\n USER_SELECTED_CAPTIONS_WEIGHT: `${playkitUIEventsNamespace}-userselectedcaptionsweight`,\n USER_SELECTED_CAPTIONS_ALIGNMENT: `${playkitUIEventsNamespace}-userselectedcaptionsalignment`,\n USER_SELECTED_CAPTIONS_FONT_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsfontcolor`,\n USER_SELECTED_CAPTIONS_FONT_FAMILY: `${playkitUIEventsNamespace}-userselectedcaptionsfontfamily`,\n USER_SELECTED_CAPTIONS_FONT_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionsfontstyle`,\n USER_SELECTED_CAPTIONS_FONT_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsfontopacity`,\n USER_SELECTED_CAPTIONS_BACKGROUND_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundcolor`,\n USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundopacity`,\n USER_SHOWED_CAPTIONS: `${playkitUIEventsNamespace}-usershowedcaptions`,\n USER_HID_CAPTIONS: `${playkitUIEventsNamespace}-userhidcaptions`,\n USER_SELECTED_CAPTION_TRACK: `${playkitUIEventsNamespace}-userselectedcaptiontrack`,\n USER_SELECTED_AUDIO_TRACK: `${playkitUIEventsNamespace}-userselectedaudiotrack`,\n USER_COPIED_DEBUG_INFO: `${playkitUIEventsNamespace}-usercopieddebuginfo`,\n DISPLAY_INFO_BEFORE_PLAYBACK: `${playkitUIEventsNamespace}-displayinfobeforeplayback`,\n USER_SELECTED_CAPTIONS_PRESET_MINIMALIST: `${playkitUIEventsNamespace}-userselectedcaptionspresetminimalist`,\n USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST: `${playkitUIEventsNamespace}-userselectedcaptionspresethighcontrast`,\n USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionspresetclassictvstyle`,\n USER_SELECTED_CAPTIONS_PRESET_EASY_READING: `${playkitUIEventsNamespace}-userselectedcaptionspreseteasyreading`,\n USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS: `${playkitUIEventsNamespace}-userselectedcaptionspresetearlyreaders`,\n USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE: `${playkitUIEventsNamespace}-userselectedcaptionspresetnightmode`,\n USER_SELECTED_CAPTIONS_CUSTOM: `${playkitUIEventsNamespace}-userselectedcaptionscustom`\n};\n\nexport const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n TRANSCRIPT_POPOUT_OPEN: 'transcript_popout_open',\n TRANSCRIPT_POPOUT_CLOSE: 'transcript_popout_close',\n TRANSCRIPT_POPOUT_DRAG: 'transcript_popout_drag',\n TRANSCRIPT_POPOUT_RESIZE: 'transcript_popout_resize'\n};\n\nexport const EadEvents = {\n EAD_ON: 'EAD_on',\n EAD_OFF: 'EAD_off',\n EAD_SKIP: 'EAD_skip',\n EAD_REPLAY: 'EAD_replay',\n EAD_PAUSE: 'EAD_pause',\n EAD_RESUME: 'EAD_resume',\n EAD_PLAY: 'EAD_play',\n EAD_SCROLL: 'EAD_scroll'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout',\n SIDE_DISPLAYED: 'dualscreen_side_displayed'\n};\nexport const ShareEvents = {\n SHARE_CLICKED: 'share_clicked',\n SHARE_CLOSE: 'share_close',\n SHARE_NETWORK: 'share_network',\n SHARE_COPY: 'share_copy'\n};\n\nexport const BumperEvents = {\n BUMPER_CLICKED: 'bumper_clicked'\n};\nexport const SkipEvents = {\n SKIP_BUTTON_CLICK: 'skip_button_click',\n SKIP_BUTTON_DISPLAYED: 'skip_button_displayed'\n};\nexport const PlaylistEvents = {\n PLAYLIST_OPEN: 'playlist_open',\n PLAYLIST_CLOSE: 'playlist_close'\n};\n\nexport const RelatedEvents = {\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close',\n RELATED_ENTRY_SELECTED: 'related_entry_selected',\n RELATED_ENTRY_AUTO_PLAYED: 'related_entry_auto_played',\n RELATED_GRID_DISPLAYED: 'related_grid_displayed'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click',\n CALL_TO_ACTION_DISPLAYED: 'call_to_action_displayed'\n};\n\nexport const HotspotsEvents = {\n HOTSPOT_CLICK: 'hotspot_click',\n HOTSPOT_DISPLAYED: 'hotspot_displayed'\n};\n\nexport const IvqEventTypes = {\n QUIZ_STARTED: 'QuizStarted',\n QUIZ_SKIPPED: 'QuizSkipped',\n QUIZ_SEEK: 'QuizSeek',\n QUESTION_ANSWERED: 'QuestionAnswered',\n QUIZ_SUBMITTED: 'QuizSubmitted',\n QUIZ_RETAKE: 'QuizRetake',\n QUIZ_QUESTION_CHANGED: 'QuizQuestionChanged'\n};\n\nexport const DetectAdBlockEvents = {\n DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN: 'detect_ad_block_partial_overlay_shown',\n DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN: 'detect_ad_block_full_overlay_shown',\n DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED: 'detect_ad_block_secondary_button_clicked',\n DETECT_AD_BLOCK_X_BUTTON_CLICKED: 'detect_ad_block_x_button_clicked',\n DETECT_AD_BLOCK_AD_BLOCKER_DISABLED: 'detect_ad_block_ad_blocker_disabled',\n DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED: 'detect_ad_block_ad_blocker_not_disabled'\n};\n\nexport const ReelsEvents = {\n REELS_PLAY: 'reels_play',\n REELS_PAUSE: 'reels_pause',\n REELS_MUTE: 'reels_mute',\n REELS_UNMUTE: 'reels_unmute',\n REELS_SEEK: 'reels_seek',\n REELS_POSTER_CLICKED: 'reels_poster_clicked',\n REELS_ENTRY_LOADED: 'reels_entry_loaded',\n REELS_PLAYLIST_LOADED: 'reels_playlist_loaded'\n};\n\nexport const SummaryAndChaptersEvents = {\n SUMMARY_CHAPTERS_OPEN: 'summary_chapters_open',\n SUMMARY_CHAPTERS_CLOSE: 'summary_chapters_close',\n SUMMARY_CHAPTERS_READ_CHAPTERS: 'summary_chapters_read_chapters',\n SUMMARY_CHAPTERS_READ_OVERVIEW: 'summary_chapters_read_overview',\n SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD: 'summary_chapters_copy_to_clipboard',\n SUMMARY_CHAPTERS_CHAPTER_EXPAND: 'summary_chapters_chapter_expand',\n SUMMARY_CHAPTERS_CHAPTER_COLLAPSE: 'summary_chapters_chapter_collapse',\n SUMMARY_CHAPTERS_CHAPTER_SEEK: 'summary_chapters_chapter_seek'\n};\n\nexport const AudioPlayerEvents = {\n AUDIO_PLAYER_VISUALIZATION_STATE: 'audio_player_visualization_state'\n};\n\nexport const CpeTrackerEvents = {\n CPE_TRACKER_HOVER: 'cpe_tracker_hover'\n};\n\nexport const BannerOverlayEvents = {\n BANNER_MESSAGE_DISPLAYS: 'banner_message_displays',\n BANNER_MESSAGE_MANUALLY_DISMISSED: 'banner_message_manually_dismissed'\n};\n\n// events fired by the kava plugin itself - the kava plugin does not listen to these events\nexport const KavaEvents = {\n KAVA_REQUEST_SUCCEEDED: 'kava_request_succeeded',\n KAVA_REQUEST_FAILED: 'kava_request_failed'\n};\n\nexport const GenieEvents = {\n GENIE_OPEN_AUTO: 'genie_open_auto',\n GENIE_OPEN_MANUAL: 'genie_open_manual',\n GENIE_CLOSE: 'genie_close',\n GENIE_NEW_THREAD: 'genie_new_thread'\n};\n\nexport const PluginsEvents = {\n ...NavigationEvents,\n ...DownloadEvents,\n ...TranscriptEvents,\n ...DualscreenEvents,\n ...ShareEvents,\n ...BumperEvents,\n ...SkipEvents,\n ...PlaylistEvents,\n ...RelatedEvents,\n ...CallToActionEvents,\n ...HotspotsEvents,\n ...IvqEventTypes,\n ...DetectAdBlockEvents,\n ...ReelsEvents,\n ...EadEvents,\n ...SummaryAndChaptersEvents,\n ...AudioPlayerEvents,\n ...CpeTrackerEvents,\n ...BannerOverlayEvents,\n ...GenieEvents\n};\n","type ApplicationType = { [app: string]: string };\n\nconst KalturaApplication: ApplicationType = {\n KMC: '0',\n KMS: '1',\n KAF: '2',\n PITCH: '3',\n KMS_GO: '4',\n WEBCASTING: '5',\n PERSONAL_CAPTURE: '6',\n KME: '7',\n KME_MOBILE_APP: '8',\n PATH: '9',\n LECTURE_CAPTURE: '10',\n EP: '11',\n CHAT_AND_COLLABORATION: '12',\n ANALYTICS: '13',\n EXPRESS_CAPTURE: '14',\n KPF: '15',\n KAF_GO: '16',\n SITES: '17',\n STUDIO: '18',\n CAPTIONS_EDITOR: '19',\n CHECKLIST: '20',\n PLAYER: '21',\n GENIE: '23'\n};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\n","export enum ApplicationFeature {\n DUAL_SCREEN = 'dual_screen',\n SHARE_EMBED = 'share_embed',\n DOWNLOAD = 'download',\n BUMPER = 'bumper',\n NAVIGATION = 'navaigation',\n TRANSCRIPT = 'transcript',\n PLAYLIST = 'playlist',\n SKIP = 'skip',\n RELATED = 'related',\n CALL_TO_ACTION = 'call_to_action',\n HOTSPOPT = 'hotspot',\n QUIZ = 'quiz',\n UI = 'ui',\n DETECT_AD_BLOCK = 'detect_ad_block',\n REELS = 'reels_player',\n EAD = 'extended_audio_description',\n ADVANCED_CAPTIONS = 'advanced_captions',\n CAPTIONS = 'captions',\n AUDION_TRACKS = 'audio_tracks',\n SUMMARY_CHAPTERS = 'summary_chapters',\n DEBUG_INFO = 'debug_info',\n AUDIO_PLAYER = 'audio_player',\n CPE_TRACKER = 'cpe_tracker',\n BANNER_OVERLAY = 'banner_overlay',\n GENIE = 'genie'\n}\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PlaykitUIEvents, PluginsEvents } from './applications-events';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { ApplicationFeature } from './enums/application-feature';\n\nexport function getApplicationEventsModel(eventObj: KavaEvent, model: KavaModel, innerEventPayload: any): any {\n const commonModel = {\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n kalturaApplication: KalturaApplication.PLAYER,\n application: model.getApplication(false)\n };\n\n if (model.getVirtualEventId()) {\n commonModel['virtualEventId'] = model.getVirtualEventId();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel['kalturaApplicationVer'] = model.getKalturaApplicationVersion();\n }\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n if (model.getKS()) {\n commonModel['ks'] = model.getKS();\n }\n if (model.getHostingKalturaApplication()) {\n commonModel['hostingKalturaApplication'] = model.getHostingKalturaApplication();\n }\n if (model.getHostingKalturaApplicationVersion()) {\n commonModel['hostingKalturaApplicationVersion'] = model.getHostingKalturaApplicationVersion();\n }\n\n const eventModel = eventObj.getEventModel(innerEventPayload);\n const namedEventModel = {};\n const { eventType, eventVar1, eventVar2, eventVar3, eventVar4, applicationFeature } = eventModel;\n namedEventModel['eventType'] = eventType;\n namedEventModel['feature'] = applicationFeature;\n\n if (eventModel.eventType === ApplicationEventType.BUTTON_CLICKED) {\n namedEventModel['buttonName'] = eventVar1;\n namedEventModel['buttonType'] = eventVar2;\n namedEventModel['buttonValue'] = eventVar3;\n namedEventModel['buttonInfo'] = eventVar4;\n } else if (eventModel.eventType === ApplicationEventType.PAGE_LOAD) {\n namedEventModel['pageName'] = eventVar1;\n namedEventModel['pageType'] = eventVar2;\n namedEventModel['pageValue'] = eventVar3;\n namedEventModel['pageInfo'] = eventVar4;\n }\n\n return Object.assign(namedEventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: ({ layout }: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: layout !== 'Hidden' ? 'Dual__screen_change_layout' : '',\n eventVar2: ButtonType.Choose,\n eventVar3: layout,\n applicationFeature: ApplicationFeature.DUAL_SCREEN\n })\n },\n [PluginsEvents.SIDE_DISPLAYED]: {\n type: 'SIDE_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Dual__screen_slide_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.DUAL_SCREEN\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_open',\n eventVar2: ButtonType.Open,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption'],\n applicationFeature: ApplicationFeature.SHARE_EMBED\n };\n let eventVar1: string = '';\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n eventVar1 = 'Share_embed_X_click';\n break;\n case 'facebook':\n eventVar1 = 'Share_embed_facebook_click';\n break;\n case 'email':\n eventVar1 = 'Share_embed_email_click';\n break;\n case 'linkedin':\n eventVar1 = 'Share_embed_linkedin_click';\n break;\n case 'embed':\n eventVar1 = 'Share_embed_embed_click';\n break;\n }\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_copy_click',\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption'],\n applicationFeature: ApplicationFeature.SHARE_EMBED\n })\n },\n [PluginsEvents.DOWNLOAD_ITEM_CLICKED]: {\n type: 'DOWNLOAD_ITEM_CLICKED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download,\n applicationFeature: ApplicationFeature.DOWNLOAD\n };\n const { assetType, fileType, description, isDefault } = payload;\n\n let eventVar1: string;\n let eventVar3: string;\n\n switch (assetType) {\n case 'Media':\n eventVar1 = isDefault ? 'Download_video_download' : 'Download_additional_stream_download';\n eventVar3 = description;\n break;\n case 'Captions':\n eventVar1 = 'Download_captions_download';\n eventVar3 = description;\n break;\n case 'Attachments':\n eventVar1 = 'Download_attachment_download';\n eventVar3 = fileType;\n break;\n default:\n eventVar1 = '';\n eventVar3 = '';\n }\n return { ...model, eventVar1, eventVar3 };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_open',\n eventVar2: ButtonType.Open,\n eventVar3: '',\n applicationFeature: ApplicationFeature.DOWNLOAD\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.DOWNLOAD\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Bumper_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['clickThroughUrl'],\n applicationFeature: ApplicationFeature.BUMPER\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Navigation_open_auto' : 'Navigation_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Navigation_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n let eventVar1: string = '';\n let eventVar2: ButtonType = ButtonType.Open;\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n const eventVar3 = searchQuery;\n switch (activeTab) {\n case 'All':\n const isItSearch = searchQuery.length > 0 || availableTabs.length === 0;\n eventVar1 = isItSearch ? 'Navigation_search' : 'Navigation_all_tab';\n eventVar2 = isItSearch ? ButtonType.Search : ButtonType.Open;\n break;\n case 'Chapter':\n eventVar1 = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, eventVar1, eventVar2, eventVar3 };\n }\n },\n [PluginsEvents.NAVIGATION_ITEM_CLICK]: {\n type: 'NAVIGATION_ITEM_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n let eventVar1: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n eventVar1 = 'Navigation_chapter_click';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.NAVIGATION_EXPANDABLE_TEXT_CLICK]: {\n type: 'NAVIGATION_EXPANDABLE_TEXT_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: '',\n applicationFeature: ApplicationFeature.NAVIGATION\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let eventVar1: string = '';\n const eventVar2 = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n eventVar1 = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n eventVar1 = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n eventVar1 = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, eventVar1, eventVar2 };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Transcript_open_auto' : 'Transcript_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_download',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition'],\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_print',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition'],\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_search',\n eventVar2: ButtonType.Search,\n eventVar3: payload.search,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_navigate_result',\n eventVar2: ButtonType.Navigate,\n eventVar3: payload.index,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_OPEN]: {\n type: 'TRANSCRIPT_POPOUT_OPEN',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_open',\n eventVar2: ButtonType.Expand,\n eventVar3: '',\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_CLOSE]: {\n type: 'TRANSCRIPT_POPOUT_CLOSE',\n getEventModel: (payload: { type: string }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_close',\n eventVar2: ButtonType.Collapse,\n eventVar3: payload.type,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_DRAG]: {\n type: 'TRANSCRIPT_POPOUT_DRAG',\n getEventModel: (payload: { position: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_drag',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.position.x},${payload.position.y}`,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_RESIZE]: {\n type: 'TRANSCRIPT_POPOUT_RESIZE',\n getEventModel: (payload: { size: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_resize',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.size.x},${payload.size.y}`,\n applicationFeature: ApplicationFeature.TRANSCRIPT\n })\n },\n [PluginsEvents.PLAYLIST_OPEN]: {\n type: 'PLAYLIST_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: payload['position'],\n applicationFeature: ApplicationFeature.PLAYLIST\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Playlist_side_panel_close_manual',\n eventVar2: ButtonType.Close,\n eventVar3: payload['position'],\n applicationFeature: ApplicationFeature.PLAYLIST\n })\n },\n [PluginsEvents.SKIP_BUTTON_CLICK]: {\n type: 'SKIP_BUTTON_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SKIP\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_click';\n if (mode === 'outro') eventVar1 = 'Skip_outro_click';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SKIP_BUTTON_DISPLAYED]: {\n type: 'SKIP_BUTTON_DISPLAYED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.SKIP\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_displayed';\n if (mode === 'outro') eventVar1 = 'Skip_outro_displayed';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_open_manual',\n eventVar2: ButtonType.Open,\n eventVar3: payload['expandMode'],\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_close',\n eventVar2: ButtonType.Close,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_ENTRY_SELECTED]: {\n type: 'RELATED_ENTRY_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_entry_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_ENTRY_AUTO_PLAYED]: {\n type: 'RELATED_ENTRY_AUTO_PLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_entry_auto_continue',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.RELATED_GRID_DISPLAYED]: {\n type: 'RELATED_GRID_DISPLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_open_auto',\n eventVar2: PageLoadType.View,\n eventVar3: '',\n applicationFeature: ApplicationFeature.RELATED\n })\n },\n [PluginsEvents.CALL_TO_ACTION_BUTTON_CLICK]: {\n type: 'CALL_TO_ACTION_BUTTON_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: payload['label'],\n eventVar2: ButtonType.Link,\n eventVar1: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click',\n applicationFeature: ApplicationFeature.CALL_TO_ACTION\n })\n },\n [PluginsEvents.CALL_TO_ACTION_DISPLAYED]: {\n type: 'CALL_TO_ACTION_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'CTA_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload.displayType,\n eventVar4: payload.isMetadataBased ? 'metadata_based' : 'player_level',\n applicationFeature: ApplicationFeature.CALL_TO_ACTION\n })\n },\n [PluginsEvents.HOTSPOT_DISPLAYED]: {\n type: 'HOTSPOT_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Hotspot_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload['label'],\n applicationFeature: ApplicationFeature.HOTSPOPT\n })\n },\n [PluginsEvents.HOTSPOT_CLICK]: {\n type: 'HOTSPOT_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Hotspot_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['label'],\n applicationFeature: ApplicationFeature.HOTSPOPT\n })\n },\n [PluginsEvents.QUIZ_STARTED]: {\n type: 'QUIZ_STARTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_start',\n eventVar2: ButtonType.Load,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SUBMITTED]: {\n type: 'QUIZ_SUBMITTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_submit',\n eventVar2: ButtonType.Send,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SKIPPED]: {\n type: 'QUIZ_SKIPPED',\n getEventModel: ({ questionIndex }: { questionIndex: number }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_skip_question',\n eventVar2: ButtonType.Navigate,\n eventVar3: questionIndex,\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.QUIZ_SEEK]: {\n type: 'QUIZ_SEEK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_nav_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: '',\n applicationFeature: ApplicationFeature.QUIZ\n })\n },\n [PluginsEvents.EAD_ON]: {\n type: 'EAD_ON',\n getEventModel: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_on',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n eventVar4: payload?.settings ? 'settings' : 'toggle',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_OFF]: {\n type: 'EAD_OFF',\n getEventModel: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_off',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n eventVar4: payload?.settings ? 'settings' : 'toggle',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_SKIP]: {\n type: 'EAD_SKIP',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_skip',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_REPLAY]: {\n type: 'EAD_REPLAY',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_replay',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_PAUSE]: {\n type: 'EAD_PAUSE',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_pause',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_RESUME]: {\n type: 'EAD_PAUSE',\n getEventModel: ({ trigger }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_resume',\n eventVar2: ButtonType.Navigate,\n eventVar3: trigger,\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_PLAY]: {\n type: 'EAD_PLAY',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_play',\n eventVar2: ButtonType.Toggle,\n eventVar3: '',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PluginsEvents.EAD_SCROLL]: {\n type: 'EAD_SCROLL',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_scroll',\n eventVar2: ButtonType.Browse,\n eventVar3: '',\n applicationFeature: ApplicationFeature.EAD\n })\n },\n [PlaykitUIEvents.USER_CLICKED_LOGO]: {\n type: 'USER_CLICKED_LOGO',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Logo_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['logoUrl'],\n applicationFeature: ApplicationFeature.UI\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_SIZE]: {\n type: 'USER_SELECTED_CAPTIONS_SIZE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_size',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_WEIGHT]: {\n type: 'USER_SELECTED_CAPTIONS_WEIGHT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_weight',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_ALIGNMENT]: {\n type: 'USER_SELECTED_CAPTIONS_ALIGNMENT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_alignment',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_COLOR',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_FAMILY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_FAMILY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_family',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_STYLE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_style',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_OPACITY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_COLOR',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`,\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_MINIMALIST]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_MINIMALIST',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_minimalist',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_high_contrast',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_classic_tv_style',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_EASY_READING]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_EASY_READING',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_easy_reading',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_early_readers',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE]: {\n type: 'USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_preset_night_mode',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_CUSTOM]: {\n type: 'USER_SELECTED_CAPTIONS_CUSTOM',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: ButtonType.Choose,\n eventVar2: 'Advanced_captions_custom',\n eventVar3: '',\n applicationFeature: ApplicationFeature.ADVANCED_CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SHOWED_CAPTIONS]: {\n type: 'USER_SHOWED_CAPTIONS',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_on',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_HID_CAPTIONS]: {\n type: 'USER_HID_CAPTIONS',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_off',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.language,\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTION_TRACK]: {\n type: 'USER_SELECTED_CAPTION_TRACK',\n getEventModel: ({ captionTrack, autoSelected }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Captions_language_selected',\n eventVar2: ButtonType.Choose,\n eventVar3: captionTrack?.language,\n eventVar4: autoSelected ? 'Auto display' : 'Manual selection',\n applicationFeature: ApplicationFeature.CAPTIONS\n })\n },\n [PlaykitUIEvents.USER_SELECTED_AUDIO_TRACK]: {\n type: 'USER_SELECTED_AUDIO_TRACK',\n getEventModel: ({ audioTrack }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'audioSelected',\n eventVar2: ButtonType.Choose,\n eventVar3: audioTrack?.language,\n eventVar4: audioTrack?.language?.startsWith('ad-') ? 'AD' : 'non_AD',\n applicationFeature: ApplicationFeature.AUDION_TRACKS\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Allow_playback',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Block_playback',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'secondary_button',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_X_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_X_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'x_button',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'disabled',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'still_detected',\n applicationFeature: ApplicationFeature.DETECT_AD_BLOCK\n })\n },\n [PluginsEvents.REELS_PLAY]: {\n type: 'REELS_PLAY',\n getEventModel: ({ duration, isResume }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_play_click',\n eventVar3: isResume ? 'resume' : 'manual_play',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_PAUSE]: {\n type: 'REELS_PAUSE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_pause',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_MUTE]: {\n type: 'REELS_MUTE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_mute',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_UNMUTE]: {\n type: 'REELS_UNMUTE',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_unmute',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_SEEK]: {\n type: 'REELS_SEEK',\n getEventModel: ({ duration, from, to }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'reels_seek',\n eventVar3: to > from ? 'forward' : 'backward',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_POSTER_CLICKED]: {\n type: 'REELS_POSTER_CLICKED',\n getEventModel: ({ duration }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'reels_navigate_to_entry',\n eventVar4: duration,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_ENTRY_LOADED]: {\n type: 'REELS_ENTRY_LOADED',\n getEventModel: ({ muted, playlistId }) => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'reels_entry_start_playback',\n eventVar3: muted ? 'muted' : 'unmuted',\n eventVar4: playlistId,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.REELS_PLAYLIST_LOADED]: {\n type: 'REELS_PLAYLIST_LOADED',\n getEventModel: ({ muted, autoplay, playlistId }) => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'reels_playlist_load',\n eventVar3: `${muted ? 'muted' : 'unmuted'} ; ${autoplay ? 'autoplay_on' : 'autoplay_off'}`,\n eventVar4: playlistId,\n applicationFeature: ApplicationFeature.REELS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_OPEN]: {\n type: 'SUMMARY_CHAPTERS_OPEN',\n getEventModel: ({ buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Toggle,\n eventVar1: 'summary_chapters_open_plugin',\n eventVar3: buttonName,\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CLOSE]: {\n type: 'SUMMARY_CHAPTERS_CLOSE',\n getEventModel: ({ buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Toggle,\n eventVar1: 'summary_chapters_close_plugin',\n eventVar3: buttonName,\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_READ_CHAPTERS]: {\n type: 'SUMMARY_CHAPTERS_READ_CHAPTERS',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_read_as_chapters',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_READ_OVERVIEW]: {\n type: 'SUMMARY_CHAPTERS_READ_OVERVIEW',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_read_as_overview',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD]: {\n type: 'SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'summary_chapters_copy_to_clipboard',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_EXPAND]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_EXPAND',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Expand,\n eventVar1: 'summary_chapters_expand_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_COLLAPSE]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_COLLAPSE',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Collapse,\n eventVar1: 'summary_chapters_collapse_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_SEEK]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_SEEK',\n getEventModel: ({ chapterNumber, buttonName }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'summary_chapters_seek_to_chapter',\n eventVar3: buttonName,\n eventVar4: chapterNumber + 1,\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PlaykitUIEvents.USER_COPIED_DEBUG_INFO]: {\n type: 'USER_COPIED_DEBUG_INFO',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar1: 'copy_debug_info',\n eventVar3: '',\n applicationFeature: ApplicationFeature.DEBUG_INFO\n })\n },\n [PluginsEvents.AUDIO_PLAYER_VISUALIZATION_STATE]: {\n type: 'AUDIO_PLAYER_VISUALIZATION_STATE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.Analytics,\n eventVar1: 'audio_player_visualization_state',\n eventVar3: payload.state,\n eventVar4: payload.size,\n applicationFeature: ApplicationFeature.AUDIO_PLAYER\n })\n },\n [PluginsEvents.CPE_TRACKER_HOVER]: {\n type: 'CPE_TRACKER_HOVER',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar1: 'CPE_tracker_hover',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.CPE_TRACKER\n })\n },\n [PluginsEvents.BANNER_MESSAGE_DISPLAYS]: {\n type: 'BANNER_MESSAGE_DISPLAYS',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.Analytics,\n eventVar1: 'banner_message_displays',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.BANNER_OVERLAY\n })\n },\n [PluginsEvents.BANNER_MESSAGE_MANUALLY_DISMISSED]: {\n type: 'BANNER_MESSAGE_MANUALLY_DISMISSED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'banner_message_manually_dismissed',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.BANNER_OVERLAY\n })\n },\n [PlaykitUIEvents.DISPLAY_INFO_BEFORE_PLAYBACK]: {\n type: 'DISPLAY_INFO_BEFORE_PLAYBACK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'display_info_before_playback',\n eventVar3: '',\n applicationFeature: ApplicationFeature.UI\n })\n },\n [PluginsEvents.GENIE_OPEN_AUTO]: {\n type: 'GENIE_OPEN_AUTO',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'genie_open_auto',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_OPEN_MANUAL]: {\n type: 'GENIE_OPEN_MANUAL',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Open,\n eventVar1: 'genie_open_manual',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_CLOSE]: {\n type: 'GENIE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'genie_close',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n },\n [PluginsEvents.GENIE_NEW_THREAD]: {\n type: 'GENIE_NEW_THREAD',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Open,\n eventVar1: 'genie_new_thread',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.GENIE\n })\n }\n};\n","import { getEventModel } from './kava-event-model';\nimport { KavaEvent } from './types';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { getApplicationEventsModel } from './application-events-model';\n\n/**\n * The KAVA model that stores data.\n * @class KavaModel\n * @private\n * @param {?Object} - Initial model.\n */\nclass KavaModel {\n private sessionStartTime!: number;\n private eventIndex!: number;\n private errorPosition!: ErrorPosition;\n private playTimeSum!: number;\n private bufferTime!: number;\n private bufferTimeSum!: number;\n private language!: string;\n private caption!: string;\n private errorCode!: number;\n private errorDetails: any;\n private joinTime!: number;\n private canPlayTime!: number;\n private targetPosition!: number;\n private targetBuffer!: number;\n private registeredPlugins!: string;\n public totalSegmentsDownloadTime: number = 0;\n public totalSegmentsDownloadBytes: number = 0;\n public maxSegmentDownloadTime: number = 0;\n public maxManifestDownloadTime: number = 0;\n private forwardBufferHealth!: number;\n private droppedFramesRatio?: number | null = null;\n private soundMode!: SoundMode;\n private viewabilityMode!: ViewabilityMode;\n private tabMode!: TabMode;\n private screenMode: ScreenMode = ScreenMode.NOT_IN_FULLSCREEN;\n public maxNetworkConnectionOverhead: number = 0;\n private flavorParamsId: number = NaN;\n private networkConnectionType!: string;\n public playerJSLoadTime?: number | null = null;\n private shareNetworkName: string = '';\n private reportType: number = NaN;\n private playbackMode: number = NaN;\n private sourceEntryId: string | null = null;\n\n public getActualBitrate!: () => any;\n public getPlaybackSpeed!: () => any;\n public getAverageBitrate!: () => any;\n public getPartnerId!: () => any;\n public getEntryId!: () => any;\n public getPlaylistId!: () => any;\n public getSessionId!: () => any;\n public getClientVer!: () => any;\n public getClientTag!: () => any;\n public getKS!: () => any;\n public getVirtualEventId!: () => any;\n public getUIConfId!: () => any;\n public getReferrer!: () => any;\n public getCustomVar1!: () => any;\n public getCustomVar2!: () => any;\n public getCustomVar3!: () => any;\n public getPosition!: () => any;\n public getDeliveryType!: () => any;\n public getPlaybackType!: () => any;\n public getPlaybackContext!: () => any;\n public getApplication!: (playerEvent?: boolean) => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\n public getHostingKalturaApplication!: () => any;\n public getHostingKalturaApplicationVersion!: () => any;\n public getPlayerSkin!: () => any;\n public getV2ToV7Redirect!: () => any;\n public getNumFailedAnalyticReports!: () => number;\n\n constructor(model?: object) {\n if (model) {\n this.updateModel(model);\n }\n }\n\n /**\n * Gets the total play time.\n * @returns {number} - The play time sum.\n * @memberof KavaModel\n * @instance\n */\n public getPlayTimeSum(): number {\n return this.playTimeSum;\n }\n\n public getCanPlayTime(): number {\n return this.canPlayTime;\n }\n\n /**\n * Gets the buffer time.\n * @returns {number} - The buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTime(): number {\n return this.bufferTime;\n }\n\n /**\n * Gets the total buffer time.\n * @returns {number} - The total buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTimeSum(): number {\n return this.bufferTimeSum;\n }\n\n /**\n * Gets the player bundle js load duration time\n * @returns {number} - The player js load duration time\n * @memberof KavaModel\n * @instance\n */\n public getPlayerJSLoadTime(): number | null {\n if (this.playerJSLoadTime) {\n return Math.round(this.playerJSLoadTime * 1000) / 1000;\n } else {\n return null;\n }\n }\n\n /**\n * Gets the join time.\n * @returns {number} - The join time.\n * @memberof KavaModel\n * @instance\n */\n public getJoinTime(): number {\n return this.joinTime;\n }\n\n /**\n * Gets a target position\n * @returns {number} - The target position.\n * @memberof KavaModel\n * @instance\n */\n public getTargetPosition(): number {\n return this.targetPosition;\n }\n\n /**\n * Gets the target buffer\n * @returns {number} - The target buffer in seconds.\n * @memberof KavaModel\n * @instance\n */\n public getTargetBuffer(): number {\n return this.targetBuffer;\n }\n\n /**\n * Gets registered plugins list\n * @returns {string} - The current list of loaded plugins\n * @memberof KavaModel\n * @instance\n */\n public getRegisteredPlugins(): string {\n return this.registeredPlugins;\n }\n\n /**\n * Gets an audio language.\n * @returns {string} - The audio language.\n * @memberof KavaModel\n * @instance\n */\n public getLanguage(): string {\n return this.language;\n }\n\n /**\n * Gets a caption language.\n * @returns {string} - The caption language.\n * @memberof KavaModel\n * @instance\n */\n public getCaption(): string {\n return this.caption;\n }\n\n /**\n * Gets the average bandwidth since last report.\n * @returns {number} - The bandwidth in kbps\n * @memberof KavaModel\n * @instance\n */\n public getBandwidth(): number {\n return this.totalSegmentsDownloadTime > 0 ? Math.round((this.totalSegmentsDownloadBytes * 8) / this.totalSegmentsDownloadTime) / 1000 : 0;\n }\n\n /**\n * Returns the longest manifest download time in seconds\n * @returns {number} - manifest max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getMaxManifestDownloadTime(): number {\n return this.maxManifestDownloadTime;\n }\n\n /**\n * Returns the longest segment download time in seconds\n * @returns {number} - segment max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getSegmentDownloadTime(): number {\n return this.maxSegmentDownloadTime;\n }\n\n /**\n * Gets the forward buffer health ratio.\n * @returns {number} - the ratio between the available buffer and the target buffer\n * @memberof KavaModel\n * @instance\n */\n public getForwardBufferHealth(): number {\n return this.forwardBufferHealth;\n }\n /**\n * Gets the dropped frames ratio since last view event.\n * @returns {number} - dropped frames ratio since last view event\n * @memberof KavaModel\n * @instance\n */\n public getDroppedFramesRatio(): number | null | undefined {\n return this.droppedFramesRatio;\n }\n\n /**\n * Gets the sound mode of the player.\n * @returns {SoundMode} the state of the sound (muted ot not)\n * @memberof KavaModel\n * @instance\n */\n public getSoundMode(): SoundMode {\n return this.soundMode;\n }\n\n /**\n * Gets the viewability mode of the player.\n * @returns {ViewabilityMode} the state of the view (in-view ot not)\n * @memberof KavaModel\n * @instance\n */\n public getViewabilityMode(): ViewabilityMode {\n return this.viewabilityMode;\n }\n\n /**\n * Gets the screen mode of the browser player.\n * @returns {number} the state of the full screen if is on or not.\n * @memberof KavaModel\n * @instance\n */\n public getScreenMode(): ScreenMode {\n return this.screenMode;\n }\n\n /**\n * Gets the Tab mode of the browser.\n * @returns {TabMode} the state of the tab (focused or not)\n * @memberof KavaModel\n * @instance\n */\n public getTabMode(): TabMode {\n return this.tabMode;\n }\n\n /**\n * Gets the effectiveType read-only property of the NetworkInformation interface (from navigator)\n * @returns {string} the effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionType(): string {\n return this.networkConnectionType;\n }\n\n /**\n * Gets the max dns+ssl+tcp resolving time over all video segments\n * @returns {number} max dns+ssl+tcp in seconds\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionOverhead(): number {\n // convert ms to seconds in 0.xxx format\n return Math.round(this.maxNetworkConnectionOverhead) / 1000;\n }\n\n /**\n * Gets the error code.\n * @returns {number} - The error code.\n * @memberof KavaModel\n * @instance\n */\n public getErrorCode(): number {\n return this.errorCode;\n }\n\n /**\n * Gets the flavor id from ID3 tag in the packager\n * @returns {number} - The flavor id.\n * @memberof KavaModel\n * @instance\n */\n public getFlavorParamsId(): number {\n return this.flavorParamsId;\n }\n\n /**\n * Gets the error additional data.\n * @returns {string} - The stringifyed error data.\n * @memberof KavaModel\n * @instance\n */\n public getErrorDetails(): string {\n let retVal: string = '';\n if (this.errorDetails) {\n try {\n retVal = JSON.stringify(this.errorDetails);\n } catch (e) {\n // do nothing\n }\n }\n return retVal;\n }\n\n /**\n * Gets the event index counter.\n * @returns {number} - The event index counter.\n * @memberof KavaModel\n * @instance\n */\n public getEventIndex(): number {\n return this.eventIndex;\n }\n\n /**\n * Gets the error position (start or mid playing)\n * @returns {number} - The error position - 1 for pre playing, 2 for mid stream error\n * @memberof KavaModel\n * @instance\n */\n public getErrorPosition(): ErrorPosition {\n return this.errorPosition;\n }\n\n /**\n * Gets the session start time.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getSessionStartTime(): number {\n return this.sessionStartTime;\n }\n\n /**\n * Gets the share network name.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getShareNetworkName(): string {\n return this.shareNetworkName;\n }\n\n public getReportType(): number {\n return this.reportType;\n }\n\n public getPlaybackMode(): number {\n return this.playbackMode;\n }\n\n /**\n * Gets the source entry id - the entry id that the current part of a simulive entry was generated from.\n * @returns {string} - Source entry id.\n * @memberof KavaModel\n * @instance\n */\n public getSourceEntryId(): string | null {\n return this.sourceEntryId;\n }\n\n /**\n * Updates the model.\n * @param {Object} obj - A partial or full updated model.\n * @returns {void}\n * @memberof KavaModel\n * @instance\n */\n public updateModel(obj: object): void {\n Object.assign(this, obj);\n }\n\n /**\n * Gets the model for a certain event.\n * @param {KavaEvent} eventObj - The event object.\n * @param {EventBucketName} eventBucketName - The dashboard name in kava dashboards.\n * @param {any} eventPayload - The original player event payload.\n * @returns {Object} - The event model.\n * @memberof KavaModel\n * @instance\n */\n public getModel(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): any {\n switch (eventBucketName) {\n case EventBucketName.PlayerEvents:\n return getEventModel(eventObj, this);\n case EventBucketName.ApplicationEvents:\n return getApplicationEventsModel(eventObj, this, eventPayload);\n }\n }\n}\n\nenum SoundMode {\n SOUND_OFF = 1,\n SOUND_ON = 2\n}\n\nenum ViewabilityMode {\n NOT_IN_VIEW = 1,\n IN_VIEW = 2\n}\n\nenum TabMode {\n TAB_NOT_FOCUSED = 1,\n TAB_FOCUSED = 2\n}\n\nenum ScreenMode {\n NOT_IN_FULLSCREEN = 1,\n FULLSCREEN = 2\n}\n\nenum ErrorPosition {\n PRE_PLAY = 3,\n PRE_PLAYING = 1,\n MID_STREAM = 2\n}\n\nexport { KavaModel, SoundMode, TabMode, ErrorPosition, ScreenMode, ViewabilityMode };\n","import { KavaHttpMethodType } from '../types';\n\nconst HttpMethodType: KavaHttpMethodType = {\n GET: 'GET',\n POST: 'POST'\n};\n\nexport { HttpMethodType };\n","export enum Application {\n REELS = 'reels',\n AUDIO = 'audio',\n VIDEO = 'video'\n}\n","export enum PlayerSkin {\n PLAYER = 1,\n AUDIO = 2,\n REELS = 3\n}\n","/**\n * Logs failed events to browser's local storage\n * @param {any} error - The error that occurred\n * @param {KavaModel} model - The Kava model\n * @returns {void}\n */\nimport { KavaModel } from './kava-model';\nimport { LocalStorageManager } from '@playkit-js/kaltura-player-js';\n\nconst FAILED_LIVE_EVENT_KEY_PREFIX = 'FailedLiveEvent_';\nconst FAILED_LIVE_COUNTER_KEY_PREFIX = 'FailedLiveEventCounter_';\nexport const NUM_OF_LOGGED_FAILED_EVENTS: number = 100;\n\nexport class LogFailedLiveEvents {\n private logger: any;\n private numOfLoggedFailedEvents: any;\n constructor(logger: any, numOfLoggedFailedEvents: any) {\n this.logger = logger;\n this.numOfLoggedFailedEvents = numOfLoggedFailedEvents || NUM_OF_LOGGED_FAILED_EVENTS;\n }\n\n public logFailedLiveAnalyticsEventsToLocalStorage(error: any, model: KavaModel): void {\n // Get essential event info from model\n const eventType = model['eventType'] || 'unknown';\n const entryId = model['entryId'] || 'unknown';\n const sessionId = model['sessionId'] || 'unknown';\n const partnerId = model['partnerId'] || 'unknown';\n const position = model['position'] || 0;\n const errorDetails = model['errorDetails'] || null;\n const numOfLoggedFailedEvents = this.numOfLoggedFailedEvents;\n\n // Construct storage key\n const storageKey = `${FAILED_LIVE_EVENT_KEY_PREFIX}-${entryId}`;\n\n // Create the data object to store\n const dataToStore = {\n error: error,\n model: {\n // Store essential properties only to avoid localStorage size issues\n eventType,\n entryId,\n sessionId,\n partnerId,\n position,\n errorDetails\n }\n };\n\n //In case that we log error, add counter to the localstorage of how many failures\n const failureCountKey = this.getFailedCounterKey(entryId);\n try {\n const counter = LocalStorageManager.getItem(failureCountKey) || 0;\n LocalStorageManager.setItem(failureCountKey, counter + 1);\n this.appendNewFailedLiveEventToLocalStorage(dataToStore, storageKey, numOfLoggedFailedEvents);\n } catch (e) {\n this.logger.warn('Failed to store failed event in localStorage:', e);\n }\n }\n\n private appendNewFailedLiveEventToLocalStorage(data: any, storageKey: string, tailLength: number): void {\n //get the stored object from localStorage\n const storedObject = LocalStorageManager.getItem(storageKey);\n // If the stored object is not an array, initialize it\n let storedArray: any[] = storedObject ? storedObject : [];\n // Append the new data to the array\n storedArray.push({ date: new Date(), data });\n // If the array exceeds the tail length, remove the oldest items\n if (storedArray.length > tailLength) {\n storedArray = storedArray.slice(storedArray.length - tailLength);\n }\n // Store the updated array back to localStorage\n LocalStorageManager.setItem(storageKey, JSON.stringify(storedArray));\n }\n\n public getFailedCounterKey(entryId: string): string {\n return `${FAILED_LIVE_COUNTER_KEY_PREFIX}-${entryId}`;\n }\n\n public getNumFailedAnalyticReports(entryId: string): number {\n return parseInt(LocalStorageManager.getItem(this.getFailedCounterKey(entryId)) || 0);\n }\n}\n","import { BasePlugin, core, KalturaPlayer } from '@playkit-js/kaltura-player-js';\nimport { FakeEvent, VideoTrack } from '@playkit-js/playkit-js';\nimport { OVPAnalyticsService } from '@playkit-js/playkit-js-providers/analytics-service';\nimport { KavaEventModel, KavaEventType } from './kava-event-model';\nimport { KavaRateHandler } from './kava-rate-handler';\nimport { KavaTimer } from './kava-timer';\nimport { ErrorPosition, KavaModel, ScreenMode, SoundMode, TabMode, ViewabilityMode } from './kava-model';\nimport { HttpMethodType } from './enums/http-method-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { KavaConfigObject, KavaEvent } from './types';\nimport { DownloadEvent, InfoEvent, ModerationEvent, RelatedEvent, ShareEvent } from './temp-imported-plugins-event-names-temp';\nimport { PluginsEvents, PlaykitUIEvents, KavaEvents } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel, getApplicationEventsModel } from './application-events-model';\nimport { Application } from './enums/application';\nimport { PlayerSkin } from './enums/player-skin';\nimport { LogFailedLiveEvents, NUM_OF_LOGGED_FAILED_EVENTS } from './log-failed-live-events';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n private _lastViewEventPlayTime: number = -1;\n private _logFailedLiveEvents: LogFailedLiveEvents;\n\n /**\n * Default config of the plugin.\n * @type {Object}\n * @static\n * @memberof Kava\n */\n public static defaultConfig: any = {\n serviceUrl: `${Utils.Http.protocol}//analytics.kaltura.com/api_v3/index.php`,\n requestMethod: HttpMethodType.POST,\n viewEventCountdown: 10,\n resetSessionCountdown: 30,\n dvrThreshold: 120,\n playbackContext: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: 'PLAYER',\n hostingKalturaApplication: '',\n hostingKalturaApplicationVersion: '',\n numOfLoggedFailedEvents: NUM_OF_LOGGED_FAILED_EVENTS\n };\n\n /**\n * @static\n * @return {boolean} - Whether the plugin is valid in the current environment.\n * @memberof Kava\n */\n public static isValid(): boolean {\n return true;\n }\n\n constructor(name: string, player: KalturaPlayer, config: KavaConfigObject) {\n super(name, player, config);\n this._logFailedLiveEvents = new LogFailedLiveEvents(this.logger, config.numOfLoggedFailedEvents);\n this._rateHandler = new KavaRateHandler();\n this._model = new KavaModel();\n this._setModelDelegates();\n this._timer = new KavaTimer({\n resetCounter: this.config.resetSessionCountdown,\n eventCounter: this.config.viewEventCountdown\n });\n this._viewEventEnabled = true;\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n // check the Resource Timing API is supported in the browser and we have a uiConfId\n if (performance && this.config.uiConfId) {\n const entry = performance.getEntriesByType('resource').find((entry) => entry.name.match('embedPlaykitJs.*' + this.config.uiConfId));\n if (entry) {\n this._model.updateModel({ playerJSLoadTime: entry.duration });\n }\n }\n }\n\n private _updateSoundModeInModel(): void {\n this._model.updateModel({\n soundMode: this.player.muted || this.player.volume === 0 ? SoundMode.SOUND_OFF : SoundMode.SOUND_ON\n });\n }\n\n private _updateViewabilityModeInModel(isVisible: boolean): void {\n this._model.updateModel({\n viewabilityMode: isVisible || this.player.isInPictureInPicture() ? ViewabilityMode.IN_VIEW : ViewabilityMode.NOT_IN_VIEW\n });\n }\n\n private _handleNewPerformanceEntries(list: PerformanceObserverEntryList): void {\n const perfEntries = list.getEntries();\n for (let i = 0; i < perfEntries.length; i++) {\n this._performanceEntries.push(perfEntries[i]);\n }\n while (this._pendingFragLoadedUrls.length) {\n // handle frag loaded events which haven't been added to the entry list yet\n this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop()!);\n }\n }\n\n /**\n * Destroys the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public destroy(): void {\n this.eventManager.destroy();\n this._reset();\n }\n\n private _reset(): void {\n this._timer.destroy();\n this._rateHandler.destroy();\n if (this._performanceObserver) {\n this._performanceObserver.disconnect();\n }\n this._performanceEntries = [];\n this._pendingFragLoadedUrls = [];\n }\n\n /**\n * Reset the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public reset(): void {\n this.eventManager.removeAll();\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0,\n sessionStartTime: null\n });\n this._reset();\n }\n\n /**\n * loadMedia of the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public loadMedia(): void {\n if (window.PerformanceObserver) {\n this._performanceObserver = new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this));\n this._performanceObserver.observe({ entryTypes: ['resource'] });\n }\n }\n\n /**\n * Gets the model object for a certain event.\n * @param {string} event - Event name.\n * @returns {Object} - Model object.\n * @instance\n * @memberof Kava\n * @example\n * const kava = player.plugins.kava;\n * const viewModel = kava.getEventModel(kava.EventType.VIEW);\n * kava.sendAnalytics(viewModel);\n */\n public getEventModel(event: string): any {\n if (event) {\n return this._model.getModel(KavaEventModel[event]);\n }\n }\n\n /**\n * @returns {KavaEventType} - The kava events list.\n * @instance\n * @memberof Kava\n */\n public get EventType(): { [event: string]: string } {\n return Utils.Object.copyDeep(KavaEventType);\n }\n\n /**\n * Sends KAVA analytics event to analytics service.\n * @param {Object} model - Event model.\n * @returns {Promise} - Promise to indicate request succeed or failed.\n * @instance\n * @memberof Kava\n * @example\n * player.plugins.kava.sendAnalytics({...})\n * .then(() => {\n * console.log('kava analytics sent successfully');\n * })\n * .catch(e => {\n * console.log('kava analytics send failed', e);\n * });\n */\n public sendAnalytics(model: any): Promise<void> {\n return new Promise((resolve, reject) => {\n OVPAnalyticsService.trackEvent(this.config.serviceUrl, model, this.config.requestMethod)\n .doHttpRequest()\n .then(\n (response) => {\n this._handleServerResponseSuccess(response, model);\n resolve();\n },\n (err) => {\n this._handleServerResponseFailed(err, model);\n reject(err);\n }\n );\n this._model.updateModel({ eventIndex: this._model.getEventIndex() + 1 });\n });\n }\n\n private _resetFlags(): void {\n this._previousCurrentTime = 0;\n this._lastViewEventPlayTime = -1;\n this._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private shouldLogLiveAnalyticsFailures(): boolean {\n return this.config?.logLiveAnalyticsFailures && this.player?.isLive();\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n const event: Partial<FakeEvent> = {\n type: KavaEvents.KAVA_REQUEST_SUCCEEDED,\n payload: { response, model }\n };\n this.player.dispatchEvent(event as FakeEvent);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n if (this.shouldLogLiveAnalyticsFailures()) {\n this._logFailedLiveEvents.logFailedLiveAnalyticsEventsToLocalStorage(err, model);\n }\n this.logger.warn('Failed to send KAVA event', model, err);\n const event: Partial<FakeEvent> = {\n type: KavaEvents.KAVA_REQUEST_FAILED,\n payload: { error: err, model }\n };\n this.player.dispatchEvent(event as FakeEvent);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_25_PERCENT, (event) => this._onPlayerReached(event));\n this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_50_PERCENT, (event) => this._onPlayerReached(event));\n this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_75_PERCENT, (event) => this._onPlayerReached(event));\n this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_90_PERCENT, (event) => this._onPlayerReached(event));\n this.eventManager.listenOnce(this.player, this.player.Event.Core.PLAY_REACHED_100_PERCENT, (event) => this._onPlayerReached(event));\n this._bindApplicationEvents();\n this._bindPlaykitUIEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\n }\n\n private _bindPlaykitUIEvents(): void {\n Object.values(PlaykitUIEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _bindApplicationEvents(): void {\n Object.values(PluginsEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _onFirstPlaying(): void {\n this._isPlaying = true;\n if (!this._fragLoadedFiredOnce && this._performanceObserver) {\n this._performanceObserver.disconnect();\n this.logger.debug(\"This adapter / media doesn't fire fragLoaded - disconnect performance observer\");\n }\n }\n\n private _onLoadStart(): void {\n this._loadStartTime = Date.now();\n }\n\n private _getRates(): Array<number> {\n const rates: number[] = [];\n const videoTracks: VideoTrack[] = this.player.getTracks(this.player.Track.VIDEO) as unknown as VideoTrack[];\n videoTracks.forEach((videoTrack) => rates.push(videoTrack.bandwidth / DIVIDER));\n return rates;\n }\n\n private _setInitialTracks(): void {\n const rates = this._getRates();\n const activeTracks = this.player.getActiveTracks();\n this._rateHandler.setRates(rates);\n if (activeTracks.video) {\n this._rateHandler.setCurrent(activeTracks.video.bandwidth / DIVIDER);\n }\n if (activeTracks.audio) {\n this._model.updateModel({ language: activeTracks.audio.language });\n }\n if (activeTracks.text) {\n this._model.updateModel({ caption: activeTracks.text.language });\n }\n }\n\n /**\n * gets the available buffer length\n * @returns {number} the remaining buffer length of the current played time range\n * @private\n */\n private _getAvailableBuffer(): number {\n let availableBuffer = NaN;\n if (this.player.stats) {\n availableBuffer = this.player.stats.availableBuffer;\n }\n return availableBuffer;\n }\n\n /**\n * calculates the forward buffer health ratio\n * @returns {number} the ratio between available buffer and the target buffer\n * @private\n */\n private _getForwardBufferHealth(): number {\n let forwardBufferHealth = NaN;\n const availableBuffer = this._getAvailableBuffer();\n const targetBuffer = this._getTargetBuffer();\n\n if (!isNaN(targetBuffer)) {\n // considering playback left to the target calculation\n forwardBufferHealth = Math.round((availableBuffer * 1000) / targetBuffer) / 1000;\n }\n\n return forwardBufferHealth;\n }\n\n /**\n * get the target buffer length from the player\n * @returns {number} the target buffer in seconds\n * @private\n */\n private _getTargetBuffer(): number {\n let targetBuffer = NaN;\n if (this.player.stats) {\n targetBuffer = this.player.stats.targetBuffer;\n }\n return targetBuffer;\n }\n\n /**\n * calculates the dropped frames ratio since last call\n * @returns {number} the ratio between dropped frames and the total frames\n * @private\n */\n private _getDroppedFramesRatio(): number {\n let droppedFrames = -1;\n const droppedAndDecoded: [number, number] | null = this._getDroppedAndDecodedFrames();\n if (droppedAndDecoded) {\n const lastDroppedFrames = droppedAndDecoded[0];\n const lastTotalFrames = droppedAndDecoded[1];\n const droppedFramesDelta = lastDroppedFrames - this._lastDroppedFrames;\n const totalFramesDelta = lastTotalFrames - this._lastTotalFrames;\n droppedFrames = totalFramesDelta ? Math.round((droppedFramesDelta / totalFramesDelta) * 1000) / 1000 : 0;\n\n this._lastTotalFrames = lastTotalFrames;\n this._lastDroppedFrames = lastDroppedFrames;\n }\n return droppedFrames;\n }\n\n /**\n * returns dropped and total frames from the VideoPlaybackQuality Interface of the browser (if supported)\n * @returns {number} {number} the number of video frames dropped and total video frames (created and dropped)\n * since the creation of the associated HTMLVideoElement\n * @private\n */\n private _getDroppedAndDecodedFrames(): [number, number] | null {\n if (typeof this.player.getVideoElement()!.getVideoPlaybackQuality === 'function') {\n const videoPlaybackQuality = this.player.getVideoElement()!.getVideoPlaybackQuality();\n return [videoPlaybackQuality.droppedVideoFrames, videoPlaybackQuality.totalVideoFrames];\n } else if (\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDroppedFrameCount === 'number' &&\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDecodedFrameCount === 'number'\n ) {\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n return [this.player.getVideoElement().webkitDroppedFrameCount, this.player.getVideoElement().webkitDecodedFrameCount];\n } else {\n return null;\n }\n }\n\n private _onReport(): void {\n if (this._viewEventEnabled) {\n this._updatePlayTimeSumModel();\n this._model.updateModel({\n forwardBufferHealth: this._getForwardBufferHealth(),\n targetBuffer: this._getTargetBuffer(),\n droppedFramesRatio: this._getDroppedFramesRatio()\n });\n if (this._lastViewEventPlayTime !== this._model.getPlayTimeSum()) {\n this._lastViewEventPlayTime = this._model.getPlayTimeSum();\n this._sendAnalytics(KavaEventModel.VIEW);\n } else {\n this.logger.warn(`VIEW event blocked because view event with same time already sent: ${this._lastViewEventPlayTime}`);\n }\n } else {\n this.logger.warn('VIEW event blocked because server response of viewEventsEnabled=false');\n }\n this._model.updateModel({\n totalSegmentsDownloadTime: 0,\n totalSegmentsDownloadBytes: 0,\n maxManifestDownloadTime: 0,\n maxSegmentDownloadTime: 0,\n maxNetworkConnectionOverhead: 0,\n bufferTime: 0\n });\n }\n\n private _updateNetworkConnectionTypeinModel(navConnection: any): void {\n this._model.updateModel({\n networkConnectionType: navConnection.effectiveType\n });\n }\n\n private _initNetworkConnectionType(): void {\n // @ts-expect-error - Property 'webkitConnection' does not exist on type 'Navigator'\n const navConnection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection;\n\n if (navConnection) {\n this.eventManager.listen(navConnection, 'change', () => this._updateNetworkConnectionTypeinModel(navConnection));\n this._updateNetworkConnectionTypeinModel(navConnection);\n }\n }\n\n private _onPlaying(): void {\n if (this._isFirstPlaying) {\n this._updateSoundModeInModel();\n this._updateViewabilityModeInModel(this.player.isVisible);\n if (!this.player.isUntimedImg()) this._timer.start();\n this._isFirstPlaying = false;\n const playRequestStartTime =\n this.player.config.playback.preload === 'auto' || this._isManualPreload ? this._firstPlayRequestTime : this._loadStartTime;\n this._model.updateModel({\n joinTime: Kava._getTimeDifferenceInSeconds(playRequestStartTime)\n });\n this._sendAnalytics(KavaEventModel.PLAY);\n this._onReport();\n } else if (this._isEnded) {\n this._timer.start();\n this._isEnded = false;\n this._sendAnalytics(KavaEventModel.REPLAY);\n } else if (this._isPaused) {\n this._timer.resume();\n this._isPaused = false;\n this._sendAnalytics(KavaEventModel.RESUME);\n }\n }\n\n private _onCanPlay(): void {\n this._canPlayOccured = true;\n this._model.updateModel({\n canPlayTime: Kava._getTimeDifferenceInSeconds(this._loadStartTime)\n });\n }\n\n private _onFirstPlay(): void {\n if (this._canPlayOccured) {\n this._isManualPreload = true;\n }\n this._isFirstPlay = false;\n this._firstPlayRequestTime = Date.now();\n this._sendAnalytics(KavaEventModel.PLAY_REQUEST);\n }\n\n private _onSourceSelected(): void {\n const plugins = Object.values(this.player.plugins).map((plugin: any) => plugin.name);\n this._model.updateModel({ registeredPlugins: plugins.join(',') });\n\n this._sendAnalytics(KavaEventModel.IMPRESSION);\n\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n }\n\n private _onPlayerReached(event: FakeEvent): void {\n if (event.type === this.player.Event.Core.PLAY_REACHED_25_PERCENT) {\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n } else if (event.type === this.player.Event.Core.PLAY_REACHED_50_PERCENT) {\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n } else if (event.type === this.player.Event.Core.PLAY_REACHED_75_PERCENT) {\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n } else if (event.type === this.player.Event.Core.PLAY_REACHED_90_PERCENT) {\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_90_PERCENT);\n } else if (event.type === this.player.Event.Core.PLAY_REACHED_100_PERCENT) {\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n const data = JSON.parse(id3TagCues[id3TagCues.length - 1].value.data);\n this._model.updateModel({ flavorParamsId: Number(data.sequenceId) });\n\n if (data.clipId) {\n const [partType, entryId] = data.clipId.split('-');\n\n switch (partType) {\n case 'preStartContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 1 });\n break;\n }\n case 'content': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 2 });\n break;\n }\n case 'postEntryContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 3 });\n break;\n }\n default:\n break;\n }\n }\n } catch (e) {\n this.logger.debug('error parsing id3', e);\n }\n }\n }\n\n private _onVideoTrackChanged(event: FakeEvent): void {\n const videoTrack = event.payload.selectedVideoTrack;\n this._rateHandler.setCurrent(videoTrack.bandwidth / DIVIDER);\n if (this.player.isAdaptiveBitrateEnabled()) {\n this._sendAnalytics(KavaEventModel.FLAVOR_SWITCH);\n } else {\n this._sendAnalytics(KavaEventModel.SOURCE_SELECTED);\n }\n }\n\n private _onAudioTrackChanged(event: FakeEvent): void {\n const audioTrack = event.payload.selectedAudioTrack;\n this._model.updateModel({ language: audioTrack.language });\n this._sendAnalytics(KavaEventModel.AUDIO_SELECTED);\n }\n\n private _onTextTrackChanged(event: FakeEvent): void {\n if (this._isPlaying) {\n const textTrack = event.payload.selectedTextTrack;\n this._model.updateModel({ caption: textTrack.language });\n this._sendAnalytics(KavaEventModel.CAPTIONS);\n }\n }\n\n private _onError(event: FakeEvent): void {\n if (event.payload && event.payload.severity === PKError.Severity.CRITICAL) {\n this._model.updateModel({\n errorCode: event.payload.code,\n errorDetails: event.payload.data,\n errorPosition: this._isFirstPlay ? ErrorPosition.PRE_PLAY : this._isFirstPlaying ? ErrorPosition.PRE_PLAYING : ErrorPosition.MID_STREAM\n });\n this._sendAnalytics(KavaEventModel.ERROR);\n this.reset();\n }\n }\n\n private _onPlaybackRateChanged(): void {\n if (!this.player.playbackRates.length || this.player.playbackRates.includes(this.player.playbackRate!)) {\n this._sendAnalytics(KavaEventModel.SPEED);\n }\n }\n\n private _onPlayerStateChanged(event: FakeEvent): void {\n const oldState = event.payload.oldState;\n const newState = event.payload.newState;\n if (oldState.type === this.player.State.BUFFERING) {\n this._isBuffering = false;\n this._updateBufferModel();\n this._sendAnalytics(KavaEventModel.BUFFER_END);\n }\n if (newState.type === this.player.State.BUFFERING) {\n this._isBuffering = true;\n this._bufferStartTime = Date.now();\n this._sendAnalytics(KavaEventModel.BUFFER_START);\n }\n }\n\n private _onRelatedClicked(): void {\n this._sendAnalytics(KavaEventModel.RELATED_OPEN);\n }\n\n private _onRelatedSelected(): void {\n this._sendAnalytics(KavaEventModel.RELATED_SELECTED);\n }\n\n private _onShareClicked(): void {\n this._sendAnalytics(KavaEventModel.SHARE_CLICKED);\n }\n\n private _onShareNetworkClicked(event: FakeEvent): void {\n const shareNetworkName = event.payload.shareNetworkName;\n if (shareNetworkName) {\n this._model.updateModel({ shareNetworkName: shareNetworkName });\n this._sendAnalytics(KavaEventModel.SHARE_NETWORK);\n }\n }\n\n private _onReportSubmitted(event: FakeEvent): void {\n const reportType = event.payload.reportType;\n if (reportType) {\n this._model.updateModel({ reportType });\n this._sendAnalytics(KavaEventModel.REPORT_SUBMITTED);\n }\n }\n\n private _onReportClicked(): void {\n this._sendAnalytics(KavaEventModel.REPORT_CLICKED);\n }\n\n private _onInfoScreenOpened(): void {\n this._sendAnalytics(KavaEventModel.INFO);\n }\n\n private _onDownloadItemClicked(): void {\n this._sendAnalytics(KavaEventModel.DOWNLOAD);\n }\n\n private _onFullScreenChanged(screenMode: number): void {\n this._model.updateModel({ screenMode: screenMode });\n this._sendAnalytics(screenMode === ScreenMode.FULLSCREEN ? KavaEventModel.ENTER_FULLSCREEN : KavaEventModel.EXIT_FULLSCREEN);\n }\n\n private _updateSessionStartTimeModel(response: any | number): void {\n if (!this._model.getSessionStartTime() && response) {\n if (typeof response === 'object') {\n this._model.updateModel({ sessionStartTime: response.time });\n this._viewEventEnabled = response.viewEventsEnabled;\n } else {\n this._model.updateModel({ sessionStartTime: response });\n }\n }\n if (this._timer.isStopped()) {\n this._model.updateModel({ sessionStartTime: null });\n }\n }\n\n private _updateBufferModel(): void {\n const duration = Kava._getTimeDifferenceInSeconds(this._bufferStartTime);\n this._model.updateModel({\n bufferTime: this._model.getBufferTime() + duration,\n bufferTimeSum: this._model.getBufferTimeSum() + duration\n });\n }\n\n private _updatePlayTimeSumModel(): void {\n let delta;\n if (this.player.isLive()) {\n delta = this.config.viewEventCountdown - this._model.getBufferTime();\n } else {\n delta = this.player.currentTime! - this._previousCurrentTime;\n this._previousCurrentTime = this.player.currentTime!;\n }\n this._model.updateModel({ playTimeSum: this._model.getPlayTimeSum() + delta });\n }\n\n private _setModelDelegates(): void {\n this._model.getPlaybackSpeed = (): number | null => this.player.playbackRate;\n this._model.getActualBitrate = (): number => this._rateHandler.getCurrent();\n this._model.getAverageBitrate = (): number => this._rateHandler.getAverage();\n this._model.getPartnerId = (): number => this.config.partnerId;\n this._model.getEntryId = (): string => this.config.entryId;\n this._model.getPlaylistId = (): string => this.config.playlistId;\n this._model.getSessionId = (): string => this.config.sessionId;\n this._model.getPersistentSessionId = (): string => this.config.persistentSessionId;\n this._model.getClientVer = (): string => this.config.playerVersion;\n this._model.getClientTag = (): string => 'html5:v' + this.config.playerVersion;\n this._model.getKS = (): string => this.config.ks;\n this._model.getVirtualEventId = (): string => this.config.virtualEventId;\n this._model.getUIConfId = (): string => this.config.uiConfId;\n this._model.getReferrer = (): string => this.config.referrer;\n this._model.getCustomVar1 = (): string => this.config.customVar1;\n this._model.getCustomVar2 = (): string => this.config.customVar2;\n this._model.getCustomVar3 = (): string => this.config.customVar3;\n this._model.getPosition = (): number => this._getPosition();\n this._model.getDeliveryType = (): string => this._getDeliveryType();\n this._model.getPlaybackType = (): string => this._getPlaybackType();\n this._model.getPlaybackContext = (): string => this.config.playbackContext;\n this._model.getApplication = (playerEvent?: boolean): string => this._getApplication(playerEvent);\n this._model.getKalturaApplicationVersion = (): string => this.config.kalturaApplicationVersion;\n this._model.getKalturaApplication = (): string => this._getKalturaApplicationId(this.config.kalturaApplication);\n this._model.getUserId = (): string => this.config.userId;\n this._model.getHostingKalturaApplication = (): string => this.config.application;\n this._model.getHostingKalturaApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getPlayerSkin = (): number => this._getPlayerSkin();\n this._model.getV2ToV7Redirect = (): boolean => this.player.isV2ToV7Redirected;\n this._model.getNumFailedAnalyticReports = (): number => this._logFailedLiveEvents.getNumFailedAnalyticReports(this.config.entryId);\n }\n\n private _getApplication(playerEvent = true): string {\n // for player event, we want to return the application value from the configuration\n // otherwise (i.e. application event), we want to return the player type\n return playerEvent ? this.config.application : this._getPlayerType();\n }\n\n private _getPlayerType(): Application {\n if (this.player.plugins.reels !== undefined) {\n return Application.REELS;\n } else if (this.player.plugins.audioPlayer !== undefined) {\n return Application.AUDIO;\n } else {\n return Application.VIDEO;\n }\n }\n\n private _getPlayerSkin(): PlayerSkin {\n if (this.player.plugins.reels !== undefined) {\n return PlayerSkin.REELS;\n } else if (this.player.plugins.audioPlayer !== undefined) {\n return PlayerSkin.AUDIO;\n } else {\n return PlayerSkin.PLAYER;\n }\n }\n\n private _getKalturaApplicationId(kalturaAppName: string): string {\n if (kalturaAppName in KalturaApplication) {\n return KalturaApplication[kalturaAppName];\n } else {\n this.logger.warn('Kava analytics - unknon kalturaAppName: ' + kalturaAppName);\n return '';\n }\n }\n\n private _getPosition(): number {\n if (this.player.isLive()) {\n if (!Number.isNaN(this.player.duration)) {\n if (this.player.duration! - this.player.currentTime! < 1) {\n return 0;\n }\n return -(this.player.duration! - this.player.currentTime!);\n }\n return 0;\n }\n let currentTime = this.player.currentTime;\n if (typeof this.player.sources.seekFrom === 'number' && currentTime) {\n currentTime += this.player.sources.seekFrom;\n }\n return this._isFirstPlaying ? currentTime! || this.player.sources.startTime || 0 : currentTime!;\n }\n\n private _getDeliveryType(): string {\n if (this.player.streamType === this.player.StreamType.PROGRESSIVE) {\n return 'url';\n }\n return this.player.streamType;\n }\n\n private _getPlaybackType(): string {\n if (this.player.isLive()) {\n if (this.player.isDvr()) {\n const distanceFromLiveEdge = this.player.duration! - this.player.currentTime!;\n if (distanceFromLiveEdge >= this.config.dvrThreshold) {\n return 'dvr';\n }\n }\n return 'live';\n }\n return 'vod';\n }\n\n private _validate(): boolean {\n if (!this.config.partnerId) {\n this._logMissingParam('partnerId');\n return false;\n }\n if (!this.config.entryId) {\n this._logMissingParam('entryId');\n return false;\n }\n return true;\n }\n\n private _isApplicationEventValid(event: FakeEvent): boolean {\n const model = getApplicationEventsModel(ApplicationEventsModel[event.type], this._model, event.payload);\n return !!model.buttonName || !!model.pageName;\n }\n\n private _logMissingParam(missingParam: string): void {\n this.logger.warn(`Kava analytics block report because of missing param ${missingParam}`);\n }\n\n private static _getTimeDifferenceInSeconds(time: number): number {\n return (Date.now() - time) / 1000.0;\n }\n\n private _updateTabModeInModel(hiddenAttr: string): void {\n this._model.updateModel({\n // $FlowFixMe\n tabMode: this._isTabHidden(hiddenAttr) && !this.player.isInPictureInPicture() ? TabMode.TAB_NOT_FOCUSED : TabMode.TAB_FOCUSED\n });\n }\n\n private _isTabHidden(hiddenAttr: string): boolean {\n return document[hiddenAttr];\n }\n\n private _initTabMode(): void {\n let hiddenAttr: string;\n let visibilityChangeEventName: string;\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hiddenAttr = 'hidden';\n visibilityChangeEventName = 'visibilitychange';\n // @ts-expect-error - Property 'msHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.msHidden !== 'undefined') {\n hiddenAttr = 'msHidden';\n visibilityChangeEventName = 'msvisibilitychange';\n // @ts-expect-error - Property 'webkitHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.webkitHidden !== 'undefined') {\n hiddenAttr = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n // @ts-expect-error - Variable 'visibilityChangeEventName' is used before being assigned.\n if (hiddenAttr && visibilityChangeEventName) {\n this.eventManager.listen(document, visibilityChangeEventName, () => this._updateTabModeInModel(hiddenAttr));\n this._updateTabModeInModel(hiddenAttr);\n }\n }\n}\n\nexport { Kava };\n","export const DownloadEvent = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked'\n};\n\nexport const ModerationEvent = {\n REPORT_CLICKED: 'report_clicked',\n REPORT_SUBMITTED: 'report_submitted'\n};\n\nexport const ShareEvent = {\n /**\n * Fired when the user clicks on share icon.\n */\n SHARE_CLICKED: 'share_clicked',\n /**\n * Fired when the user clicks on specific social network.\n */\n SHARE_NETWORK: 'share_network'\n};\n\nexport const RelatedEvent = {\n /**\n * Fired when the user selects an entry from the list or the grid.\n */\n RELATED_SELECTED: 'related_selected',\n /**\n * Fired when the user clicks the button to show the related list.\n */\n RELATED_OPEN: 'related_open',\n /**\n * Fired when the user clicks to close the related list.\n */\n RELATED_CLOSE: 'related_close'\n};\n\nexport const InfoEvent = {\n INFO_SCREEN_OPEN: 'info_screen_open'\n};\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\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(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _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}","import { registerPlugin } from '@playkit-js/kaltura-player-js';\nimport { Kava } from './kava';\n\ndeclare const __VERSION__: string;\ndeclare const __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport { Kava as Plugin };\nexport { KavaEventType as EventType } from './kava-event-model';\nexport { HttpMethodType } from './enums/http-method-type';\nexport { VERSION, NAME };\n\nconst pluginName: string = 'kava';\n\nregisterPlugin(pluginName, Kava);\n"],"names":["root","factory","exports","module","define","amd","self","e","d","t","r","n","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","TypeError","iterator","constructor","toPrimitive","String","i","length","configurable","writable","key","s","a","NAME","P","OVPAnalyticsService","A","OVPConfiguration","h","RequestBuilder","l","VERSION","C","f","arguments","this","severity","category","code","data","_logger","error","concat","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","DEBUG","name","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Map","async","timeout","maxAttempts","headers","service","action","Promise","_requestPromise","resolve","reject","url","Severity","Category","Code","_createXHR","XMLHttpRequest","onreadystatechange","readyState","status","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","toLowerCase","indexOf","_attemptCounter","assign","attempt","p","Array","isArray","slice","keys","y","serviceUrl","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","v","setPrototypeOf","bind","__proto__","create","m","ReferenceError","g","E","getPrototypeOf","R","objectType","hasError","O","message","b","Reflect","construct","sham","Proxy","Boolean","valueOf","apply","requests","push","stringify","FAILED_PARSING_REQUEST","doHttpRequest","then","_","success","response","results","result","map","T","toString","encodeURIComponent","u","c","test","join","replace","S","_trackEventByPOST","_trackEventByGET","tag","set","eventType","partnerId","entryId","sessionId","ks","clientTag","getUrl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","obj","prop","KalturaPlayer","_typeof","_arrayLikeToArray","arr","len","arr2","_classCallCheck","instance","Constructor","toPropertyKey","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_assertThisInitialized","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_defineProperty","KavaEventModel","VIEW","type","index","getEventModel","model","eventModel","playTimeSum","getPlayTimeSum","bufferTime","getBufferTime","bufferTimeSum","getBufferTimeSum","actualBitrate","getActualBitrate","averageBitrate","getAverageBitrate","audioLanguage","getLanguage","soundMode","getSoundMode","tabMode","getTabMode","viewabilityMode","getViewabilityMode","screenMode","getScreenMode","isNaN","getForwardBufferHealth","forwardBufferHealth","getMaxManifestDownloadTime","manifestDownloadTime","getSegmentDownloadTime","segmentDownloadTime","getBandwidth","bandwidth","getDroppedFramesRatio","droppedFramesRatio","getTargetBuffer","targetBuffer","getNetworkConnectionType","networkConnectionType","getNetworkConnectionOverhead","networkConnectionOverhead","getFlavorParamsId","flavorParamsId","getPlaybackMode","playbackMode","getSourceEntryId","sourceEntryId","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","isV2ToV7Redirected","getV2ToV7Redirect","registeredPlugins","getRegisteredPlugins","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","PLAY_REACHED_90_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","ApplicationEventType","PageLoadType","playkitUIEventsNamespace","PlaykitUIEvents","USER_CLICKED_LOGO","USER_SELECTED_CAPTIONS_SIZE","USER_SELECTED_CAPTIONS_WEIGHT","USER_SELECTED_CAPTIONS_ALIGNMENT","USER_SELECTED_CAPTIONS_FONT_COLOR","USER_SELECTED_CAPTIONS_FONT_FAMILY","USER_SELECTED_CAPTIONS_FONT_STYLE","USER_SELECTED_CAPTIONS_FONT_OPACITY","USER_SELECTED_CAPTIONS_BACKGROUND_COLOR","USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY","USER_SHOWED_CAPTIONS","USER_HID_CAPTIONS","USER_SELECTED_CAPTION_TRACK","USER_SELECTED_AUDIO_TRACK","USER_COPIED_DEBUG_INFO","DISPLAY_INFO_BEFORE_PLAYBACK","USER_SELECTED_CAPTIONS_PRESET_MINIMALIST","USER_SELECTED_CAPTIONS_PRESET_HIGH_CONTRAST","USER_SELECTED_CAPTIONS_PRESET_CLASSIC_TV_STYLE","USER_SELECTED_CAPTIONS_PRESET_EASY_READING","USER_SELECTED_CAPTIONS_PRESET_EARLY_READERS","USER_SELECTED_CAPTIONS_PRESET_NIGHT_MODE","USER_SELECTED_CAPTIONS_CUSTOM","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","TRANSCRIPT_POPOUT_OPEN","TRANSCRIPT_POPOUT_CLOSE","TRANSCRIPT_POPOUT_DRAG","TRANSCRIPT_POPOUT_RESIZE","CHANGE_LAYOUT","SIDE_DISPLAYED","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","RELATED_ENTRY_SELECTED","RELATED_ENTRY_AUTO_PLAYED","RELATED_GRID_DISPLAYED","CALL_TO_ACTION_BUTTON_CLICK","CALL_TO_ACTION_DISPLAYED","HOTSPOT_CLICK","HOTSPOT_DISPLAYED","QUIZ_STARTED","QUIZ_SKIPPED","QUIZ_SEEK","QUESTION_ANSWERED","QUIZ_SUBMITTED","QUIZ_RETAKE","QUIZ_QUESTION_CHANGED","DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN","DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN","DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED","DETECT_AD_BLOCK_X_BUTTON_CLICKED","DETECT_AD_BLOCK_AD_BLOCKER_DISABLED","DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED","REELS_PLAY","REELS_PAUSE","REELS_MUTE","REELS_UNMUTE","REELS_SEEK","REELS_POSTER_CLICKED","REELS_ENTRY_LOADED","REELS_PLAYLIST_LOADED","EAD_ON","EAD_OFF","EAD_SKIP","EAD_REPLAY","EAD_PAUSE","EAD_RESUME","EAD_PLAY","EAD_SCROLL","SUMMARY_CHAPTERS_OPEN","SUMMARY_CHAPTERS_CLOSE","SUMMARY_CHAPTERS_READ_CHAPTERS","SUMMARY_CHAPTERS_READ_OVERVIEW","SUMMARY_CHAPTERS_COPY_TO_CLIPBOARD","SUMMARY_CHAPTERS_CHAPTER_EXPAND","SUMMARY_CHAPTERS_CHAPTER_COLLAPSE","SUMMARY_CHAPTERS_CHAPTER_SEEK","AUDIO_PLAYER_VISUALIZATION_STATE","CPE_TRACKER_HOVER","BANNER_MESSAGE_DISPLAYS","BANNER_MESSAGE_MANUALLY_DISMISSED","GENIE_OPEN_AUTO","GENIE_OPEN_MANUAL","GENIE_CLOSE","GENIE_NEW_THREAD","KalturaApplication","KMC","KMS","KAF","PITCH","KMS_GO","WEBCASTING","PERSONAL_CAPTURE","KME","KME_MOBILE_APP","PATH","LECTURE_CAPTURE","EP","CHAT_AND_COLLABORATION","ANALYTICS","EXPRESS_CAPTURE","KPF","KAF_GO","SITES","STUDIO","CAPTIONS_EDITOR","CHECKLIST","PLAYER","GENIE","ApplicationFeature","getApplicationEventsModel","eventObj","innerEventPayload","commonModel","getPartnerId","getEntryId","getSessionId","kalturaApplication","application","getApplication","getVirtualEventId","getKalturaApplicationVersion","getUserId","getKS","getHostingKalturaApplication","getHostingKalturaApplicationVersion","namedEventModel","eventVar1","eventVar2","eventVar3","eventVar4","applicationFeature","ApplicationEventsModel","_ApplicationEventsMod","_ref","layout","Choose","DUAL_SCREEN","payload","View","Open","SHARE_EMBED","Close","Share","socialNetworkName","Download","assetType","fileType","description","isDefault","Link","BUMPER","NAVIGATION","searchQuery","activeTab","availableTabs","isItSearch","Search","itemType","isTextExpanded","Expand","Collapse","TRANSCRIPT","search","Navigate","Edit","position","x","size","PLAYLIST","SKIP","mode","RELATED","CALL_TO_ACTION","displayType","isMetadataBased","HOTSPOPT","Load","QUIZ","Send","_ref2","questionIndex","Toggle","settings","EAD","_ref3","trigger","_ref4","_ref5","_ref6","Browse","UI","ADVANCED_CAPTIONS","_ref7","captionTrack","autoSelected","_ref8","_audioTrack$language","audioTrack","startsWith","AUDION_TRACKS","DETECT_AD_BLOCK","_ref9","isResume","REELS","_ref10","_ref11","_ref12","_ref13","from","to","_ref14","_ref15","muted","playlistId","_ref16","autoplay","_ref17","buttonName","SUMMARY_CHAPTERS","_ref18","_ref19","chapterNumber","_ref20","_ref21","DEBUG_INFO","Analytics","state","AUDIO_PLAYER","CPE_TRACKER","BANNER_OVERLAY","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventBucketName","PlayerEvents","eventPayload","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","getPosition","playbackSpeed","getPlaybackSpeed","playerSkin","getPlayerSkin","getCaption","getSessionStartTime","virtualEventId","getUIConfId","uiConfId","getPlaylistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","kalturaApplicationVer","getKalturaApplication","userId","getPersistentSessionId","persistentSessionId","hostingKalturaApplication","hostingKalturaApplicationVersion","ApplicationEvents","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","Application","PlayerSkin","LogFailedLiveEvents","logger","numOfLoggedFailedEvents","storageKey","dataToStore","failureCountKey","getFailedCounterKey","counter","LocalStorageManager","getItem","setItem","appendNewFailedLiveEventToLocalStorage","tailLength","storedArray","date","Date","parseInt","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_logFailedLiveEvents","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","volume","SOUND_OFF","SOUND_ON","isVisible","isInPictureInPicture","IN_VIEW","NOT_IN_VIEW","list","perfEntries","getEntries","_performanceEntries","_pendingFragLoadedUrls","_handleFragPerformanceObserver","pop","eventManager","destroy","_reset","_performanceObserver","disconnect","removeAll","window","PerformanceObserver","_handleNewPerformanceEntries","observe","entryTypes","event","getModel","copyDeep","trackEvent","requestMethod","_handleServerResponseSuccess","err","_handleServerResponseFailed","_previousCurrentTime","_lastViewEventPlayTime","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_canPlayOccured","_isManualPreload","reset","_validate","_updateBufferModel","_bufferStartTime","tamperAnalyticsHandler","sendAnalytics","catch","_this$config","_this$player","logLiveAnalyticsFailures","isLive","_updateSessionStartTimeModel","shouldLogLiveAnalyticsFailures","logFailedLiveAnalyticsEventsToLocalStorage","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","listenOnce","_onPlayerReached","_bindApplicationEvents","_bindPlaykitUIEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_isApplicationEventValid","_sendAnalytics","_this5","_fragLoadedFiredOnce","_loadStartTime","getTracks","Track","VIDEO","videoTrack","_getRates","activeTracks","getActiveTracks","setRates","video","setCurrent","audio","availableBuffer","stats","_getAvailableBuffer","_getTargetBuffer","droppedFrames","droppedAndDecoded","_getDroppedAndDecodedFrames","lastDroppedFrames","lastTotalFrames","droppedFramesDelta","_lastDroppedFrames","totalFramesDelta","_lastTotalFrames","getVideoElement","getVideoPlaybackQuality","videoPlaybackQuality","droppedVideoFrames","totalVideoFrames","webkitDroppedFrameCount","webkitDecodedFrameCount","_updatePlayTimeSumModel","_getForwardBufferHealth","_getDroppedFramesRatio","navConnection","effectiveType","_this6","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this7","plugins","plugin","isImage","TIME_UPDATE","_onTimeUpdate","currentTime","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","clipId","_data$clipId$split2","next","done","minLen","partType","selectedVideoTrack","isAdaptiveBitrateEnabled","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this8","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","playerEvent","_getApplication","kalturaApplicationVersion","_getKalturaApplicationId","applicationVersion","_getPlayerSkin","getNumFailedAnalyticReports","_getPlayerType","reels","audioPlayer","AUDIO","kalturaAppName","sources","seekFrom","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","pageName","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this9","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}