@playkit-js/playkit-js-kava 1.15.2 → 1.16.0
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.
- package/CHANGELOG.md +7 -0
- package/dist/playkit-js-kava.d.ts +1 -0
- package/dist/playkit-kava.js +1 -1
- package/dist/playkit-kava.js.map +1 -1
- package/package.json +1 -1
- package/src/kava-event-model.ts +5 -0
- package/src/kava-model.ts +1 -0
- package/src/kava.ts +12 -0
- package/test/e2e/kava-event-model.spec.js +6 -1
package/dist/playkit-kava.js.map
CHANGED
|
@@ -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} 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 DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD: 'download_summary_chapters_download'\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 SUMMARY_CHAPTERS_CHAPTER_SHARE: 'summary_chapters_chapter_share',\n SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY: 'summary_chapters_download_summary'\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.DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD]: {\n type: 'DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_summary_chapters_download',\n eventVar2: ButtonType.Download,\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: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_play',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.showText ?? '',\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 [PluginsEvents.SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY]: {\n type: 'SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download,\n eventVar1: 'summary_chapters_download_summary',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_SHARE]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_SHARE',\n getEventModel: ({ chapterNumber }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar1: 'summary_chapters_share_chapter',\n eventVar3: chapterNumber + 1,\n eventVar4: '',\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","DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD","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","SUMMARY_CHAPTERS_CHAPTER_SHARE","SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY","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","_payload$showText","showText","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","_ref22","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":""}
|
|
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 const liveStreamType = model.getLiveStreamType();\n if (liveStreamType !== undefined) {\n eventModel.streamType = liveStreamType;\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 DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD: 'download_summary_chapters_download'\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 SUMMARY_CHAPTERS_CHAPTER_SHARE: 'summary_chapters_chapter_share',\n SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY: 'summary_chapters_download_summary'\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.DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD]: {\n type: 'DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_summary_chapters_download',\n eventVar2: ButtonType.Download,\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: (payload: any) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'EAD_play',\n eventVar2: ButtonType.Toggle,\n eventVar3: payload?.showText ?? '',\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 [PluginsEvents.SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY]: {\n type: 'SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download,\n eventVar1: 'summary_chapters_download_summary',\n eventVar3: '',\n eventVar4: '',\n applicationFeature: ApplicationFeature.SUMMARY_CHAPTERS\n })\n },\n [PluginsEvents.SUMMARY_CHAPTERS_CHAPTER_SHARE]: {\n type: 'SUMMARY_CHAPTERS_CHAPTER_SHARE',\n getEventModel: ({ chapterNumber }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar1: 'summary_chapters_share_chapter',\n eventVar3: chapterNumber + 1,\n eventVar4: '',\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 public getLiveStreamType!: () => number | undefined;\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 this._model.getLiveStreamType = (): number | undefined => this._getLiveStreamType();\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 _getLiveStreamType(): number | undefined {\n if (!this.player.isLive()) {\n return undefined;\n }\n const stValue = (this.player as any).getLiveEntryStValue?.();\n // '0' = primary stream, '1' = backup stream\n if (stValue === '0') return 1;\n if (stValue === '1') return 2;\n return undefined;\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","liveStreamType","getLiveStreamType","streamType","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","DOWNLOAD_SUMMARY_CHAPTERS_DOWNLOAD","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","SUMMARY_CHAPTERS_CHAPTER_SHARE","SUMMARY_CHAPTERS_DOWNLOAD_SUMMARY","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","_payload$showText","showText","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","_ref22","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","_getLiveStreamType","_getPlayerType","reels","audioPlayer","AUDIO","kalturaAppName","sources","seekFrom","startTime","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","pageName","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","_getLiveEntryStValue","stValue","getLiveEntryStValue","document","visibilityChangeEventName","_this9","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}
|