@playkit-js/playkit-js-kava 1.6.2 → 1.6.3-canary.0-1bceeba

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 CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### 1.6.3-canary.0-1bceeba (2024-03-17)
6
+
5
7
  ### 1.6.2 (2024-03-17)
6
8
 
7
9
  ## 1.6.0 (2023-12-21)
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("KalturaPlayer",[],t):"object"==typeof exports?exports.KalturaPlayer=t():(e.KalturaPlayer=e.KalturaPlayer||{},e.KalturaPlayer.plugins=e.KalturaPlayer.plugins||{},e.KalturaPlayer.plugins.kava=t())}(self,(()=>(()=>{var e={796:e=>{self,e.exports=function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},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 n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e){return r="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},r(e)}function i(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,"string");if("object"!==r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===r(t)?t:String(t)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.r(t),e.d(t,{NAME:function(){return b},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return p},RequestBuilder:function(){return l},VERSION:function(){return R}});var u=a((function e(t,r,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n(this,e),this.severity=t,this.category=r,this.code=i,this.data=o,e._logger.error("Category:".concat(r," | Code:").concat(i," |"),o)}));s(u,"Severity",{RECOVERABLE:1,CRITICAL:2}),s(u,"Category",{NETWORK:1,SERVICE:2,PROVIDER:3}),s(u,"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}),s(u,"_logger",{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 l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;n(this,e),s(this,"retryConfig",{async:!0,timeout:0,maxAttempts:4}),s(this,"_attemptCounter",1),this.headers=t}return a(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,n){e._requestPromise={resolve:t,reject:n}}));return this.url||this._requestPromise.reject(new u(u.Severity.CRITICAL,u.Category.NETWORK,u.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 n=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(n)}catch(n){e._requestPromise.reject(e._createError(t,u.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 n=performance.now();t.ontimeout=function(){e._handleError(t,u.Code.TIMEOUT,{timeout:(performance.now()-n)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,u.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,n){t.setRequestHeader(n,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,n){var r=this._createError(e,t,n);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(r);this._attemptCounter++,this._createXHR()}},{key:"_createError",value:function(e,t,n){return Object.assign(n,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new u(u.Severity.CRITICAL,u.Category.NETWORK,t,n)}}]),e}(),c=function e(t){var n;return Array.isArray(t)?(n=t.length>0?t.slice(0):[]).forEach((function(t,i){("object"===r(t)||Array.isArray(t)&&t.length>0)&&(n[i]=e(t))})):"object"===r(t)?(n=Object.assign({},t),Object.keys(n).forEach((function(t){("object"===r(n[t])||Array.isArray(n[t])&&n[t].length>0)&&(n[t]=e(n[t]))}))):n=t,n},d={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},p=function(){function e(){n(this,e)}return a(e,null,[{key:"set",value:function(e){e&&Object.assign(d,e)}},{key:"get",value:function(){return c(d)}}]),e}();function _(e,t){return _=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_(e,t)}function f(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&&_(e,t)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return y(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var v=a((function e(t){n(this,e),s(this,"hasError",!1),"KalturaAPIException"===t.objectType?(this.hasError=!0,this.error=new g(t.code,t.message)):t.error&&"KalturaAPIException"===t.error.objectType?(this.hasError=!0,this.error=new g(t.error.code,t.error.message)):this.data=t})),g=a((function e(t,r){n(this,e),this.code=t,this.message=r})),m=function(e){f(o,e);var t,r,i=(t=o,r=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,n=E(t);if(r){var i=E(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function o(){var e;n(this,o);for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return s(y(e=i.call.apply(i,[this].concat(r))),"requests",[]),e}return a(o,[{key:"add",value:function(e){this.requests.push(e);var t={},n={service:e.service,action:e.action};return Object.assign(t,s({},this.requests.length,Object.assign(n,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:"execute",value:function(e){var t=this;return new Promise((function(n,r){try{t.params=JSON.stringify(t.params)}catch(e){o._logger.error("".concat(e.message)),r(new u(u.Severity.CRITICAL,u.Category.PROVIDER,u.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(i){var o=new T(i,e);o.success?n({headers:t.responseHeaders,response:o}):r(new u(u.Severity.CRITICAL,u.Category.NETWORK,u.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:o.results}))}),(function(e){r(e)}))}))}}]),o}(l);s(m,"_logger",{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 T=a((function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];n(this,e),s(this,"results",[]);var i=t.result?t.result:t,o=(Array.isArray(i)?i:[i]).map((function(e){return new v(e)})),a=o.filter((function(e){return e.hasError}));a.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=o,r&&a.length||a.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));s(T,"_logger",{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){var t=[],n=/\[\]$/,i=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=function(e,n){n="function"==typeof n?n():null==n?"":n,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(n)};return function e(a,s){var u,l,c;if(a)if(i(s))for(u=0,l=s.length;u<l;u++)n.test(a)?o(a,s[u]):e(a+":"+("object"===r(s[u])?u:""),s[u]);else if(s&&"[object Object]"===String(s))for(c in s)e(a+":"+c,s[c]);else o(a,s);else if(i(s))for(u=0,l=s.length;u<l;u++)o(s[u].name,s[u].value);else for(c in s)e(c,s[c]);return t}("",e).join("&").replace(/%20/g,"+")},S="analytics",A=function(e){f(o,e);var t,r,i=(t=o,r=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,n=E(t);if(r){var i=E(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function o(){return n(this,o),i.apply(this,arguments)}return a(o,null,[{key:"trackEvent",value:function(e,t,n){return"POST"===n?o._trackEventByPOST(e,t):o._trackEventByGET(e,t)}},{key:"_trackEventByGET",value:function(e,t){var n=p.get(),r={};Object.assign(r,n.serviceParams,t);var i=new l;return i.service=S,i.action="trackEvent",i.method="GET",i.retryConfig.maxAttempts=1,i.tag="analytics-trackEvent",i.params=r,i.url=e+"?service="+i.service+"&action="+i.action+"&"+C(i.params),i}},{key:"_trackEventByPOST",value:function(e,t){var n=p.get(),r={};Object.assign(r,n.serviceParams,t);var i=new Map;i.set("Content-Type","application/json");var o=new l(i),a={eventType:r.eventType,partnerId:r.partnerId,entryId:r.entryId,sessionId:r.sessionId};return["eventType","partnerId","entryId","sessionId"].forEach((function(e){return delete r[e]})),o.service=S,o.action="trackEvent",o.method="POST",o.retryConfig.maxAttempts=1,o.tag="analytics-trackEvent",o.params=JSON.stringify(r),o.url=e+"?service="+o.service+"&action="+o.action+"&"+C(a),o}}]),o}(function(){function e(){n(this,e)}return a(e,null,[{key:"getMultiRequest",value:function(e,t,n){var r=p.get(),i=r.serviceParams;Object.assign(i,{ks:t,clientTag:"html5:v"+e}),n&&Object.assign(i,{partnerId:n});var o=new Map;o.set("Content-Type","application/json");var a=new m(o);return a.method="POST",a.service="multirequest",a.url=a.getUrl(r.serviceUrl),a.params=i,a}}]),e}()),b="@playkit-js/playkit-js-providers-analytics-service",R="2.40.4";return t}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{EventType:()=>E,HttpMethodType:()=>K,NAME:()=>z,Plugin:()=>J,VERSION:()=>Q});const e=KalturaPlayer;function t(e){return t="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},t(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){var n=function(e,n){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(n)?n:String(n)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function s(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e,n){if(n&&("object"===t(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}function p(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&&d(e,t)}function _(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f,y=n(796),h={VIEW:{type:"VIEW",index:99,getEventModel:function(e){var t={playTimeSum:e.getPlayTimeSum(),bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate(),averageBitrate:e.getAverageBitrate(),audioLanguage:e.getLanguage(),soundMode:e.getSoundMode(),tabMode:e.getTabMode(),viewabilityMode:e.getViewabilityMode(),screenMode:e.getScreenMode()};return isNaN(e.getForwardBufferHealth())||(t.forwardBufferHealth=e.getForwardBufferHealth()),e.getMaxManifestDownloadTime()>0&&(t.manifestDownloadTime=e.getMaxManifestDownloadTime()),e.getSegmentDownloadTime()>0&&(t.segmentDownloadTime=e.getSegmentDownloadTime()),e.getBandwidth()&&(t.bandwidth=e.getBandwidth()),null!==e.getDroppedFramesRatio()&&(t.droppedFramesRatio=e.getDroppedFramesRatio()),isNaN(e.getTargetBuffer())||(t.targetBuffer=e.getTargetBuffer()),""!==e.getNetworkConnectionType()&&(t.networkConnectionType=e.getNetworkConnectionType()),e.getNetworkConnectionOverhead()&&(t.networkConnectionOverhead=e.getNetworkConnectionOverhead()),isNaN(e.getFlavorParamsId())||(t.flavorParamsId=e.getFlavorParamsId()),t}},IMPRESSION:{type:"IMPRESSION",index:1,getEventModel:function(e){var t={};return null!==e.getPlayerJSLoadTime()&&(t.playerJSLoadTime=e.getPlayerJSLoadTime()),t}},PLAY_REQUEST:{type:"PLAY_REQUEST",index:2,getEventModel:function(){return{}}},PLAY:{type:"PLAY",index:3,getEventModel:function(e){var t={bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate(),joinTime:e.getJoinTime(),canPlay:e.getCanPlayTime()};return""!==e.getNetworkConnectionType()&&(t.networkConnectionType=e.getNetworkConnectionType()),t}},RESUME:{type:"RESUME",index:4,getEventModel:function(e){return{bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate()}}},PAUSE:{type:"PAUSE",index:33,getEventModel:function(){return{}}},BUFFER_START:{type:"BUFFER_START",index:45,getEventModel:function(){return{}}},BUFFER_END:{type:"BUFFER_END",index:46,getEventModel:function(){return{}}},REPLAY:{type:"REPLAY",index:34,getEventModel:function(){return{}}},SEEK:{type:"SEEK",index:35,getEventModel:function(e){return{targetPosition:e.getTargetPosition()}}},PLAY_REACHED_25_PERCENT:{type:"PLAY_REACHED_25_PERCENT",index:11,getEventModel:function(){return{}}},PLAY_REACHED_50_PERCENT:{type:"PLAY_REACHED_50_PERCENT",index:12,getEventModel:function(){return{}}},PLAY_REACHED_75_PERCENT:{type:"PLAY_REACHED_75_PERCENT",index:13,getEventModel:function(){return{}}},PLAY_REACHED_100_PERCENT:{type:"PLAY_REACHED_100_PERCENT",index:14,getEventModel:function(){return{}}},SOURCE_SELECTED:{type:"SOURCE_SELECTED",index:39,getEventModel:function(e){return{actualBitrate:e.getActualBitrate()}}},AUDIO_SELECTED:{type:"AUDIO_SELECTED",index:42,getEventModel:function(e){return{language:e.getLanguage()}}},FLAVOR_SWITCH:{type:"FLAVOR_SWITCH",index:43,getEventModel:function(e){return{actualBitrate:e.getActualBitrate()}}},SPEED:{type:"SPEED",index:41,getEventModel:function(){return{}}},CAPTIONS:{type:"CAPTIONS",index:38,getEventModel:function(){return{}}},ERROR:{type:"ERROR",index:98,getEventModel:function(e){return{errorCode:e.getErrorCode(),errorDetails:e.getErrorDetails(),errorPosition:e.getErrorPosition()}}},RELATED_OPEN:{type:"RELATED_OPEN",index:36,getEventModel:function(){return{}}},RELATED_SELECTED:{type:"RELATED_SELECTED",index:37,getEventModel:function(){return{}}},SHARE_CLICKED:{type:"SHARE_CLICKED",index:21,getEventModel:function(){return{}}},SHARE_NETWORK:{type:"SHARE_NETWORK",index:22,getEventModel:function(e){return{socialNetwork:e.getShareNetworkName()}}},ENTER_FULLSCREEN:{type:"ENTER_FULLSCREEN",index:31,getEventModel:function(e){return{screenMode:e.getScreenMode()}}},EXIT_FULLSCREEN:{type:"EXIT_FULLSCREEN",index:32,getEventModel:function(e){return{screenMode:e.getScreenMode()}}},DOWNLOAD:{type:"DOWNLOAD",index:23,getEventModel:function(){return{}}},REPORT_CLICKED:{type:"REPORT_CLICKED",index:24,getEventModel:function(){return{}}},REPORT_SUBMITTED:{type:"REPORT_SUBMITTED",index:25,getEventModel:function(e){return{reportType:e.getReportType()}}},INFO:{type:"INFO",index:40,getEventModel:function(){return{}}}},E=(f={},Object.keys(h).forEach((function(e){return f[e]=e})),f),v=function(){function e(){i(this,e),_(this,"_rates",[]),this._rates=[]}return s(e,[{key:"setRates",value:function(e){var t=this;this._rates=[],e.forEach((function(e){t._rates.push({rate:e,active:!1,duration:0})}))}},{key:"setCurrent",value:function(e){this._rates.forEach((function(e){return e.active=!1}));var t=this._rates.find((function(t){return t.rate===e}));t&&(t.active=!0)}},{key:"getCurrent",value:function(){var e=this._rates.find((function(e){return e.active}));return e?e.rate:-1}},{key:"countCurrent",value:function(){var e=this._rates.find((function(e){return e.active}));e&&e.duration++}},{key:"getAverage",value:function(){var e=0,t=0;return this._rates.forEach((function(n){t+=n.rate*n.duration,e+=n.duration})),e?t/e:0}},{key:"reset",value:function(){this._rates.forEach((function(e){return e.duration=0}))}},{key:"destroy",value:function(){this._rates=[]}}]),e}();function g(e,t,n){return t=c(t),l(e,m()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n))}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(m=function(){return!!e})()}var T=e.core.FakeEvent,C=e.core.FakeEventTarget,S=function(){function e(t,n){i(this,e),_(this,"worker",null);var r=new Blob(["setInterval(() => postMessage(0), ".concat(n,");")]),o=URL.createObjectURL(r);this.worker=new Worker(o),this.worker.onmessage=t}return s(e,[{key:"stop",value:function(){this.worker&&this.worker.terminate()}}]),e}(),A=function(e){function t(e){var n;return i(this,t),(n=g(this,t))._config=e,n}return p(t,e),s(t,[{key:"start",value:function(){var e=this;this._terminateTimer(),this._stopped=!1,this._resetCounter=0,this._eventCounter=0,this._timer=new S((function(){return e._monitor()}),1e3)}},{key:"resume",value:function(){this._stopped=!1,this._resetCounter=0}},{key:"stop",value:function(){this._stopped=!0}},{key:"isStopped",value:function(){return this._stopped}},{key:"destroy",value:function(){this._terminateTimer()}},{key:"_terminateTimer",value:function(){this._timer&&(this._timer.stop(),this._timer=null)}},{key:"_monitor",value:function(){this._stopped?(this._resetCounter===this._config.resetCounter&&(this.dispatchEvent(new T(t.Event.RESET)),this._resetCounter=0,this._eventCounter=0),this._resetCounter++):(this.dispatchEvent(new T(t.Event.TICK)),this._eventCounter===this._config.eventCounter&&(this.dispatchEvent(new T(t.Event.REPORT)),this._eventCounter=0),this._eventCounter++)}}]),t}(C);_(A,"Event",{TICK:"tick",RESET:"reset",REPORT:"report"});var b=function(e){return e.ApplicationEvents="ApplicationEvents",e.PlayerEvents="PlayerEvents",e}({}),R=function(e){return e[e.Create=1]="Create",e[e.Filter=2]="Filter",e[e.Search=3]="Search",e[e.Export=4]="Export",e[e.Navigate=5]="Navigate",e[e.Schedule=6]="Schedule",e[e.Insert=7]="Insert",e[e.Choose=8]="Choose",e[e.Launch=9]="Launch",e[e.Open=10]="Open",e[e.Send=11]="Send",e[e.Invite=12]="Invite",e[e.Close=13]="Close",e[e.Save=14]="Save",e[e.Expand=15]="Expand",e[e.Collapse=16]="Collapse",e[e.Edit=17]="Edit",e[e.Delete=18]="Delete",e[e.Browse=19]="Browse",e[e.Load=20]="Load",e[e.Add=21]="Add",e[e.Menu=22]="Menu",e[e.Register=23]="Register",e[e.Login=24]="Login",e[e.Link=25]="Link",e[e.Toggle=26]="Toggle",e[e.Thumbnail=27]="Thumbnail",e[e.Download=28]="Download",e[e.Share=29]="Share",e.Unknown="Unknown",e}({}),P={KMC:"0",KMS:"1",KAF:"2",PITCH:"3",KMS_GO:"4",WEBCASTING:"5",PERSONAL_CAPTURE:"6",KME:"7",KME_MOBILE_APP:"8",PATH:"9",LECTURE_CAPTURE:"10",EP:"11",CHAT_AND_COLLABORATION:"12",ANALYTICS:"13",EXPRESS_CAPTURE:"14",KPF:"15",KAF_GO:"16",SITES:"17",STUDIO:"18",CAPTIONS_EDITOR:"19",CHECKLIST:"20",PLAYER:"21"},O=10002,I=function(e){return e[e.View=1]="View",e[e.Create=2]="Create",e[e.Edit=3]="Edit",e[e.Participate=4]="Participate",e[e.List=5]="List",e[e.Analytics=6]="Analytics",e[e.Admin=7]="Admin",e[e.Error=8]="Error",e[e.Login=9]="Login",e[e.Registration=10]="Registration",e[e.Custom=11]="Custom",e}({});function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var M,L=k(k(k(k(k(k(k(k(k(k({},{NAVIGATION_OPEN:"navigation_open",NAVIGATION_CLOSE:"navigation_close",NAVIGATION_SEARCH:"navigation_search",NAVIGATION_ITEM_CLICK:"navigation_item_click",NAVIGATION_EXPANDABLE_TEXT_CLICK:"navigation_expandable_text_clicked"}),{DOWNLOAD_ITEM_CLICKED:"download_item_clicked",SHOW_OVERLAY:"download_show_overlay",HIDE_OVERLAY:"download_hide_overlay"}),{TRANSCRIPT_OPEN:"transcript_open",TRANSCRIPT_CLOSE:"transcript_close",TRANSCRIPT_DOWNLOAD:"transcript_download",TRANSCRIPT_PRINT:"transcript_print",TRANSCRIPT_SEARCH:"transcript_search",TRANSCRIPT_NAVIGATE_RESULT:"transcript_navigate_result"}),{CHANGE_LAYOUT:"dualscreen_change_layout"}),{SHARE_CLICKED:"share_clicked",SHARE_CLOSE:"share_close",SHARE_NETWORK:"share_network",SHARE_COPY:"share_copy"}),{BUMPER_CLICKED:"bumper_clicked"}),{SKIP_BUTTON_CLICK:"skip_button_click",SKIP_BUTTON_DISPLAYED:"skip_button_displayed"}),{PLAYLIST_OPEN:"playlist_open",PLAYLIST_CLOSE:"playlist_close"}),{RELATED_SELECTED:"related_selected",RELATED_OPEN:"related_open",RELATED_CLOSE:"related_close"}),{CALL_TO_ACTION_BUTTON_CLICK:"call_to_action_button_click"});function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var V=(_(_(_(_(_(_(_(_(_(_(M={},L.CHANGE_LAYOUT,{type:"CHANGE_LAYOUT",getEventModel:function(e){return{eventType:O,buttonName:"Dual__screen_change_layout",buttonType:R.Unknown,buttonValue:e.layout}}}),L.SHARE_CLICKED,{type:"SHARE_CLICKED",getEventModel:function(){return{eventType:O,buttonName:"Share_embed_open",buttonType:R.Open,buttonValue:""}}}),L.SHARE_CLOSE,{type:"SHARE_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Share_embed_close",buttonType:R.Close,buttonValue:""}}}),L.SHARE_NETWORK,{type:"SHARE_NETWORK",getEventModel:function(e){var t,n={eventType:O,buttonType:R.Share,buttonValue:""};switch(e.socialNetworkName){case"twitter":t="Share_embed_X_click";break;case"facebook":t="Share_embed_facebook_click";break;case"email":t="Share_embed_email_click";break;case"linkedin":t="Share_embed_linkedin_click";break;default:t="unknown"}return w(w({},n),{},{buttonName:t})}}),L.SHARE_COPY,{type:"SHARE_COPY",getEventModel:function(e){return{eventType:O,buttonName:"Share_embed_X_click",buttonType:R.Share,buttonValue:e.videoClippingOption}}}),L.DOWNLOAD_ITEM_CLICKED,{type:"DOWNLOAD_ITEM_CLICKED",getEventModel:function(e){var t,n={eventType:O,buttonType:R.Download},r=e.assetType,i=e.fileType,o=e.description;switch(r){case"Media":t="Download_video_download";break;case"Captions":t="Download_captions_download";break;case"Attachments":t="Download_attachment_download",o=i;break;default:t="",o=""}return w(w({},n),{},{buttonName:t,buttonValue:o})}}),L.SHOW_OVERLAY,{type:"SHOW_OVERLAY",getEventModel:function(){return{eventType:O,buttonName:"Download_open",buttonType:R.Open,buttonValue:""}}}),L.HIDE_OVERLAY,{type:"HIDE_OVERLAY",getEventModel:function(){return{eventType:O,buttonName:"Download_close",buttonType:R.Close,buttonValue:""}}}),L.BUMPER_CLICKED,{type:"BUMPER_CLICKED",getEventModel:function(){return{eventType:O,buttonName:"Bumper_click",buttonType:R.Link,buttonValue:""}}}),L.NAVIGATION_OPEN,{type:"NAVIGATION_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Navigation_open",buttonType:R.Open,buttonValue:e.auto?"auto":"manual"}}}),_(_(_(_(_(_(_(_(_(_(M,L.NAVIGATION_CLOSE,{type:"NAVIGATION_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Navigation_close",buttonType:R.Close,buttonValue:""}}}),L.NAVIGATION_SEARCH,{type:"NAVIGATION_SEARCH",getEventModel:function(e){var t={eventType:O,buttonType:R.Search},n=e.searchQuery,r=e.activeTab,i=e.availableTabs,o="",a=n;switch(r){case"All":o=i.length>0?"Navigation_search":"Navigation_all_tab";break;case"Chapter":o="Navigation_chapters_tab";break;case"Slide":o="Navigation_slides_tab";break;case"Hotspot":o="Navigation_hotspots_tab"}return w(w({},t),{},{buttonName:o,buttonValue:a})}}),L.NAVIGATION_ITEM_CLICK,{type:"NAVIGATION_ITEM_CLICK",getEventModel:function(e){var t={eventType:O,buttonType:R.Choose,buttonValue:""},n="";switch(e.itemType){case"Chapter":n="Navigation_chapter_click";break;case"Slide":n="Navigation_slide_click";break;case"Hotspot":n="Navigation_hotspots_click"}return w(w({},t),{},{buttonName:n})}}),L.NAVIGATION_EXPANDABLE_TEXT_CLICK,{type:"NAVIGATION_EXPANDABLE_TEXT_CLICK",getEventModel:function(e){var t={eventType:O,buttonValue:""},n=e.isTextExpanded,r=e.itemType,i="",o=n?R.Expand:R.Collapse;switch(r){case"Chapter":i=n?"Navigation_chapters_see_more":"Navigation_chapters_see_less";break;case"Slide":i=n?"Navigation_slides_see_more":"Navigation_slides_see_less";break;case"Hotspot":i=n?"Navigation_hotspots_see_more":"Navigation_hotspots_see_less"}return w(w({},t),{},{buttonName:i,buttonType:o})}}),L.TRANSCRIPT_OPEN,{type:"TRANSCRIPT_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_open",buttonType:R.Open,buttonValue:e.auto?"auto":"manual"}}}),L.TRANSCRIPT_CLOSE,{type:"TRANSCRIPT_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Transcript_close",buttonType:R.Close,buttonValue:""}}}),L.TRANSCRIPT_DOWNLOAD,{type:"TRANSCRIPT_DOWNLOAD",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_download",buttonType:R.Download,buttonValue:e.videoPosition}}}),L.TRANSCRIPT_PRINT,{type:"TRANSCRIPT_PRINT",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_print",buttonType:R.Download,buttonValue:e.videoPosition}}}),L.TRANSCRIPT_SEARCH,{type:"TRANSCRIPT_SEARCH",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_search",buttonType:R.Search,buttonValue:e.search}}}),L.TRANSCRIPT_NAVIGATE_RESULT,{type:"TRANSCRIPT_NAVIGATE_RESULT",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_navigate_result",buttonType:R.Navigate,buttonValue:e.index}}}),_(_(_(_(_(_(_(_(M,L.PLAYLIST_OPEN,{type:"PLAYLIST_OPEN",getEventModel:function(e){return{eventType:e.auto?10003:O,buttonValue:e.position,buttonType:R.Open,buttonName:e.auto?"Playlist_side_panel_open_auto":"Playlist_side_panel_open_manual"}}}),L.PLAYLIST_CLOSE,{type:"PLAYLIST_CLOSE",getEventModel:function(e){return{eventType:O,buttonValue:e.position,buttonType:R.Close,buttonName:"Playlist_side_panel_close_manual"}}}),L.SKIP_BUTTON_CLICK,{type:"SKIP_BUTTON_CLICK",getEventModel:function(e){var t={eventType:O,buttonType:R.Navigate,buttonValue:""},n=e.mode,r="";return"intro"===n&&(r="Skip_intro_click"),"outro"===n&&(r="Skip_outro_click"),w(w({},t),{},{buttonName:r})}}),L.SKIP_BUTTON_DISPLAYED,{type:"SKIP_BUTTON_DISPLAYED",getEventModel:function(e){var t={eventType:10003,buttonType:I.View,buttonValue:""},n=e.mode,r="";return"intro"===n&&(r="Skip_intro_displayed"),"outro"===n&&(r="Skip_outro_displayed"),w(w({},t),{},{buttonName:r})}}),L.RELATED_OPEN,{type:"RELATED_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Related_open",buttonType:R.Open,buttonValue:e.expandMode}}}),L.RELATED_CLOSE,{type:"RELATED_CLOSE",getEventModel:function(e){return{eventType:O,buttonName:"Related_close",buttonType:R.Close,buttonValue:e.expandMode}}}),L.RELATED_SELECTED,{type:"RELATED_SELECTED",getEventModel:function(){return{eventType:O,buttonName:"Related_entry_click",buttonType:R.Navigate,buttonValue:""}}}),L.CALL_TO_ACTION_BUTTON_CLICK,{type:"CALL_TO_ACTION_BUTTON_CLICK",getEventModel:function(e){return{eventType:O,buttonValue:e.label,buttonType:R.Link,buttonName:"primary"===e.type?"CTA_primary_button_click":"CTA_secondary_button_click"}}})),F=function(){function e(t){i(this,e),_(this,"totalSegmentsDownloadTime",0),_(this,"totalSegmentsDownloadBytes",0),_(this,"maxSegmentDownloadTime",0),_(this,"maxManifestDownloadTime",0),_(this,"droppedFramesRatio",null),_(this,"screenMode",x.NOT_IN_FULLSCREEN),_(this,"maxNetworkConnectionOverhead",0),_(this,"flavorParamsId",NaN),_(this,"playerJSLoadTime",null),_(this,"shareNetworkName",""),_(this,"reportType",NaN),t&&this.updateModel(t)}return s(e,[{key:"getPlayTimeSum",value:function(){return this.playTimeSum}},{key:"getCanPlayTime",value:function(){return this.canPlayTime}},{key:"getBufferTime",value:function(){return this.bufferTime}},{key:"getBufferTimeSum",value:function(){return this.bufferTimeSum}},{key:"getPlayerJSLoadTime",value:function(){return this.playerJSLoadTime?Math.round(1e3*this.playerJSLoadTime)/1e3:null}},{key:"getJoinTime",value:function(){return this.joinTime}},{key:"getTargetPosition",value:function(){return this.targetPosition}},{key:"getTargetBuffer",value:function(){return this.targetBuffer}},{key:"getLanguage",value:function(){return this.language}},{key:"getCaption",value:function(){return this.caption}},{key:"getBandwidth",value:function(){return this.totalSegmentsDownloadTime>0?Math.round(8*this.totalSegmentsDownloadBytes/this.totalSegmentsDownloadTime)/1e3:0}},{key:"getMaxManifestDownloadTime",value:function(){return this.maxManifestDownloadTime}},{key:"getSegmentDownloadTime",value:function(){return this.maxSegmentDownloadTime}},{key:"getForwardBufferHealth",value:function(){return this.forwardBufferHealth}},{key:"getDroppedFramesRatio",value:function(){return this.droppedFramesRatio}},{key:"getSoundMode",value:function(){return this.soundMode}},{key:"getViewabilityMode",value:function(){return this.viewabilityMode}},{key:"getScreenMode",value:function(){return this.screenMode}},{key:"getTabMode",value:function(){return this.tabMode}},{key:"getNetworkConnectionType",value:function(){return this.networkConnectionType}},{key:"getNetworkConnectionOverhead",value:function(){return Math.round(this.maxNetworkConnectionOverhead)/1e3}},{key:"getErrorCode",value:function(){return this.errorCode}},{key:"getFlavorParamsId",value:function(){return this.flavorParamsId}},{key:"getErrorDetails",value:function(){var e="";if(this.errorDetails)try{e=JSON.stringify(this.errorDetails)}catch(e){}return e}},{key:"getEventIndex",value:function(){return this.eventIndex}},{key:"getErrorPosition",value:function(){return this.errorPosition}},{key:"getSessionStartTime",value:function(){return this.sessionStartTime}},{key:"getShareNetworkName",value:function(){return this.shareNetworkName}},{key:"getReportType",value:function(){return this.reportType}},{key:"updateModel",value:function(e){Object.assign(this,e)}},{key:"getModel",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b.PlayerEvents,n=arguments.length>2?arguments[2]:void 0;switch(t){case b.PlayerEvents:return function(e,t){var n={eventType:e.index,partnerId:t.getPartnerId(),entryId:t.getEntryId(),sessionId:t.getSessionId(),eventIndex:t.getEventIndex(),referrer:t.getReferrer(),deliveryType:t.getDeliveryType(),playbackType:t.getPlaybackType(),clientVer:t.getClientVer(),clientTag:t.getClientTag(),position:t.getPosition(),playbackSpeed:t.getPlaybackSpeed()};t.getCaption()&&(n.caption=t.getCaption()),t.getSessionStartTime()&&(n.sessionStartTime=t.getSessionStartTime()),t.getKS()&&(n.ks=t.getKS()),t.getVirtualEventId()&&(n.virtualEventId=t.getVirtualEventId()),t.getUIConfId()&&(n.uiConfId=t.getUIConfId()),t.getPlaylistId()&&(n.playlistId=t.getPlaylistId()),t.getCustomVar1()&&(n.customVar1=t.getCustomVar1()),t.getCustomVar2()&&(n.customVar2=t.getCustomVar2()),t.getCustomVar3()&&(n.customVar3=t.getCustomVar3()),t.getPlaybackContext()&&(n.playbackContext=t.getPlaybackContext()),t.getApplicationVersion()&&(n.applicationVer=t.getApplicationVersion()),t.getApplication()&&(n.application=t.getApplication()),t.getKalturaApplicationVersion()&&(n.kalturaApplicationVer=t.getKalturaApplicationVersion()),t.getKalturaApplication()&&(n.kalturaApplication=t.getKalturaApplication()),t.getUserId()&&(n.userId=t.getUserId()),t.getPersistentSessionId()&&(n.persistentSessionId=t.getPersistentSessionId());var r=e.getEventModel(t);return Object.assign(r,n)}(e,this);case b.ApplicationEvents:return function(e,t,n){var r={partnerId:t.getPartnerId(),entryId:t.getEntryId(),sessionId:t.getSessionId(),kalturaApplication:P.PLAYER};t.getUserId()&&(r.userId=t.getUserId());var i=e.getEventModel(n);return Object.assign(i,r)}(e,this,n)}}}]),e}(),U=function(e){return e[e.SOUND_OFF=1]="SOUND_OFF",e[e.SOUND_ON=2]="SOUND_ON",e}(U||{}),H=function(e){return e[e.NOT_IN_VIEW=1]="NOT_IN_VIEW",e[e.IN_VIEW=2]="IN_VIEW",e}(H||{}),B=function(e){return e[e.TAB_NOT_FOCUSED=1]="TAB_NOT_FOCUSED",e[e.TAB_FOCUSED=2]="TAB_FOCUSED",e}(B||{}),x=function(e){return e[e.NOT_IN_FULLSCREEN=1]="NOT_IN_FULLSCREEN",e[e.FULLSCREEN=2]="FULLSCREEN",e}(x||{}),j=function(e){return e[e.PRE_PLAY=3]="PRE_PLAY",e[e.PRE_PLAYING=1]="PRE_PLAYING",e[e.MID_STREAM=2]="MID_STREAM",e}(j||{}),K={GET:"GET",POST:"POST"};function Y(e,t,n){return t=c(t),l(e,G()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n))}function G(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(G=function(){return!!e})()}var W=e.core.Error,q=e.core.Utils,X=1024,J=function(e){function n(e,t,r){var o;if(i(this,n),_(u(o=Y(this,n,[e,t,r])),"_lastDroppedFrames",0),_(u(o),"_lastTotalFrames",0),_(u(o),"_performanceEntries",[]),_(u(o),"_pendingFragLoadedUrls",[]),_(u(o),"_fragLoadedFiredOnce",!1),_(u(o),"_canPlayOccured",!1),_(u(o),"_isManualPreload",!1),o._rateHandler=new v,o._model=new F,o._setModelDelegates(),o._timer=new A({resetCounter:o.config.resetSessionCountdown,eventCounter:o.config.viewEventCountdown}),o._viewEventEnabled=!0,o._resetFlags(),o._addBindings(),o._model.updateModel({eventIndex:1,bufferTime:0,bufferTimeSum:0,playTimeSum:0}),performance&&o.config.uiConfId){var a=performance.getEntriesByType("resource").find((function(e){return e.name.match("embedPlaykitJs.*"+o.config.uiConfId)}));a&&o._model.updateModel({playerJSLoadTime:a.duration})}return o}return p(n,e),s(n,[{key:"_updateSoundModeInModel",value:function(){this._model.updateModel({soundMode:this.player.muted||0===this.player.volume?U.SOUND_OFF:U.SOUND_ON})}},{key:"_updateViewabilityModeInModel",value:function(e){this._model.updateModel({viewabilityMode:e||this.player.isInPictureInPicture()?H.IN_VIEW:H.NOT_IN_VIEW})}},{key:"_handleNewPerformanceEntries",value:function(e){for(var t=e.getEntries(),n=0;n<t.length;n++)this._performanceEntries.push(t[n]);for(;this._pendingFragLoadedUrls.length;)this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop())}},{key:"destroy",value:function(){this.eventManager.destroy(),this._reset()}},{key:"_reset",value:function(){this._timer.destroy(),this._rateHandler.destroy(),this._performanceObserver&&this._performanceObserver.disconnect(),this._performanceEntries=[],this._pendingFragLoadedUrls=[]}},{key:"reset",value:function(){this.eventManager.removeAll(),this._resetFlags(),this._addBindings(),this._model.updateModel({eventIndex:1,bufferTime:0,bufferTimeSum:0,playTimeSum:0,sessionStartTime:null}),this._reset()}},{key:"loadMedia",value:function(){window.PerformanceObserver&&(this._performanceObserver=new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this)),this._performanceObserver.observe({entryTypes:["resource"]}))}},{key:"getEventModel",value:function(e){if(e)return this._model.getModel(h[e])}},{key:"EventType",get:function(){return q.Object.copyDeep(E)}},{key:"sendAnalytics",value:function(e){var t=this;return new Promise((function(n,r){y.OVPAnalyticsService.trackEvent(t.config.serviceUrl,e,t.config.requestMethod).doHttpRequest().then((function(r){t._handleServerResponseSuccess(r,e),n()}),(function(n){t._handleServerResponseFailed(n,e),r(n)})),t._model.updateModel({eventIndex:t._model.getEventIndex()+1})}))}},{key:"_resetFlags",value:function(){this._previousCurrentTime=0,this._isPlaying=!1,this._isFirstPlay=!0,this._isFirstPlaying=!0,this._isEnded=!1,this._isPaused=!1,this._isBuffering=!1,this._timePercentEvent={PLAY_REACHED_25_PERCENT:!1,PLAY_REACHED_50_PERCENT:!1,PLAY_REACHED_75_PERCENT:!1,PLAY_REACHED_100_PERCENT:!1},this._canPlayOccured=!1,this._isManualPreload=!1}},{key:"_resetSession",value:function(){this.logger.debug("Reset KAVA session"),this._rateHandler.reset(),this._model.updateModel({eventIndex:1,bufferTimeSum:0,playTimeSum:0})}},{key:"_sendAnalytics",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b.PlayerEvents,n=arguments.length>2?arguments[2]:void 0;if(this._validate()){this._isBuffering&&(this._updateBufferModel(),this._bufferStartTime=Date.now());var r=this._model.getModel(e,t,n);if("function"==typeof this.config.tamperAnalyticsHandler&&!this.config.tamperAnalyticsHandler(r))return void this.logger.debug("Cancel KAVA request",r);this.logger.debug("Sending KAVA event ".concat(r.eventType,":").concat(e.type)),this.sendAnalytics(r).catch((function(){}))}}},{key:"_handleServerResponseSuccess",value:function(e,t){this.logger.debug("KAVA event sent",t),this._updateSessionStartTimeModel(e)}},{key:"_handleServerResponseFailed",value:function(e,t){this.logger.warn("Failed to send KAVA event",t,e)}},{key:"_addBindings",value:function(){var e=this;this.eventManager.listen(this._timer,A.Event.TICK,(function(){return e._rateHandler.countCurrent()})),this.eventManager.listen(this._timer,A.Event.REPORT,(function(){return e._onReport()})),this.eventManager.listen(this._timer,A.Event.RESET,(function(){return e._resetSession()})),this.eventManager.listen(this.player,this.player.Event.Core.SOURCE_SELECTED,(function(){return e._onSourceSelected()})),this.eventManager.listen(this.player,this.player.Event.Core.ERROR,(function(t){return e._onError(t)})),this.eventManager.listen(this.player,this.player.Event.Core.FIRST_PLAY,(function(){return e._onFirstPlay()})),this.eventManager.listen(this.player,this.player.Event.Core.FRAG_LOADED,(function(t){return e._onFragLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.MANIFEST_LOADED,(function(t){return e._onManifestLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TIMED_METADATA,(function(t){return e._onTimedMetadataLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TRACKS_CHANGED,(function(){return e._setInitialTracks()})),this.eventManager.listen(this.player,this.player.Event.Core.PLAYING,(function(){return e._onPlaying()})),this.eventManager.listen(this.player,this.player.Event.Core.FIRST_PLAYING,(function(){return e._onFirstPlaying()})),this.eventManager.listen(this.player,this.player.Event.Core.SEEKING,(function(){return e._onSeeking()})),this.eventManager.listen(this.player,this.player.Event.Core.PAUSE,(function(){return e._onPause()})),this.eventManager.listen(this.player,this.player.Event.Core.ENDED,(function(){return e._onEnded()})),this.eventManager.listen(this.player,this.player.Event.Core.VIDEO_TRACK_CHANGED,(function(t){return e._onVideoTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.AUDIO_TRACK_CHANGED,(function(t){return e._onAudioTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TEXT_TRACK_CHANGED,(function(t){return e._onTextTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.PLAYER_STATE_CHANGED,(function(t){return e._onPlayerStateChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.RATE_CHANGE,(function(){return e._onPlaybackRateChanged()})),this.eventManager.listen(this.player,this.player.Event.Core.CAN_PLAY,(function(){return e._onCanPlay()})),this.eventManager.listen(this.player,this.player.Event.Core.LOAD_START,(function(){return e._onLoadStart()})),this.eventManager.listen(this.player,this.player.Event.Core.VOLUME_CHANGE,(function(){return e._updateSoundModeInModel()})),this.eventManager.listen(this.player,this.player.Event.VISIBILITY_CHANGE,(function(t){return e._updateViewabilityModeInModel(t.payload.visible)})),this.eventManager.listen(this.player,this.player.Event.Core.MUTE_CHANGE,(function(){return e._updateSoundModeInModel()})),this.eventManager.listen(this.player,this.player.Event.Core.ENTER_FULLSCREEN,(function(){return e._onFullScreenChanged(x.FULLSCREEN)})),this.eventManager.listen(this.player,this.player.Event.Core.EXIT_FULLSCREEN,(function(){return e._onFullScreenChanged(x.NOT_IN_FULLSCREEN)})),this.eventManager.listen(this.player,"related_open",(function(){return e._onRelatedClicked()})),this.eventManager.listen(this.player,"related_selected",(function(){return e._onRelatedSelected()})),this.eventManager.listen(this.player,"share_clicked",(function(){return e._onShareClicked()})),this.eventManager.listen(this.player,"share_network",(function(t){return e._onShareNetworkClicked(t)})),this.eventManager.listen(this.player,"download_item_clicked",(function(){return e._onDownloadItemClicked()})),this.eventManager.listen(this.player,"info_screen_open",(function(){return e._onInfoScreenOpened()})),this.eventManager.listen(this.player,"report_clicked",(function(){return e._onReportClicked()})),this.eventManager.listen(this.player,"report_submitted",(function(t){return e._onReportSubmitted(t)})),this._bindApplicationEvents(),this._initTabMode(),this._initNetworkConnectionType()}},{key:"_bindApplicationEvents",value:function(){var e=this;Object.values(L).forEach((function(t){e.eventManager.listen(e.player,t,(function(t){t.type in V&&e._sendAnalytics(V[t.type],b.ApplicationEvents,t.payload)}))}))}},{key:"_onFirstPlaying",value:function(){this._isPlaying=!0,!this._fragLoadedFiredOnce&&this._performanceObserver&&(this._performanceObserver.disconnect(),this.logger.debug("This adapter / media doesn't fire fragLoaded - disconnect performance observer"))}},{key:"_onLoadStart",value:function(){this._loadStartTime=Date.now()}},{key:"_getRates",value:function(){var e=[];return this.player.getTracks(this.player.Track.VIDEO).forEach((function(t){return e.push(t.bandwidth/X)})),e}},{key:"_setInitialTracks",value:function(){var e=this._getRates(),t=this.player.getActiveTracks();this._rateHandler.setRates(e),t.video&&this._rateHandler.setCurrent(t.video.bandwidth/X),t.audio&&this._model.updateModel({language:t.audio.language}),t.text&&this._model.updateModel({caption:t.text.language})}},{key:"_getAvailableBuffer",value:function(){var e=NaN;return this.player.stats&&(e=this.player.stats.availableBuffer),e}},{key:"_getForwardBufferHealth",value:function(){var e=NaN,t=this._getAvailableBuffer(),n=this._getTargetBuffer();return isNaN(n)||(e=Math.round(1e3*t/n)/1e3),e}},{key:"_getTargetBuffer",value:function(){var e=NaN;return this.player.stats&&(e=this.player.stats.targetBuffer),e}},{key:"_getDroppedFramesRatio",value:function(){var e=-1,t=this._getDroppedAndDecodedFrames();if(t){var n=t[0],r=t[1],i=n-this._lastDroppedFrames,o=r-this._lastTotalFrames;e=o?Math.round(i/o*1e3)/1e3:0,this._lastTotalFrames=r,this._lastDroppedFrames=n}return e}},{key:"_getDroppedAndDecodedFrames",value:function(){if("function"==typeof this.player.getVideoElement().getVideoPlaybackQuality){var e=this.player.getVideoElement().getVideoPlaybackQuality();return[e.droppedVideoFrames,e.totalVideoFrames]}return"number"==typeof this.player.getVideoElement().webkitDroppedFrameCount&&"number"==typeof this.player.getVideoElement().webkitDecodedFrameCount?[this.player.getVideoElement().webkitDroppedFrameCount,this.player.getVideoElement().webkitDecodedFrameCount]:null}},{key:"_onReport",value:function(){this._viewEventEnabled?(this._updatePlayTimeSumModel(),this._model.updateModel({forwardBufferHealth:this._getForwardBufferHealth(),targetBuffer:this._getTargetBuffer(),droppedFramesRatio:this._getDroppedFramesRatio()}),this._sendAnalytics(h.VIEW)):this.logger.warn("VIEW event blocked because server response of viewEventsEnabled=false"),this._model.updateModel({totalSegmentsDownloadTime:0,totalSegmentsDownloadBytes:0,maxManifestDownloadTime:0,maxSegmentDownloadTime:0,maxNetworkConnectionOverhead:0,bufferTime:0})}},{key:"_updateNetworkConnectionTypeinModel",value:function(e){this._model.updateModel({networkConnectionType:e.effectiveType})}},{key:"_initNetworkConnectionType",value:function(){var e=this,t=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection;t&&(this.eventManager.listen(t,"change",(function(){return e._updateNetworkConnectionTypeinModel(t)})),this._updateNetworkConnectionTypeinModel(t))}},{key:"_onPlaying",value:function(){if(this._isFirstPlaying){this._updateSoundModeInModel(),this._updateViewabilityModeInModel(this.player.isVisible),this.player.isUntimedImg()||this._timer.start(),this._isFirstPlaying=!1;var e="auto"===this.player.config.playback.preload||this._isManualPreload?this._firstPlayRequestTime:this._loadStartTime;this._model.updateModel({joinTime:n._getTimeDifferenceInSeconds(e)}),this._sendAnalytics(h.PLAY),this._onReport()}else this._isEnded?(this._timer.start(),this._isEnded=!1,this._sendAnalytics(h.REPLAY)):this._isPaused&&(this._timer.resume(),this._isPaused=!1,this._sendAnalytics(h.RESUME))}},{key:"_onCanPlay",value:function(){this._canPlayOccured=!0,this._model.updateModel({canPlayTime:n._getTimeDifferenceInSeconds(this._loadStartTime)})}},{key:"_onFirstPlay",value:function(){this._canPlayOccured&&(this._isManualPreload=!0),this._isFirstPlay=!1,this._firstPlayRequestTime=Date.now(),this._sendAnalytics(h.PLAY_REQUEST)}},{key:"_onSourceSelected",value:function(){var e=this;this._sendAnalytics(h.IMPRESSION),this.player.isImage()||this.player.isLive()||this.eventManager.listen(this.player,this.player.Event.Core.TIME_UPDATE,(function(){return e._onTimeUpdate()}))}},{key:"_onSeeking",value:function(){this._previousCurrentTime=this.player.currentTime,this._model.updateModel({targetPosition:this.player.currentTime}),this._sendAnalytics(h.SEEK)}},{key:"_onPause",value:function(){this._isPaused=!0,this._timer.stop(),this._sendAnalytics(h.PAUSE)}},{key:"_onEnded",value:function(){this._isEnded=!0,this._onTimeUpdate(),this._model.updateModel({bufferTime:0})}},{key:"_onTimeUpdate",value:function(){this._updatePlayTimeSumModel();var e=parseFloat((this.player.currentTime/this.player.duration).toFixed(2));!this._timePercentEvent.PLAY_REACHED_25&&e>=.25&&(this._timePercentEvent.PLAY_REACHED_25=!0,this._sendAnalytics(h.PLAY_REACHED_25_PERCENT)),!this._timePercentEvent.PLAY_REACHED_50&&e>=.5&&(this._timePercentEvent.PLAY_REACHED_50=!0,this._sendAnalytics(h.PLAY_REACHED_50_PERCENT)),!this._timePercentEvent.PLAY_REACHED_75&&e>=.75&&(this._timePercentEvent.PLAY_REACHED_75=!0,this._sendAnalytics(h.PLAY_REACHED_75_PERCENT)),this._timePercentEvent.PLAY_REACHED_100||1!==e||(this._timePercentEvent.PLAY_REACHED_100=!0,this._sendAnalytics(h.PLAY_REACHED_100_PERCENT))}},{key:"_onFragLoaded",value:function(e){this._fragLoadedFiredOnce||(this._fragLoadedFiredOnce=!0),this._updateFragLoadedStats(e),this._performanceObserver&&(this._handleFragPerformanceObserver(e.payload.url)||this._pendingFragLoadedUrls.push(e.payload.url))}},{key:"_handleFragPerformanceObserver",value:function(e){var t=this._performanceEntries.filter((function(t){return t.name===e})),n=t&&t.length?t[t.length-1]:null;if(n){this._updateMaxNetworkConnectionOverhead(n.connectEnd-n.domainLookupStart);var r=this._performanceEntries.indexOf(n);return r>-1&&r<this._performanceEntries.length&&(this._performanceEntries=this._performanceEntries.splice(r+1,this._performanceEntries.length-(r+1))),!0}return!1}},{key:"_updateMaxNetworkConnectionOverhead",value:function(e){this._model.updateModel({maxNetworkConnectionOverhead:Math.max(this._model.maxNetworkConnectionOverhead,e)})}},{key:"_updateFragLoadedStats",value:function(e){var t=Math.round(e.payload.miliSeconds)/1e3;this._model.updateModel({totalSegmentsDownloadTime:this._model.totalSegmentsDownloadTime+t,totalSegmentsDownloadBytes:this._model.totalSegmentsDownloadBytes+e.payload.bytes,maxSegmentDownloadTime:Math.max(t,this._model.maxSegmentDownloadTime)})}},{key:"_onManifestLoaded",value:function(e){var t=Math.round(e.payload.miliSeconds)/1e3;this._model.updateModel({maxManifestDownloadTime:Math.max(t,this._model.maxManifestDownloadTime)})}},{key:"_onTimedMetadataLoaded",value:function(e){var t=e.payload.cues.filter((function(e){return e.value&&"TEXT"===e.value.key}));if(t.length)try{this._model.updateModel({flavorParamsId:Number(JSON.parse(t[t.length-1].value.data).sequenceId)})}catch(e){this.logger.debug("error parsing id3",e)}}},{key:"_onVideoTrackChanged",value:function(e){var t=e.payload.selectedVideoTrack;this._rateHandler.setCurrent(t.bandwidth/X),this.player.isAdaptiveBitrateEnabled()?this._sendAnalytics(h.FLAVOR_SWITCH):this._sendAnalytics(h.SOURCE_SELECTED)}},{key:"_onAudioTrackChanged",value:function(e){var t=e.payload.selectedAudioTrack;this._model.updateModel({language:t.language}),this._sendAnalytics(h.AUDIO_SELECTED)}},{key:"_onTextTrackChanged",value:function(e){if(this._isPlaying){var t=e.payload.selectedTextTrack;this._model.updateModel({caption:t.language}),this._sendAnalytics(h.CAPTIONS)}}},{key:"_onError",value:function(e){e.payload&&e.payload.severity===W.Severity.CRITICAL&&(this._model.updateModel({errorCode:e.payload.code,errorDetails:e.payload.data,errorPosition:this._isFirstPlay?j.PRE_PLAY:this._isFirstPlaying?j.PRE_PLAYING:j.MID_STREAM}),this._sendAnalytics(h.ERROR),this.reset())}},{key:"_onPlaybackRateChanged",value:function(){this.player.playbackRates.length&&!this.player.playbackRates.includes(this.player.playbackRate)||this._sendAnalytics(h.SPEED)}},{key:"_onPlayerStateChanged",value:function(e){var t=e.payload.oldState,n=e.payload.newState;t.type===this.player.State.BUFFERING&&(this._isBuffering=!1,this._updateBufferModel(),this._sendAnalytics(h.BUFFER_END)),n.type===this.player.State.BUFFERING&&(this._isBuffering=!0,this._bufferStartTime=Date.now(),this._sendAnalytics(h.BUFFER_START))}},{key:"_onRelatedClicked",value:function(){this._sendAnalytics(h.RELATED_OPEN)}},{key:"_onRelatedSelected",value:function(){this._sendAnalytics(h.RELATED_SELECTED)}},{key:"_onShareClicked",value:function(){this._sendAnalytics(h.SHARE_CLICKED)}},{key:"_onShareNetworkClicked",value:function(e){var t=e.payload.shareNetworkName;t&&(this._model.updateModel({shareNetworkName:t}),this._sendAnalytics(h.SHARE_NETWORK))}},{key:"_onReportSubmitted",value:function(e){var t=e.payload.reportType;t&&(this._model.updateModel({reportType:t}),this._sendAnalytics(h.REPORT_SUBMITTED))}},{key:"_onReportClicked",value:function(){this._sendAnalytics(h.REPORT_CLICKED)}},{key:"_onInfoScreenOpened",value:function(){this._sendAnalytics(h.INFO)}},{key:"_onDownloadItemClicked",value:function(){this._sendAnalytics(h.DOWNLOAD)}},{key:"_onFullScreenChanged",value:function(e){this._model.updateModel({screenMode:e}),this._sendAnalytics(e===x.FULLSCREEN?h.ENTER_FULLSCREEN:h.EXIT_FULLSCREEN)}},{key:"_updateSessionStartTimeModel",value:function(e){!this._model.getSessionStartTime()&&e&&("object"===t(e)?(this._model.updateModel({sessionStartTime:e.time}),this._viewEventEnabled=e.viewEventsEnabled):this._model.updateModel({sessionStartTime:e})),this._timer.isStopped()&&this._model.updateModel({sessionStartTime:null})}},{key:"_updateBufferModel",value:function(){var e=n._getTimeDifferenceInSeconds(this._bufferStartTime);this._model.updateModel({bufferTime:this._model.getBufferTime()+e,bufferTimeSum:this._model.getBufferTimeSum()+e})}},{key:"_updatePlayTimeSumModel",value:function(){var e;this.player.isLive()?e=this.config.viewEventCountdown-this._model.getBufferTime():(e=this.player.currentTime-this._previousCurrentTime,this._previousCurrentTime=this.player.currentTime),this._model.updateModel({playTimeSum:this._model.getPlayTimeSum()+e})}},{key:"_setModelDelegates",value:function(){var e=this;this._model.getPlaybackSpeed=function(){return e.player.playbackRate},this._model.getActualBitrate=function(){return e._rateHandler.getCurrent()},this._model.getAverageBitrate=function(){return e._rateHandler.getAverage()},this._model.getPartnerId=function(){return e.config.partnerId},this._model.getEntryId=function(){return e.config.entryId},this._model.getPlaylistId=function(){return e.config.playlistId},this._model.getSessionId=function(){return e.config.sessionId},this._model.getPersistentSessionId=function(){return e.config.persistentSessionId},this._model.getClientVer=function(){return e.config.playerVersion},this._model.getClientTag=function(){return"html5:v"+e.config.playerVersion},this._model.getKS=function(){return e.config.ks},this._model.getVirtualEventId=function(){return e.config.virtualEventId},this._model.getUIConfId=function(){return e.config.uiConfId},this._model.getReferrer=function(){return e.config.referrer},this._model.getCustomVar1=function(){return e.config.customVar1},this._model.getCustomVar2=function(){return e.config.customVar2},this._model.getCustomVar3=function(){return e.config.customVar3},this._model.getPosition=function(){return e._getPosition()},this._model.getDeliveryType=function(){return e._getDeliveryType()},this._model.getPlaybackType=function(){return e._getPlaybackType()},this._model.getPlaybackContext=function(){return e.config.playbackContext},this._model.getApplicationVersion=function(){return e.config.applicationVersion},this._model.getApplication=function(){return e.config.application},this._model.getKalturaApplicationVersion=function(){return e.config.kalturaApplicationVersion},this._model.getKalturaApplication=function(){return e._getKalturaApplicationId(e.config.kalturaApplication)},this._model.getUserId=function(){return e.config.userId}}},{key:"_getKalturaApplicationId",value:function(e){return e in P?P[e]:(this.logger.warn("Kava analytics - unknon kalturaAppName: "+e),"")}},{key:"_getPosition",value:function(){return this.player.isLive()?Number.isNaN(this.player.duration)||this.player.duration-this.player.currentTime<1?0:-(this.player.duration-this.player.currentTime):this._isFirstPlaying?this.player.currentTime||this.player.sources.startTime||0:this.player.currentTime}},{key:"_getDeliveryType",value:function(){return this.player.streamType===this.player.StreamType.PROGRESSIVE?"url":this.player.streamType}},{key:"_getPlaybackType",value:function(){return this.player.isLive()?this.player.isDvr()&&this.player.duration-this.player.currentTime>=this.config.dvrThreshold?"dvr":"live":this.player.isImage()?"img":"vod"}},{key:"_validate",value:function(){return this.config.partnerId?!!this.config.entryId||(this._logMissingParam("entryId"),!1):(this._logMissingParam("partnerId"),!1)}},{key:"_logMissingParam",value:function(e){this.logger.warn("Kava analytics block report because of missing param ".concat(e))}},{key:"_updateTabModeInModel",value:function(e){this._model.updateModel({tabMode:this._isTabHidden(e)&&!this.player.isInPictureInPicture()?B.TAB_NOT_FOCUSED:B.TAB_FOCUSED})}},{key:"_isTabHidden",value:function(e){return document[e]}},{key:"_initTabMode",value:function(){var e,t,n=this;void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),e&&t&&(this.eventManager.listen(document,t,(function(){return n._updateTabModeInModel(e)})),this._updateTabModeInModel(e))}}],[{key:"isValid",value:function(){return!0}},{key:"_getTimeDifferenceInSeconds",value:function(e){return(Date.now()-e)/1e3}}]),n}(e.BasePlugin);_(J,"defaultConfig",{serviceUrl:"".concat(q.Http.protocol,"//analytics.kaltura.com/api_v3/index.php"),requestMethod:K.POST,viewEventCountdown:10,resetSessionCountdown:30,dvrThreshold:120,playbackContext:"",applicationVersion:"",application:"",kalturaApplicationVersion:"",kalturaApplication:""});var Q="1.6.2",z="@playkit-js/playkit-js-kava";(0,e.registerPlugin)("kava",J)})(),r})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("KalturaPlayer",[],t):"object"==typeof exports?exports.KalturaPlayer=t():(e.KalturaPlayer=e.KalturaPlayer||{},e.KalturaPlayer.plugins=e.KalturaPlayer.plugins||{},e.KalturaPlayer.plugins.kava=t())}(self,(()=>(()=>{var e={796:e=>{self,e.exports=function(){"use strict";var e={d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},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 n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e){return r="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},r(e)}function i(e){var t=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,"string");if("object"!==r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===r(t)?t:String(t)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.r(t),e.d(t,{NAME:function(){return b},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return p},RequestBuilder:function(){return l},VERSION:function(){return R}});var u=a((function e(t,r,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n(this,e),this.severity=t,this.category=r,this.code=i,this.data=o,e._logger.error("Category:".concat(r," | Code:").concat(i," |"),o)}));s(u,"Severity",{RECOVERABLE:1,CRITICAL:2}),s(u,"Category",{NETWORK:1,SERVICE:2,PROVIDER:3}),s(u,"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}),s(u,"_logger",{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 l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;n(this,e),s(this,"retryConfig",{async:!0,timeout:0,maxAttempts:4}),s(this,"_attemptCounter",1),this.headers=t}return a(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,n){e._requestPromise={resolve:t,reject:n}}));return this.url||this._requestPromise.reject(new u(u.Severity.CRITICAL,u.Category.NETWORK,u.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 n=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(n)}catch(n){e._requestPromise.reject(e._createError(t,u.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 n=performance.now();t.ontimeout=function(){e._handleError(t,u.Code.TIMEOUT,{timeout:(performance.now()-n)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,u.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,n){t.setRequestHeader(n,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,n){var r=this._createError(e,t,n);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(r);this._attemptCounter++,this._createXHR()}},{key:"_createError",value:function(e,t,n){return Object.assign(n,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new u(u.Severity.CRITICAL,u.Category.NETWORK,t,n)}}]),e}(),c=function e(t){var n;return Array.isArray(t)?(n=t.length>0?t.slice(0):[]).forEach((function(t,i){("object"===r(t)||Array.isArray(t)&&t.length>0)&&(n[i]=e(t))})):"object"===r(t)?(n=Object.assign({},t),Object.keys(n).forEach((function(t){("object"===r(n[t])||Array.isArray(n[t])&&n[t].length>0)&&(n[t]=e(n[t]))}))):n=t,n},d={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},p=function(){function e(){n(this,e)}return a(e,null,[{key:"set",value:function(e){e&&Object.assign(d,e)}},{key:"get",value:function(){return c(d)}}]),e}();function _(e,t){return _=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_(e,t)}function f(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&&_(e,t)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return y(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var v=a((function e(t){n(this,e),s(this,"hasError",!1),"KalturaAPIException"===t.objectType?(this.hasError=!0,this.error=new g(t.code,t.message)):t.error&&"KalturaAPIException"===t.error.objectType?(this.hasError=!0,this.error=new g(t.error.code,t.error.message)):this.data=t})),g=a((function e(t,r){n(this,e),this.code=t,this.message=r})),m=function(e){f(o,e);var t,r,i=(t=o,r=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,n=E(t);if(r){var i=E(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function o(){var e;n(this,o);for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return s(y(e=i.call.apply(i,[this].concat(r))),"requests",[]),e}return a(o,[{key:"add",value:function(e){this.requests.push(e);var t={},n={service:e.service,action:e.action};return Object.assign(t,s({},this.requests.length,Object.assign(n,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:"execute",value:function(e){var t=this;return new Promise((function(n,r){try{t.params=JSON.stringify(t.params)}catch(e){o._logger.error("".concat(e.message)),r(new u(u.Severity.CRITICAL,u.Category.PROVIDER,u.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(i){var o=new T(i,e);o.success?n({headers:t.responseHeaders,response:o}):r(new u(u.Severity.CRITICAL,u.Category.NETWORK,u.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:o.results}))}),(function(e){r(e)}))}))}}]),o}(l);s(m,"_logger",{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 T=a((function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];n(this,e),s(this,"results",[]);var i=t.result?t.result:t,o=(Array.isArray(i)?i:[i]).map((function(e){return new v(e)})),a=o.filter((function(e){return e.hasError}));a.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=o,r&&a.length||a.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));s(T,"_logger",{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){var t=[],n=/\[\]$/,i=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=function(e,n){n="function"==typeof n?n():null==n?"":n,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(n)};return function e(a,s){var u,l,c;if(a)if(i(s))for(u=0,l=s.length;u<l;u++)n.test(a)?o(a,s[u]):e(a+":"+("object"===r(s[u])?u:""),s[u]);else if(s&&"[object Object]"===String(s))for(c in s)e(a+":"+c,s[c]);else o(a,s);else if(i(s))for(u=0,l=s.length;u<l;u++)o(s[u].name,s[u].value);else for(c in s)e(c,s[c]);return t}("",e).join("&").replace(/%20/g,"+")},S="analytics",A=function(e){f(o,e);var t,r,i=(t=o,r=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,n=E(t);if(r){var i=E(this).constructor;e=Reflect.construct(n,arguments,i)}else e=n.apply(this,arguments);return h(this,e)});function o(){return n(this,o),i.apply(this,arguments)}return a(o,null,[{key:"trackEvent",value:function(e,t,n){return"POST"===n?o._trackEventByPOST(e,t):o._trackEventByGET(e,t)}},{key:"_trackEventByGET",value:function(e,t){var n=p.get(),r={};Object.assign(r,n.serviceParams,t);var i=new l;return i.service=S,i.action="trackEvent",i.method="GET",i.retryConfig.maxAttempts=1,i.tag="analytics-trackEvent",i.params=r,i.url=e+"?service="+i.service+"&action="+i.action+"&"+C(i.params),i}},{key:"_trackEventByPOST",value:function(e,t){var n=p.get(),r={};Object.assign(r,n.serviceParams,t);var i=new Map;i.set("Content-Type","application/json");var o=new l(i),a={eventType:r.eventType,partnerId:r.partnerId,entryId:r.entryId,sessionId:r.sessionId};return["eventType","partnerId","entryId","sessionId"].forEach((function(e){return delete r[e]})),o.service=S,o.action="trackEvent",o.method="POST",o.retryConfig.maxAttempts=1,o.tag="analytics-trackEvent",o.params=JSON.stringify(r),o.url=e+"?service="+o.service+"&action="+o.action+"&"+C(a),o}}]),o}(function(){function e(){n(this,e)}return a(e,null,[{key:"getMultiRequest",value:function(e,t,n){var r=p.get(),i=r.serviceParams;Object.assign(i,{ks:t,clientTag:"html5:v"+e}),n&&Object.assign(i,{partnerId:n});var o=new Map;o.set("Content-Type","application/json");var a=new m(o);return a.method="POST",a.service="multirequest",a.url=a.getUrl(r.serviceUrl),a.params=i,a}}]),e}()),b="@playkit-js/playkit-js-providers-analytics-service",R="2.40.4";return t}()}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{EventType:()=>E,HttpMethodType:()=>K,NAME:()=>z,Plugin:()=>J,VERSION:()=>Q});const e=KalturaPlayer;function t(e){return t="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},t(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){var n=function(e,n){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,"string");if("object"!=t(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(n)?n:String(n)}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function s(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e,n){if(n&&("object"===t(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return u(e)}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}function p(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&&d(e,t)}function _(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f,y=n(796),h={VIEW:{type:"VIEW",index:99,getEventModel:function(e){var t={playTimeSum:e.getPlayTimeSum(),bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate(),averageBitrate:e.getAverageBitrate(),audioLanguage:e.getLanguage(),soundMode:e.getSoundMode(),tabMode:e.getTabMode(),viewabilityMode:e.getViewabilityMode(),screenMode:e.getScreenMode()};return isNaN(e.getForwardBufferHealth())||(t.forwardBufferHealth=e.getForwardBufferHealth()),e.getMaxManifestDownloadTime()>0&&(t.manifestDownloadTime=e.getMaxManifestDownloadTime()),e.getSegmentDownloadTime()>0&&(t.segmentDownloadTime=e.getSegmentDownloadTime()),e.getBandwidth()&&(t.bandwidth=e.getBandwidth()),null!==e.getDroppedFramesRatio()&&(t.droppedFramesRatio=e.getDroppedFramesRatio()),isNaN(e.getTargetBuffer())||(t.targetBuffer=e.getTargetBuffer()),""!==e.getNetworkConnectionType()&&(t.networkConnectionType=e.getNetworkConnectionType()),e.getNetworkConnectionOverhead()&&(t.networkConnectionOverhead=e.getNetworkConnectionOverhead()),isNaN(e.getFlavorParamsId())||(t.flavorParamsId=e.getFlavorParamsId()),t}},IMPRESSION:{type:"IMPRESSION",index:1,getEventModel:function(e){var t={};return null!==e.getPlayerJSLoadTime()&&(t.playerJSLoadTime=e.getPlayerJSLoadTime()),t}},PLAY_REQUEST:{type:"PLAY_REQUEST",index:2,getEventModel:function(){return{}}},PLAY:{type:"PLAY",index:3,getEventModel:function(e){var t={bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate(),joinTime:e.getJoinTime(),canPlay:e.getCanPlayTime()};return""!==e.getNetworkConnectionType()&&(t.networkConnectionType=e.getNetworkConnectionType()),t}},RESUME:{type:"RESUME",index:4,getEventModel:function(e){return{bufferTime:e.getBufferTime(),bufferTimeSum:e.getBufferTimeSum(),actualBitrate:e.getActualBitrate()}}},PAUSE:{type:"PAUSE",index:33,getEventModel:function(){return{}}},BUFFER_START:{type:"BUFFER_START",index:45,getEventModel:function(){return{}}},BUFFER_END:{type:"BUFFER_END",index:46,getEventModel:function(){return{}}},REPLAY:{type:"REPLAY",index:34,getEventModel:function(){return{}}},SEEK:{type:"SEEK",index:35,getEventModel:function(e){return{targetPosition:e.getTargetPosition()}}},PLAY_REACHED_25_PERCENT:{type:"PLAY_REACHED_25_PERCENT",index:11,getEventModel:function(){return{}}},PLAY_REACHED_50_PERCENT:{type:"PLAY_REACHED_50_PERCENT",index:12,getEventModel:function(){return{}}},PLAY_REACHED_75_PERCENT:{type:"PLAY_REACHED_75_PERCENT",index:13,getEventModel:function(){return{}}},PLAY_REACHED_100_PERCENT:{type:"PLAY_REACHED_100_PERCENT",index:14,getEventModel:function(){return{}}},SOURCE_SELECTED:{type:"SOURCE_SELECTED",index:39,getEventModel:function(e){return{actualBitrate:e.getActualBitrate()}}},AUDIO_SELECTED:{type:"AUDIO_SELECTED",index:42,getEventModel:function(e){return{language:e.getLanguage()}}},FLAVOR_SWITCH:{type:"FLAVOR_SWITCH",index:43,getEventModel:function(e){return{actualBitrate:e.getActualBitrate()}}},SPEED:{type:"SPEED",index:41,getEventModel:function(){return{}}},CAPTIONS:{type:"CAPTIONS",index:38,getEventModel:function(){return{}}},ERROR:{type:"ERROR",index:98,getEventModel:function(e){return{errorCode:e.getErrorCode(),errorDetails:e.getErrorDetails(),errorPosition:e.getErrorPosition()}}},RELATED_OPEN:{type:"RELATED_OPEN",index:36,getEventModel:function(){return{}}},RELATED_SELECTED:{type:"RELATED_SELECTED",index:37,getEventModel:function(){return{}}},SHARE_CLICKED:{type:"SHARE_CLICKED",index:21,getEventModel:function(){return{}}},SHARE_NETWORK:{type:"SHARE_NETWORK",index:22,getEventModel:function(e){return{socialNetwork:e.getShareNetworkName()}}},ENTER_FULLSCREEN:{type:"ENTER_FULLSCREEN",index:31,getEventModel:function(e){return{screenMode:e.getScreenMode()}}},EXIT_FULLSCREEN:{type:"EXIT_FULLSCREEN",index:32,getEventModel:function(e){return{screenMode:e.getScreenMode()}}},DOWNLOAD:{type:"DOWNLOAD",index:23,getEventModel:function(){return{}}},REPORT_CLICKED:{type:"REPORT_CLICKED",index:24,getEventModel:function(){return{}}},REPORT_SUBMITTED:{type:"REPORT_SUBMITTED",index:25,getEventModel:function(e){return{reportType:e.getReportType()}}},INFO:{type:"INFO",index:40,getEventModel:function(){return{}}}},E=(f={},Object.keys(h).forEach((function(e){return f[e]=e})),f),v=function(){function e(){i(this,e),_(this,"_rates",[]),this._rates=[]}return s(e,[{key:"setRates",value:function(e){var t=this;this._rates=[],e.forEach((function(e){t._rates.push({rate:e,active:!1,duration:0})}))}},{key:"setCurrent",value:function(e){this._rates.forEach((function(e){return e.active=!1}));var t=this._rates.find((function(t){return t.rate===e}));t&&(t.active=!0)}},{key:"getCurrent",value:function(){var e=this._rates.find((function(e){return e.active}));return e?e.rate:-1}},{key:"countCurrent",value:function(){var e=this._rates.find((function(e){return e.active}));e&&e.duration++}},{key:"getAverage",value:function(){var e=0,t=0;return this._rates.forEach((function(n){t+=n.rate*n.duration,e+=n.duration})),e?t/e:0}},{key:"reset",value:function(){this._rates.forEach((function(e){return e.duration=0}))}},{key:"destroy",value:function(){this._rates=[]}}]),e}();function g(e,t,n){return t=c(t),l(e,m()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n))}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(m=function(){return!!e})()}var T=e.core.FakeEvent,C=e.core.FakeEventTarget,S=function(){function e(t,n){i(this,e),_(this,"worker",null);var r=new Blob(["setInterval(() => postMessage(0), ".concat(n,");")]),o=URL.createObjectURL(r);this.worker=new Worker(o),this.worker.onmessage=t}return s(e,[{key:"stop",value:function(){this.worker&&this.worker.terminate()}}]),e}(),A=function(e){function t(e){var n;return i(this,t),(n=g(this,t))._config=e,n}return p(t,e),s(t,[{key:"start",value:function(){var e=this;this._terminateTimer(),this._stopped=!1,this._resetCounter=0,this._eventCounter=0,this._timer=new S((function(){return e._monitor()}),1e3)}},{key:"resume",value:function(){this._stopped=!1,this._resetCounter=0}},{key:"stop",value:function(){this._stopped=!0}},{key:"isStopped",value:function(){return this._stopped}},{key:"destroy",value:function(){this._terminateTimer()}},{key:"_terminateTimer",value:function(){this._timer&&(this._timer.stop(),this._timer=null)}},{key:"_monitor",value:function(){this._stopped?(this._resetCounter===this._config.resetCounter&&(this.dispatchEvent(new T(t.Event.RESET)),this._resetCounter=0,this._eventCounter=0),this._resetCounter++):(this.dispatchEvent(new T(t.Event.TICK)),this._eventCounter===this._config.eventCounter&&(this.dispatchEvent(new T(t.Event.REPORT)),this._eventCounter=0),this._eventCounter++)}}]),t}(C);_(A,"Event",{TICK:"tick",RESET:"reset",REPORT:"report"});var b=function(e){return e.ApplicationEvents="ApplicationEvents",e.PlayerEvents="PlayerEvents",e}({}),R=function(e){return e[e.Create=1]="Create",e[e.Filter=2]="Filter",e[e.Search=3]="Search",e[e.Export=4]="Export",e[e.Navigate=5]="Navigate",e[e.Schedule=6]="Schedule",e[e.Insert=7]="Insert",e[e.Choose=8]="Choose",e[e.Launch=9]="Launch",e[e.Open=10]="Open",e[e.Send=11]="Send",e[e.Invite=12]="Invite",e[e.Close=13]="Close",e[e.Save=14]="Save",e[e.Expand=15]="Expand",e[e.Collapse=16]="Collapse",e[e.Edit=17]="Edit",e[e.Delete=18]="Delete",e[e.Browse=19]="Browse",e[e.Load=20]="Load",e[e.Add=21]="Add",e[e.Menu=22]="Menu",e[e.Register=23]="Register",e[e.Login=24]="Login",e[e.Link=25]="Link",e[e.Toggle=26]="Toggle",e[e.Thumbnail=27]="Thumbnail",e[e.Download=28]="Download",e[e.Share=29]="Share",e.Unknown="Unknown",e}({}),P={KMC:"0",KMS:"1",KAF:"2",PITCH:"3",KMS_GO:"4",WEBCASTING:"5",PERSONAL_CAPTURE:"6",KME:"7",KME_MOBILE_APP:"8",PATH:"9",LECTURE_CAPTURE:"10",EP:"11",CHAT_AND_COLLABORATION:"12",ANALYTICS:"13",EXPRESS_CAPTURE:"14",KPF:"15",KAF_GO:"16",SITES:"17",STUDIO:"18",CAPTIONS_EDITOR:"19",CHECKLIST:"20",PLAYER:"21"},O=10002,I=function(e){return e[e.View=1]="View",e[e.Create=2]="Create",e[e.Edit=3]="Edit",e[e.Participate=4]="Participate",e[e.List=5]="List",e[e.Analytics=6]="Analytics",e[e.Admin=7]="Admin",e[e.Error=8]="Error",e[e.Login=9]="Login",e[e.Registration=10]="Registration",e[e.Custom=11]="Custom",e}({});function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var M,L=k(k(k(k(k(k(k(k(k(k({},{NAVIGATION_OPEN:"navigation_open",NAVIGATION_CLOSE:"navigation_close",NAVIGATION_SEARCH:"navigation_search",NAVIGATION_ITEM_CLICK:"navigation_item_click",NAVIGATION_EXPANDABLE_TEXT_CLICK:"navigation_expandable_text_clicked"}),{DOWNLOAD_ITEM_CLICKED:"download_item_clicked",SHOW_OVERLAY:"download_show_overlay",HIDE_OVERLAY:"download_hide_overlay"}),{TRANSCRIPT_OPEN:"transcript_open",TRANSCRIPT_CLOSE:"transcript_close",TRANSCRIPT_DOWNLOAD:"transcript_download",TRANSCRIPT_PRINT:"transcript_print",TRANSCRIPT_SEARCH:"transcript_search",TRANSCRIPT_NAVIGATE_RESULT:"transcript_navigate_result"}),{CHANGE_LAYOUT:"dualscreen_change_layout"}),{SHARE_CLICKED:"share_clicked",SHARE_CLOSE:"share_close",SHARE_NETWORK:"share_network",SHARE_COPY:"share_copy"}),{BUMPER_CLICKED:"bumper_clicked"}),{SKIP_BUTTON_CLICK:"skip_button_click",SKIP_BUTTON_DISPLAYED:"skip_button_displayed"}),{PLAYLIST_OPEN:"playlist_open",PLAYLIST_CLOSE:"playlist_close"}),{RELATED_SELECTED:"related_selected",RELATED_OPEN:"related_open",RELATED_CLOSE:"related_close"}),{CALL_TO_ACTION_BUTTON_CLICK:"call_to_action_button_click"});function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var V=(_(_(_(_(_(_(_(_(_(_(M={},L.CHANGE_LAYOUT,{type:"CHANGE_LAYOUT",getEventModel:function(e){return{eventType:O,buttonName:"Dual__screen_change_layout",buttonType:R.Unknown,buttonValue:e.layout}}}),L.SHARE_CLICKED,{type:"SHARE_CLICKED",getEventModel:function(){return{eventType:O,buttonName:"Share_embed_open",buttonType:R.Open,buttonValue:""}}}),L.SHARE_CLOSE,{type:"SHARE_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Share_embed_close",buttonType:R.Close,buttonValue:""}}}),L.SHARE_NETWORK,{type:"SHARE_NETWORK",getEventModel:function(e){var t,n={eventType:O,buttonType:R.Share,buttonValue:""};switch(e.socialNetworkName){case"twitter":t="Share_embed_X_click";break;case"facebook":t="Share_embed_facebook_click";break;case"email":t="Share_embed_email_click";break;case"linkedin":t="Share_embed_linkedin_click";break;default:t="unknown"}return w(w({},n),{},{buttonName:t})}}),L.SHARE_COPY,{type:"SHARE_COPY",getEventModel:function(e){return{eventType:O,buttonName:"Share_embed_X_click",buttonType:R.Share,buttonValue:e.videoClippingOption}}}),L.DOWNLOAD_ITEM_CLICKED,{type:"DOWNLOAD_ITEM_CLICKED",getEventModel:function(e){var t,n={eventType:O,buttonType:R.Download},r=e.assetType,i=e.fileType,o=e.description;switch(r){case"Media":t="Download_video_download";break;case"Captions":t="Download_captions_download";break;case"Attachments":t="Download_attachment_download",o=i;break;default:t="",o=""}return w(w({},n),{},{buttonName:t,buttonValue:o})}}),L.SHOW_OVERLAY,{type:"SHOW_OVERLAY",getEventModel:function(){return{eventType:O,buttonName:"Download_open",buttonType:R.Open,buttonValue:""}}}),L.HIDE_OVERLAY,{type:"HIDE_OVERLAY",getEventModel:function(){return{eventType:O,buttonName:"Download_close",buttonType:R.Close,buttonValue:""}}}),L.BUMPER_CLICKED,{type:"BUMPER_CLICKED",getEventModel:function(){return{eventType:O,buttonName:"Bumper_click",buttonType:R.Link,buttonValue:""}}}),L.NAVIGATION_OPEN,{type:"NAVIGATION_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Navigation_open",buttonType:R.Open,buttonValue:e.auto?"auto":"manual"}}}),_(_(_(_(_(_(_(_(_(_(M,L.NAVIGATION_CLOSE,{type:"NAVIGATION_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Navigation_close",buttonType:R.Close,buttonValue:""}}}),L.NAVIGATION_SEARCH,{type:"NAVIGATION_SEARCH",getEventModel:function(e){var t={eventType:O,buttonType:R.Search},n=e.searchQuery,r=e.activeTab,i=e.availableTabs,o="",a=n;switch(r){case"All":o=i.length>0?"Navigation_search":"Navigation_all_tab";break;case"Chapter":o="Navigation_chapters_tab";break;case"Slide":o="Navigation_slides_tab";break;case"Hotspot":o="Navigation_hotspots_tab"}return w(w({},t),{},{buttonName:o,buttonValue:a})}}),L.NAVIGATION_ITEM_CLICK,{type:"NAVIGATION_ITEM_CLICK",getEventModel:function(e){var t={eventType:O,buttonType:R.Choose,buttonValue:""},n="";switch(e.itemType){case"Chapter":n="Navigation_chapter_click";break;case"Slide":n="Navigation_slide_click";break;case"Hotspot":n="Navigation_hotspots_click"}return w(w({},t),{},{buttonName:n})}}),L.NAVIGATION_EXPANDABLE_TEXT_CLICK,{type:"NAVIGATION_EXPANDABLE_TEXT_CLICK",getEventModel:function(e){var t={eventType:O,buttonValue:""},n=e.isTextExpanded,r=e.itemType,i="",o=n?R.Expand:R.Collapse;switch(r){case"Chapter":i=n?"Navigation_chapters_see_more":"Navigation_chapters_see_less";break;case"Slide":i=n?"Navigation_slides_see_more":"Navigation_slides_see_less";break;case"Hotspot":i=n?"Navigation_hotspots_see_more":"Navigation_hotspots_see_less"}return w(w({},t),{},{buttonName:i,buttonType:o})}}),L.TRANSCRIPT_OPEN,{type:"TRANSCRIPT_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_open",buttonType:R.Open,buttonValue:e.auto?"auto":"manual"}}}),L.TRANSCRIPT_CLOSE,{type:"TRANSCRIPT_CLOSE",getEventModel:function(){return{eventType:O,buttonName:"Transcript_close",buttonType:R.Close,buttonValue:""}}}),L.TRANSCRIPT_DOWNLOAD,{type:"TRANSCRIPT_DOWNLOAD",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_download",buttonType:R.Download,buttonValue:e.videoPosition}}}),L.TRANSCRIPT_PRINT,{type:"TRANSCRIPT_PRINT",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_print",buttonType:R.Download,buttonValue:e.videoPosition}}}),L.TRANSCRIPT_SEARCH,{type:"TRANSCRIPT_SEARCH",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_search",buttonType:R.Search,buttonValue:e.search}}}),L.TRANSCRIPT_NAVIGATE_RESULT,{type:"TRANSCRIPT_NAVIGATE_RESULT",getEventModel:function(e){return{eventType:O,buttonName:"Transcript_navigate_result",buttonType:R.Navigate,buttonValue:e.index}}}),_(_(_(_(_(_(_(_(M,L.PLAYLIST_OPEN,{type:"PLAYLIST_OPEN",getEventModel:function(e){return{eventType:e.auto?10003:O,buttonValue:e.position,buttonType:R.Open,buttonName:e.auto?"Playlist_side_panel_open_auto":"Playlist_side_panel_open_manual"}}}),L.PLAYLIST_CLOSE,{type:"PLAYLIST_CLOSE",getEventModel:function(e){return{eventType:O,buttonValue:e.position,buttonType:R.Close,buttonName:"Playlist_side_panel_close_manual"}}}),L.SKIP_BUTTON_CLICK,{type:"SKIP_BUTTON_CLICK",getEventModel:function(e){var t={eventType:O,buttonType:R.Navigate,buttonValue:""},n=e.mode,r="";return"intro"===n&&(r="Skip_intro_click"),"outro"===n&&(r="Skip_outro_click"),w(w({},t),{},{buttonName:r})}}),L.SKIP_BUTTON_DISPLAYED,{type:"SKIP_BUTTON_DISPLAYED",getEventModel:function(e){var t={eventType:10003,buttonType:I.View,buttonValue:""},n=e.mode,r="";return"intro"===n&&(r="Skip_intro_displayed"),"outro"===n&&(r="Skip_outro_displayed"),w(w({},t),{},{buttonName:r})}}),L.RELATED_OPEN,{type:"RELATED_OPEN",getEventModel:function(e){return{eventType:O,buttonName:"Related_open",buttonType:R.Open,buttonValue:e.expandMode}}}),L.RELATED_CLOSE,{type:"RELATED_CLOSE",getEventModel:function(e){return{eventType:O,buttonName:"Related_close",buttonType:R.Close,buttonValue:e.expandMode}}}),L.RELATED_SELECTED,{type:"RELATED_SELECTED",getEventModel:function(){return{eventType:O,buttonName:"Related_entry_click",buttonType:R.Navigate,buttonValue:""}}}),L.CALL_TO_ACTION_BUTTON_CLICK,{type:"CALL_TO_ACTION_BUTTON_CLICK",getEventModel:function(e){return{eventType:O,buttonValue:e.label,buttonType:R.Link,buttonName:"primary"===e.type?"CTA_primary_button_click":"CTA_secondary_button_click"}}})),F=function(){function e(t){i(this,e),_(this,"totalSegmentsDownloadTime",0),_(this,"totalSegmentsDownloadBytes",0),_(this,"maxSegmentDownloadTime",0),_(this,"maxManifestDownloadTime",0),_(this,"droppedFramesRatio",null),_(this,"screenMode",x.NOT_IN_FULLSCREEN),_(this,"maxNetworkConnectionOverhead",0),_(this,"flavorParamsId",NaN),_(this,"playerJSLoadTime",null),_(this,"shareNetworkName",""),_(this,"reportType",NaN),t&&this.updateModel(t)}return s(e,[{key:"getPlayTimeSum",value:function(){return this.playTimeSum}},{key:"getCanPlayTime",value:function(){return this.canPlayTime}},{key:"getBufferTime",value:function(){return this.bufferTime}},{key:"getBufferTimeSum",value:function(){return this.bufferTimeSum}},{key:"getPlayerJSLoadTime",value:function(){return this.playerJSLoadTime?Math.round(1e3*this.playerJSLoadTime)/1e3:null}},{key:"getJoinTime",value:function(){return this.joinTime}},{key:"getTargetPosition",value:function(){return this.targetPosition}},{key:"getTargetBuffer",value:function(){return this.targetBuffer}},{key:"getLanguage",value:function(){return this.language}},{key:"getCaption",value:function(){return this.caption}},{key:"getBandwidth",value:function(){return this.totalSegmentsDownloadTime>0?Math.round(8*this.totalSegmentsDownloadBytes/this.totalSegmentsDownloadTime)/1e3:0}},{key:"getMaxManifestDownloadTime",value:function(){return this.maxManifestDownloadTime}},{key:"getSegmentDownloadTime",value:function(){return this.maxSegmentDownloadTime}},{key:"getForwardBufferHealth",value:function(){return this.forwardBufferHealth}},{key:"getDroppedFramesRatio",value:function(){return this.droppedFramesRatio}},{key:"getSoundMode",value:function(){return this.soundMode}},{key:"getViewabilityMode",value:function(){return this.viewabilityMode}},{key:"getScreenMode",value:function(){return this.screenMode}},{key:"getTabMode",value:function(){return this.tabMode}},{key:"getNetworkConnectionType",value:function(){return this.networkConnectionType}},{key:"getNetworkConnectionOverhead",value:function(){return Math.round(this.maxNetworkConnectionOverhead)/1e3}},{key:"getErrorCode",value:function(){return this.errorCode}},{key:"getFlavorParamsId",value:function(){return this.flavorParamsId}},{key:"getErrorDetails",value:function(){var e="";if(this.errorDetails)try{e=JSON.stringify(this.errorDetails)}catch(e){}return e}},{key:"getEventIndex",value:function(){return this.eventIndex}},{key:"getErrorPosition",value:function(){return this.errorPosition}},{key:"getSessionStartTime",value:function(){return this.sessionStartTime}},{key:"getShareNetworkName",value:function(){return this.shareNetworkName}},{key:"getReportType",value:function(){return this.reportType}},{key:"updateModel",value:function(e){Object.assign(this,e)}},{key:"getModel",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b.PlayerEvents,n=arguments.length>2?arguments[2]:void 0;switch(t){case b.PlayerEvents:return function(e,t){var n={eventType:e.index,partnerId:t.getPartnerId(),entryId:t.getEntryId(),sessionId:t.getSessionId(),eventIndex:t.getEventIndex(),referrer:t.getReferrer(),deliveryType:t.getDeliveryType(),playbackType:t.getPlaybackType(),clientVer:t.getClientVer(),clientTag:t.getClientTag(),position:t.getPosition(),playbackSpeed:t.getPlaybackSpeed()};t.getCaption()&&(n.caption=t.getCaption()),t.getSessionStartTime()&&(n.sessionStartTime=t.getSessionStartTime()),t.getKS()&&(n.ks=t.getKS()),t.getVirtualEventId()&&(n.virtualEventId=t.getVirtualEventId()),t.getUIConfId()&&(n.uiConfId=t.getUIConfId()),t.getPlaylistId()&&(n.playlistId=t.getPlaylistId()),t.getCustomVar1()&&(n.customVar1=t.getCustomVar1()),t.getCustomVar2()&&(n.customVar2=t.getCustomVar2()),t.getCustomVar3()&&(n.customVar3=t.getCustomVar3()),t.getPlaybackContext()&&(n.playbackContext=t.getPlaybackContext()),t.getApplicationVersion()&&(n.applicationVer=t.getApplicationVersion()),t.getApplication()&&(n.application=t.getApplication()),t.getKalturaApplicationVersion()&&(n.kalturaApplicationVer=t.getKalturaApplicationVersion()),t.getKalturaApplication()&&(n.kalturaApplication=t.getKalturaApplication()),t.getUserId()&&(n.userId=t.getUserId()),t.getPersistentSessionId()&&(n.persistentSessionId=t.getPersistentSessionId());var r=e.getEventModel(t);return Object.assign(r,n)}(e,this);case b.ApplicationEvents:return function(e,t,n){var r={partnerId:t.getPartnerId(),entryId:t.getEntryId(),sessionId:t.getSessionId(),kalturaApplication:P.PLAYER};t.getUserId()&&(r.userId=t.getUserId());var i=e.getEventModel(n);return Object.assign(i,r)}(e,this,n)}}}]),e}(),U=function(e){return e[e.SOUND_OFF=1]="SOUND_OFF",e[e.SOUND_ON=2]="SOUND_ON",e}(U||{}),H=function(e){return e[e.NOT_IN_VIEW=1]="NOT_IN_VIEW",e[e.IN_VIEW=2]="IN_VIEW",e}(H||{}),B=function(e){return e[e.TAB_NOT_FOCUSED=1]="TAB_NOT_FOCUSED",e[e.TAB_FOCUSED=2]="TAB_FOCUSED",e}(B||{}),x=function(e){return e[e.NOT_IN_FULLSCREEN=1]="NOT_IN_FULLSCREEN",e[e.FULLSCREEN=2]="FULLSCREEN",e}(x||{}),j=function(e){return e[e.PRE_PLAY=3]="PRE_PLAY",e[e.PRE_PLAYING=1]="PRE_PLAYING",e[e.MID_STREAM=2]="MID_STREAM",e}(j||{}),K={GET:"GET",POST:"POST"};function Y(e,t,n){return t=c(t),l(e,G()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n))}function G(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(G=function(){return!!e})()}var W=e.core.Error,q=e.core.Utils,X=1024,J=function(e){function n(e,t,r){var o;if(i(this,n),_(u(o=Y(this,n,[e,t,r])),"_lastDroppedFrames",0),_(u(o),"_lastTotalFrames",0),_(u(o),"_performanceEntries",[]),_(u(o),"_pendingFragLoadedUrls",[]),_(u(o),"_fragLoadedFiredOnce",!1),_(u(o),"_canPlayOccured",!1),_(u(o),"_isManualPreload",!1),o._rateHandler=new v,o._model=new F,o._setModelDelegates(),o._timer=new A({resetCounter:o.config.resetSessionCountdown,eventCounter:o.config.viewEventCountdown}),o._viewEventEnabled=!0,o._resetFlags(),o._addBindings(),o._model.updateModel({eventIndex:1,bufferTime:0,bufferTimeSum:0,playTimeSum:0}),performance&&o.config.uiConfId){var a=performance.getEntriesByType("resource").find((function(e){return e.name.match("embedPlaykitJs.*"+o.config.uiConfId)}));a&&o._model.updateModel({playerJSLoadTime:a.duration})}return o}return p(n,e),s(n,[{key:"_updateSoundModeInModel",value:function(){this._model.updateModel({soundMode:this.player.muted||0===this.player.volume?U.SOUND_OFF:U.SOUND_ON})}},{key:"_updateViewabilityModeInModel",value:function(e){this._model.updateModel({viewabilityMode:e||this.player.isInPictureInPicture()?H.IN_VIEW:H.NOT_IN_VIEW})}},{key:"_handleNewPerformanceEntries",value:function(e){for(var t=e.getEntries(),n=0;n<t.length;n++)this._performanceEntries.push(t[n]);for(;this._pendingFragLoadedUrls.length;)this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop())}},{key:"destroy",value:function(){this.eventManager.destroy(),this._reset()}},{key:"_reset",value:function(){this._timer.destroy(),this._rateHandler.destroy(),this._performanceObserver&&this._performanceObserver.disconnect(),this._performanceEntries=[],this._pendingFragLoadedUrls=[]}},{key:"reset",value:function(){this.eventManager.removeAll(),this._resetFlags(),this._addBindings(),this._model.updateModel({eventIndex:1,bufferTime:0,bufferTimeSum:0,playTimeSum:0,sessionStartTime:null}),this._reset()}},{key:"loadMedia",value:function(){window.PerformanceObserver&&(this._performanceObserver=new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this)),this._performanceObserver.observe({entryTypes:["resource"]}))}},{key:"getEventModel",value:function(e){if(e)return this._model.getModel(h[e])}},{key:"EventType",get:function(){return q.Object.copyDeep(E)}},{key:"sendAnalytics",value:function(e){var t=this;return new Promise((function(n,r){y.OVPAnalyticsService.trackEvent(t.config.serviceUrl,e,t.config.requestMethod).doHttpRequest().then((function(r){t._handleServerResponseSuccess(r,e),n()}),(function(n){t._handleServerResponseFailed(n,e),r(n)})),t._model.updateModel({eventIndex:t._model.getEventIndex()+1})}))}},{key:"_resetFlags",value:function(){this._previousCurrentTime=0,this._isPlaying=!1,this._isFirstPlay=!0,this._isFirstPlaying=!0,this._isEnded=!1,this._isPaused=!1,this._isBuffering=!1,this._timePercentEvent={PLAY_REACHED_25_PERCENT:!1,PLAY_REACHED_50_PERCENT:!1,PLAY_REACHED_75_PERCENT:!1,PLAY_REACHED_100_PERCENT:!1},this._canPlayOccured=!1,this._isManualPreload=!1}},{key:"_resetSession",value:function(){this.logger.debug("Reset KAVA session"),this._rateHandler.reset(),this._model.updateModel({eventIndex:1,bufferTimeSum:0,playTimeSum:0})}},{key:"_sendAnalytics",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b.PlayerEvents,n=arguments.length>2?arguments[2]:void 0;if(this._validate()){this._isBuffering&&(this._updateBufferModel(),this._bufferStartTime=Date.now());var r=this._model.getModel(e,t,n);if("function"==typeof this.config.tamperAnalyticsHandler&&!this.config.tamperAnalyticsHandler(r))return void this.logger.debug("Cancel KAVA request",r);this.logger.debug("Sending KAVA event ".concat(r.eventType,":").concat(e.type)),this.sendAnalytics(r).catch((function(){}))}}},{key:"_handleServerResponseSuccess",value:function(e,t){this.logger.debug("KAVA event sent",t),this._updateSessionStartTimeModel(e)}},{key:"_handleServerResponseFailed",value:function(e,t){this.logger.warn("Failed to send KAVA event",t,e)}},{key:"_addBindings",value:function(){var e=this;this.eventManager.listen(this._timer,A.Event.TICK,(function(){return e._rateHandler.countCurrent()})),this.eventManager.listen(this._timer,A.Event.REPORT,(function(){return e._onReport()})),this.eventManager.listen(this._timer,A.Event.RESET,(function(){return e._resetSession()})),this.eventManager.listen(this.player,this.player.Event.Core.SOURCE_SELECTED,(function(){return e._onSourceSelected()})),this.eventManager.listen(this.player,this.player.Event.Core.ERROR,(function(t){return e._onError(t)})),this.eventManager.listen(this.player,this.player.Event.Core.FIRST_PLAY,(function(){return e._onFirstPlay()})),this.eventManager.listen(this.player,this.player.Event.Core.FRAG_LOADED,(function(t){return e._onFragLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.MANIFEST_LOADED,(function(t){return e._onManifestLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TIMED_METADATA,(function(t){return e._onTimedMetadataLoaded(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TRACKS_CHANGED,(function(){return e._setInitialTracks()})),this.eventManager.listen(this.player,this.player.Event.Core.PLAYING,(function(){return e._onPlaying()})),this.eventManager.listen(this.player,this.player.Event.Core.FIRST_PLAYING,(function(){return e._onFirstPlaying()})),this.eventManager.listen(this.player,this.player.Event.Core.SEEKING,(function(){return e._onSeeking()})),this.eventManager.listen(this.player,this.player.Event.Core.PAUSE,(function(){return e._onPause()})),this.eventManager.listen(this.player,this.player.Event.Core.ENDED,(function(){return e._onEnded()})),this.eventManager.listen(this.player,this.player.Event.Core.VIDEO_TRACK_CHANGED,(function(t){return e._onVideoTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.AUDIO_TRACK_CHANGED,(function(t){return e._onAudioTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.TEXT_TRACK_CHANGED,(function(t){return e._onTextTrackChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.PLAYER_STATE_CHANGED,(function(t){return e._onPlayerStateChanged(t)})),this.eventManager.listen(this.player,this.player.Event.Core.RATE_CHANGE,(function(){return e._onPlaybackRateChanged()})),this.eventManager.listen(this.player,this.player.Event.Core.CAN_PLAY,(function(){return e._onCanPlay()})),this.eventManager.listen(this.player,this.player.Event.Core.LOAD_START,(function(){return e._onLoadStart()})),this.eventManager.listen(this.player,this.player.Event.Core.VOLUME_CHANGE,(function(){return e._updateSoundModeInModel()})),this.eventManager.listen(this.player,this.player.Event.VISIBILITY_CHANGE,(function(t){return e._updateViewabilityModeInModel(t.payload.visible)})),this.eventManager.listen(this.player,this.player.Event.Core.MUTE_CHANGE,(function(){return e._updateSoundModeInModel()})),this.eventManager.listen(this.player,this.player.Event.Core.ENTER_FULLSCREEN,(function(){return e._onFullScreenChanged(x.FULLSCREEN)})),this.eventManager.listen(this.player,this.player.Event.Core.EXIT_FULLSCREEN,(function(){return e._onFullScreenChanged(x.NOT_IN_FULLSCREEN)})),this.eventManager.listen(this.player,"related_open",(function(){return e._onRelatedClicked()})),this.eventManager.listen(this.player,"related_selected",(function(){return e._onRelatedSelected()})),this.eventManager.listen(this.player,"share_clicked",(function(){return e._onShareClicked()})),this.eventManager.listen(this.player,"share_network",(function(t){return e._onShareNetworkClicked(t)})),this.eventManager.listen(this.player,"download_item_clicked",(function(){return e._onDownloadItemClicked()})),this.eventManager.listen(this.player,"info_screen_open",(function(){return e._onInfoScreenOpened()})),this.eventManager.listen(this.player,"report_clicked",(function(){return e._onReportClicked()})),this.eventManager.listen(this.player,"report_submitted",(function(t){return e._onReportSubmitted(t)})),this._bindApplicationEvents(),this._initTabMode(),this._initNetworkConnectionType()}},{key:"_bindApplicationEvents",value:function(){var e=this;Object.values(L).forEach((function(t){e.eventManager.listen(e.player,t,(function(t){t.type in V&&e._sendAnalytics(V[t.type],b.ApplicationEvents,t.payload)}))}))}},{key:"_onFirstPlaying",value:function(){this._isPlaying=!0,!this._fragLoadedFiredOnce&&this._performanceObserver&&(this._performanceObserver.disconnect(),this.logger.debug("This adapter / media doesn't fire fragLoaded - disconnect performance observer"))}},{key:"_onLoadStart",value:function(){this._loadStartTime=Date.now()}},{key:"_getRates",value:function(){var e=[];return this.player.getTracks(this.player.Track.VIDEO).forEach((function(t){return e.push(t.bandwidth/X)})),e}},{key:"_setInitialTracks",value:function(){var e=this._getRates(),t=this.player.getActiveTracks();this._rateHandler.setRates(e),t.video&&this._rateHandler.setCurrent(t.video.bandwidth/X),t.audio&&this._model.updateModel({language:t.audio.language}),t.text&&this._model.updateModel({caption:t.text.language})}},{key:"_getAvailableBuffer",value:function(){var e=NaN;return this.player.stats&&(e=this.player.stats.availableBuffer),e}},{key:"_getForwardBufferHealth",value:function(){var e=NaN,t=this._getAvailableBuffer(),n=this._getTargetBuffer();return isNaN(n)||(e=Math.round(1e3*t/n)/1e3),e}},{key:"_getTargetBuffer",value:function(){var e=NaN;return this.player.stats&&(e=this.player.stats.targetBuffer),e}},{key:"_getDroppedFramesRatio",value:function(){var e=-1,t=this._getDroppedAndDecodedFrames();if(t){var n=t[0],r=t[1],i=n-this._lastDroppedFrames,o=r-this._lastTotalFrames;e=o?Math.round(i/o*1e3)/1e3:0,this._lastTotalFrames=r,this._lastDroppedFrames=n}return e}},{key:"_getDroppedAndDecodedFrames",value:function(){if("function"==typeof this.player.getVideoElement().getVideoPlaybackQuality){var e=this.player.getVideoElement().getVideoPlaybackQuality();return[e.droppedVideoFrames,e.totalVideoFrames]}return"number"==typeof this.player.getVideoElement().webkitDroppedFrameCount&&"number"==typeof this.player.getVideoElement().webkitDecodedFrameCount?[this.player.getVideoElement().webkitDroppedFrameCount,this.player.getVideoElement().webkitDecodedFrameCount]:null}},{key:"_onReport",value:function(){this._viewEventEnabled?(this._updatePlayTimeSumModel(),this._model.updateModel({forwardBufferHealth:this._getForwardBufferHealth(),targetBuffer:this._getTargetBuffer(),droppedFramesRatio:this._getDroppedFramesRatio()}),this._sendAnalytics(h.VIEW)):this.logger.warn("VIEW event blocked because server response of viewEventsEnabled=false"),this._model.updateModel({totalSegmentsDownloadTime:0,totalSegmentsDownloadBytes:0,maxManifestDownloadTime:0,maxSegmentDownloadTime:0,maxNetworkConnectionOverhead:0,bufferTime:0})}},{key:"_updateNetworkConnectionTypeinModel",value:function(e){this._model.updateModel({networkConnectionType:e.effectiveType})}},{key:"_initNetworkConnectionType",value:function(){var e=this,t=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection;t&&(this.eventManager.listen(t,"change",(function(){return e._updateNetworkConnectionTypeinModel(t)})),this._updateNetworkConnectionTypeinModel(t))}},{key:"_onPlaying",value:function(){if(this._isFirstPlaying){this._updateSoundModeInModel(),this._updateViewabilityModeInModel(this.player.isVisible),this.player.isUntimedImg()||this._timer.start(),this._isFirstPlaying=!1;var e="auto"===this.player.config.playback.preload||this._isManualPreload?this._firstPlayRequestTime:this._loadStartTime;this._model.updateModel({joinTime:n._getTimeDifferenceInSeconds(e)}),this._sendAnalytics(h.PLAY),this._onReport()}else this._isEnded?(this._timer.start(),this._isEnded=!1,this._sendAnalytics(h.REPLAY)):this._isPaused&&(this._timer.resume(),this._isPaused=!1,this._sendAnalytics(h.RESUME))}},{key:"_onCanPlay",value:function(){this._canPlayOccured=!0,this._model.updateModel({canPlayTime:n._getTimeDifferenceInSeconds(this._loadStartTime)})}},{key:"_onFirstPlay",value:function(){this._canPlayOccured&&(this._isManualPreload=!0),this._isFirstPlay=!1,this._firstPlayRequestTime=Date.now(),this._sendAnalytics(h.PLAY_REQUEST)}},{key:"_onSourceSelected",value:function(){var e=this;this._sendAnalytics(h.IMPRESSION),this.player.isImage()||this.player.isLive()||this.eventManager.listen(this.player,this.player.Event.Core.TIME_UPDATE,(function(){return e._onTimeUpdate()}))}},{key:"_onSeeking",value:function(){this._previousCurrentTime=this.player.currentTime,this._model.updateModel({targetPosition:this.player.currentTime}),this._sendAnalytics(h.SEEK)}},{key:"_onPause",value:function(){this._isPaused=!0,this._timer.stop(),this._sendAnalytics(h.PAUSE)}},{key:"_onEnded",value:function(){this._isEnded=!0,this._onTimeUpdate(),this._model.updateModel({bufferTime:0})}},{key:"_onTimeUpdate",value:function(){this._updatePlayTimeSumModel();var e=parseFloat((this.player.currentTime/this.player.duration).toFixed(2));!this._timePercentEvent.PLAY_REACHED_25&&e>=.25&&(this._timePercentEvent.PLAY_REACHED_25=!0,this._sendAnalytics(h.PLAY_REACHED_25_PERCENT)),!this._timePercentEvent.PLAY_REACHED_50&&e>=.5&&(this._timePercentEvent.PLAY_REACHED_50=!0,this._sendAnalytics(h.PLAY_REACHED_50_PERCENT)),!this._timePercentEvent.PLAY_REACHED_75&&e>=.75&&(this._timePercentEvent.PLAY_REACHED_75=!0,this._sendAnalytics(h.PLAY_REACHED_75_PERCENT)),this._timePercentEvent.PLAY_REACHED_100||1!==e||(this._timePercentEvent.PLAY_REACHED_100=!0,this._sendAnalytics(h.PLAY_REACHED_100_PERCENT))}},{key:"_onFragLoaded",value:function(e){this._fragLoadedFiredOnce||(this._fragLoadedFiredOnce=!0),this._updateFragLoadedStats(e),this._performanceObserver&&(this._handleFragPerformanceObserver(e.payload.url)||this._pendingFragLoadedUrls.push(e.payload.url))}},{key:"_handleFragPerformanceObserver",value:function(e){var t=this._performanceEntries.filter((function(t){return t.name===e})),n=t&&t.length?t[t.length-1]:null;if(n){this._updateMaxNetworkConnectionOverhead(n.connectEnd-n.domainLookupStart);var r=this._performanceEntries.indexOf(n);return r>-1&&r<this._performanceEntries.length&&(this._performanceEntries=this._performanceEntries.splice(r+1,this._performanceEntries.length-(r+1))),!0}return!1}},{key:"_updateMaxNetworkConnectionOverhead",value:function(e){this._model.updateModel({maxNetworkConnectionOverhead:Math.max(this._model.maxNetworkConnectionOverhead,e)})}},{key:"_updateFragLoadedStats",value:function(e){var t=Math.round(e.payload.miliSeconds)/1e3;this._model.updateModel({totalSegmentsDownloadTime:this._model.totalSegmentsDownloadTime+t,totalSegmentsDownloadBytes:this._model.totalSegmentsDownloadBytes+e.payload.bytes,maxSegmentDownloadTime:Math.max(t,this._model.maxSegmentDownloadTime)})}},{key:"_onManifestLoaded",value:function(e){var t=Math.round(e.payload.miliSeconds)/1e3;this._model.updateModel({maxManifestDownloadTime:Math.max(t,this._model.maxManifestDownloadTime)})}},{key:"_onTimedMetadataLoaded",value:function(e){var t=e.payload.cues.filter((function(e){return e.value&&"TEXT"===e.value.key}));if(t.length)try{this._model.updateModel({flavorParamsId:Number(JSON.parse(t[t.length-1].value.data).sequenceId)})}catch(e){this.logger.debug("error parsing id3",e)}}},{key:"_onVideoTrackChanged",value:function(e){var t=e.payload.selectedVideoTrack;this._rateHandler.setCurrent(t.bandwidth/X),this.player.isAdaptiveBitrateEnabled()?this._sendAnalytics(h.FLAVOR_SWITCH):this._sendAnalytics(h.SOURCE_SELECTED)}},{key:"_onAudioTrackChanged",value:function(e){var t=e.payload.selectedAudioTrack;this._model.updateModel({language:t.language}),this._sendAnalytics(h.AUDIO_SELECTED)}},{key:"_onTextTrackChanged",value:function(e){if(this._isPlaying){var t=e.payload.selectedTextTrack;this._model.updateModel({caption:t.language}),this._sendAnalytics(h.CAPTIONS)}}},{key:"_onError",value:function(e){e.payload&&e.payload.severity===W.Severity.CRITICAL&&(this._model.updateModel({errorCode:e.payload.code,errorDetails:e.payload.data,errorPosition:this._isFirstPlay?j.PRE_PLAY:this._isFirstPlaying?j.PRE_PLAYING:j.MID_STREAM}),this._sendAnalytics(h.ERROR),this.reset())}},{key:"_onPlaybackRateChanged",value:function(){this.player.playbackRates.length&&!this.player.playbackRates.includes(this.player.playbackRate)||this._sendAnalytics(h.SPEED)}},{key:"_onPlayerStateChanged",value:function(e){var t=e.payload.oldState,n=e.payload.newState;t.type===this.player.State.BUFFERING&&(this._isBuffering=!1,this._updateBufferModel(),this._sendAnalytics(h.BUFFER_END)),n.type===this.player.State.BUFFERING&&(this._isBuffering=!0,this._bufferStartTime=Date.now(),this._sendAnalytics(h.BUFFER_START))}},{key:"_onRelatedClicked",value:function(){this._sendAnalytics(h.RELATED_OPEN)}},{key:"_onRelatedSelected",value:function(){this._sendAnalytics(h.RELATED_SELECTED)}},{key:"_onShareClicked",value:function(){this._sendAnalytics(h.SHARE_CLICKED)}},{key:"_onShareNetworkClicked",value:function(e){var t=e.payload.shareNetworkName;t&&(this._model.updateModel({shareNetworkName:t}),this._sendAnalytics(h.SHARE_NETWORK))}},{key:"_onReportSubmitted",value:function(e){var t=e.payload.reportType;t&&(this._model.updateModel({reportType:t}),this._sendAnalytics(h.REPORT_SUBMITTED))}},{key:"_onReportClicked",value:function(){this._sendAnalytics(h.REPORT_CLICKED)}},{key:"_onInfoScreenOpened",value:function(){this._sendAnalytics(h.INFO)}},{key:"_onDownloadItemClicked",value:function(){this._sendAnalytics(h.DOWNLOAD)}},{key:"_onFullScreenChanged",value:function(e){this._model.updateModel({screenMode:e}),this._sendAnalytics(e===x.FULLSCREEN?h.ENTER_FULLSCREEN:h.EXIT_FULLSCREEN)}},{key:"_updateSessionStartTimeModel",value:function(e){!this._model.getSessionStartTime()&&e&&("object"===t(e)?(this._model.updateModel({sessionStartTime:e.time}),this._viewEventEnabled=e.viewEventsEnabled):this._model.updateModel({sessionStartTime:e})),this._timer.isStopped()&&this._model.updateModel({sessionStartTime:null})}},{key:"_updateBufferModel",value:function(){var e=n._getTimeDifferenceInSeconds(this._bufferStartTime);this._model.updateModel({bufferTime:this._model.getBufferTime()+e,bufferTimeSum:this._model.getBufferTimeSum()+e})}},{key:"_updatePlayTimeSumModel",value:function(){var e;this.player.isLive()?e=this.config.viewEventCountdown-this._model.getBufferTime():(e=this.player.currentTime-this._previousCurrentTime,this._previousCurrentTime=this.player.currentTime),this._model.updateModel({playTimeSum:this._model.getPlayTimeSum()+e})}},{key:"_setModelDelegates",value:function(){var e=this;this._model.getPlaybackSpeed=function(){return e.player.playbackRate},this._model.getActualBitrate=function(){return e._rateHandler.getCurrent()},this._model.getAverageBitrate=function(){return e._rateHandler.getAverage()},this._model.getPartnerId=function(){return e.config.partnerId},this._model.getEntryId=function(){return e.config.entryId},this._model.getPlaylistId=function(){return e.config.playlistId},this._model.getSessionId=function(){return e.config.sessionId},this._model.getPersistentSessionId=function(){return e.config.persistentSessionId},this._model.getClientVer=function(){return e.config.playerVersion},this._model.getClientTag=function(){return"html5:v"+e.config.playerVersion},this._model.getKS=function(){return e.config.ks},this._model.getVirtualEventId=function(){return e.config.virtualEventId},this._model.getUIConfId=function(){return e.config.uiConfId},this._model.getReferrer=function(){return e.config.referrer},this._model.getCustomVar1=function(){return e.config.customVar1},this._model.getCustomVar2=function(){return e.config.customVar2},this._model.getCustomVar3=function(){return e.config.customVar3},this._model.getPosition=function(){return e._getPosition()},this._model.getDeliveryType=function(){return e._getDeliveryType()},this._model.getPlaybackType=function(){return e._getPlaybackType()},this._model.getPlaybackContext=function(){return e.config.playbackContext},this._model.getApplicationVersion=function(){return e.config.applicationVersion},this._model.getApplication=function(){return e.config.application},this._model.getKalturaApplicationVersion=function(){return e.config.kalturaApplicationVersion},this._model.getKalturaApplication=function(){return e._getKalturaApplicationId(e.config.kalturaApplication)},this._model.getUserId=function(){return e.config.userId}}},{key:"_getKalturaApplicationId",value:function(e){return e in P?P[e]:(this.logger.warn("Kava analytics - unknon kalturaAppName: "+e),"")}},{key:"_getPosition",value:function(){return this.player.isLive()?Number.isNaN(this.player.duration)||this.player.duration-this.player.currentTime<1?0:-(this.player.duration-this.player.currentTime):this._isFirstPlaying?this.player.currentTime||this.player.sources.startTime||0:this.player.currentTime}},{key:"_getDeliveryType",value:function(){return this.player.streamType===this.player.StreamType.PROGRESSIVE?"url":this.player.streamType}},{key:"_getPlaybackType",value:function(){return this.player.isLive()?this.player.isDvr()&&this.player.duration-this.player.currentTime>=this.config.dvrThreshold?"dvr":"live":this.player.isImage()?"img":"vod"}},{key:"_validate",value:function(){return this.config.partnerId?!!this.config.entryId||(this._logMissingParam("entryId"),!1):(this._logMissingParam("partnerId"),!1)}},{key:"_logMissingParam",value:function(e){this.logger.warn("Kava analytics block report because of missing param ".concat(e))}},{key:"_updateTabModeInModel",value:function(e){this._model.updateModel({tabMode:this._isTabHidden(e)&&!this.player.isInPictureInPicture()?B.TAB_NOT_FOCUSED:B.TAB_FOCUSED})}},{key:"_isTabHidden",value:function(e){return document[e]}},{key:"_initTabMode",value:function(){var e,t,n=this;void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),e&&t&&(this.eventManager.listen(document,t,(function(){return n._updateTabModeInModel(e)})),this._updateTabModeInModel(e))}}],[{key:"isValid",value:function(){return!0}},{key:"_getTimeDifferenceInSeconds",value:function(e){return(Date.now()-e)/1e3}}]),n}(e.BasePlugin);_(J,"defaultConfig",{serviceUrl:"".concat(q.Http.protocol,"//analytics.kaltura.com/api_v3/index.php"),requestMethod:K.POST,viewEventCountdown:10,resetSessionCountdown:30,dvrThreshold:120,playbackContext:"",applicationVersion:"",application:"",kalturaApplicationVersion:"",kalturaApplication:""});var Q="1.6.3-canary.0-1bceeba",z="@playkit-js/playkit-js-kava";(0,e.registerPlugin)("kava",J)})(),r})()));
2
2
  //# sourceMappingURL=playkit-kava.js.map
@@ -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/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/kaltura-application.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/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/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","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 _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\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 return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed()\n };\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.getApplicationVersion()) {\n commonModel.applicationVer = model.getApplicationVersion();\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 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 Unknown = 'Unknown'\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};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\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","export const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout'\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_SELECTED: 'related_selected',\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click'\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};\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PluginsEvents } from './applications-events';\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 };\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n const eventModel = eventObj.getEventModel(innerEventPayload);\n return Object.assign(eventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Dual__screen_change_layout',\n buttonType: ButtonType.Unknown,\n buttonValue: payload.layout\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_open',\n buttonType: ButtonType.Open,\n buttonValue: ''\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonType: ButtonType.Share,\n buttonValue: ''\n };\n let buttonName: string;\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n buttonName = 'Share_embed_X_click';\n break;\n case 'facebook':\n buttonName = 'Share_embed_facebook_click';\n break;\n case 'email':\n buttonName = 'Share_embed_email_click';\n break;\n case 'linkedin':\n buttonName = 'Share_embed_linkedin_click';\n break;\n default:\n buttonName = 'unknown';\n }\n\n return { ...model, buttonName };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_X_click',\n buttonType: ButtonType.Share,\n buttonValue: payload.videoClippingOption\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 buttonType: ButtonType.Download\n };\n const { assetType, fileType, description } = payload;\n\n let buttonName: string;\n let buttonValue = description;\n\n switch (assetType) {\n case 'Media':\n buttonName = 'Download_video_download';\n break;\n case 'Captions':\n buttonName = 'Download_captions_download';\n break;\n case 'Attachments':\n buttonName = 'Download_attachment_download';\n buttonValue = fileType;\n break;\n default:\n buttonName = '';\n buttonValue = '';\n }\n return { ...model, buttonName, buttonValue };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Download_open',\n buttonType: ButtonType.Open,\n buttonValue: ''\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Download_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Bumper_click',\n buttonType: ButtonType.Link,\n buttonValue: ''\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Navigation_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['auto'] ? 'auto' : 'manual'\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Navigation_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonType: ButtonType.Search\n };\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n let buttonName: string = '';\n const buttonValue = searchQuery;\n switch (activeTab) {\n case 'All':\n buttonName = availableTabs.length > 0 ? 'Navigation_search' : 'Navigation_all_tab';\n break;\n case 'Chapter':\n buttonName = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n buttonName = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n buttonName = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, buttonName, buttonValue };\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 buttonType: ButtonType.Choose,\n buttonValue: ''\n };\n\n let buttonName: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n buttonName = 'Navigation_chapter_click';\n break;\n case 'Slide':\n buttonName = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n buttonName = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, buttonName };\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 buttonValue: ''\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let buttonName: string = '';\n const buttonType = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n buttonName = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n buttonName = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n buttonName = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, buttonName, buttonType };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['auto'] ? 'auto' : 'manual'\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_download',\n buttonType: ButtonType.Download,\n buttonValue: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_print',\n buttonType: ButtonType.Download,\n buttonValue: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_search',\n buttonType: ButtonType.Search,\n buttonValue: payload.search\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_navigate_result',\n buttonType: ButtonType.Navigate,\n buttonValue: payload.index\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 buttonValue: payload['position'],\n buttonType: ButtonType.Open,\n buttonName: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual'\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonValue: payload['position'],\n buttonType: ButtonType.Close,\n buttonName: 'Playlist_side_panel_close_manual'\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 buttonType: ButtonType.Navigate,\n buttonValue: ''\n };\n\n const { mode } = payload;\n let buttonName: string = '';\n\n if (mode === 'intro') buttonName = 'Skip_intro_click';\n if (mode === 'outro') buttonName = 'Skip_outro_click';\n\n return { ...model, buttonName };\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 buttonType: PageLoadType.View,\n buttonValue: ''\n };\n\n const { mode } = payload;\n let buttonName: string = '';\n\n if (mode === 'intro') buttonName = 'Skip_intro_displayed';\n if (mode === 'outro') buttonName = 'Skip_outro_displayed';\n\n return { ...model, buttonName };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_close',\n buttonType: ButtonType.Close,\n buttonValue: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_SELECTED]: {\n type: 'RELATED_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_entry_click',\n buttonType: ButtonType.Navigate,\n buttonValue: ''\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 buttonValue: payload['label'],\n buttonType: ButtonType.Link,\n buttonName: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click'\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 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 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 getApplicationVersion!: () => any;\n public getApplication!: () => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\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 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 /**\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","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 } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel } from './application-events-model';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _timePercentEvent!: { [time: string]: boolean };\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n\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 applicationVersion: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: ''\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._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._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._timePercentEvent = {\n PLAY_REACHED_25_PERCENT: false,\n PLAY_REACHED_50_PERCENT: false,\n PLAY_REACHED_75_PERCENT: false,\n PLAY_REACHED_100_PERCENT: false\n };\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n this.logger.warn('Failed to send KAVA event', model, err);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this._bindApplicationEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\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 this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\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 this._sendAnalytics(KavaEventModel.VIEW);\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 this._sendAnalytics(KavaEventModel.IMPRESSION);\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));\n if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {\n this._timePercentEvent.PLAY_REACHED_25 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {\n this._timePercentEvent.PLAY_REACHED_50 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {\n this._timePercentEvent.PLAY_REACHED_75 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {\n this._timePercentEvent.PLAY_REACHED_100 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n this._model.updateModel({ flavorParamsId: Number(JSON.parse(id3TagCues[id3TagCues.length - 1].value.data).sequenceId) });\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.getApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getApplication = (): string => this.config.application;\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 }\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 return this._isFirstPlaying ? this.player.currentTime! || this.player.sources.startTime || 0 : this.player.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 this.player.isImage() ? 'img' : '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 _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 { 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","_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","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","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","ApplicationEventType","PageLoadType","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","CHANGE_LAYOUT","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","CALL_TO_ACTION_BUTTON_CLICK","ApplicationEventsModel","_ApplicationEventsMod","payload","buttonName","buttonType","Unknown","buttonValue","layout","Open","Close","Share","socialNetworkName","videoClippingOption","Download","assetType","fileType","description","Link","Search","searchQuery","activeTab","availableTabs","Choose","itemType","isTextExpanded","Expand","Collapse","search","Navigate","mode","View","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventObj","eventBucketName","PlayerEvents","eventPayload","commonModel","getPartnerId","getEntryId","getSessionId","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","position","getPosition","playbackSpeed","getPlaybackSpeed","getCaption","getSessionStartTime","getKS","getVirtualEventId","virtualEventId","getUIConfId","uiConfId","getPlaylistId","playlistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","getApplicationVersion","applicationVer","getApplication","application","getKalturaApplicationVersion","kalturaApplicationVer","getKalturaApplication","kalturaApplication","getUserId","userId","getPersistentSessionId","persistentSessionId","ApplicationEvents","innerEventPayload","getApplicationEventsModel","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","muted","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","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_timePercentEvent","_canPlayOccured","_isManualPreload","logger","reset","_validate","_updateBufferModel","_bufferStartTime","Date","tamperAnalyticsHandler","sendAnalytics","catch","_updateSessionStartTimeModel","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","_bindApplicationEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_sendAnalytics","_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","_this5","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this6","isImage","isLive","TIME_UPDATE","_onTimeUpdate","currentTime","percent","parseFloat","toFixed","PLAY_REACHED_25","PLAY_REACHED_50","PLAY_REACHED_75","PLAY_REACHED_100","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","selectedVideoTrack","isAdaptiveBitrateEnabled","audioTrack","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this7","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","applicationVersion","kalturaApplicationVersion","_getKalturaApplicationId","kalturaAppName","sources","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this8","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/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/kaltura-application.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/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/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","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 _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\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 return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed()\n };\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.getApplicationVersion()) {\n commonModel.applicationVer = model.getApplicationVersion();\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 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 Unknown = 'Unknown'\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};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\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","export const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout'\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_SELECTED: 'related_selected',\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click'\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};\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PluginsEvents } from './applications-events';\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 };\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n const eventModel = eventObj.getEventModel(innerEventPayload);\n return Object.assign(eventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Dual__screen_change_layout',\n buttonType: ButtonType.Unknown,\n buttonValue: payload.layout\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_open',\n buttonType: ButtonType.Open,\n buttonValue: ''\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonType: ButtonType.Share,\n buttonValue: ''\n };\n let buttonName: string;\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n buttonName = 'Share_embed_X_click';\n break;\n case 'facebook':\n buttonName = 'Share_embed_facebook_click';\n break;\n case 'email':\n buttonName = 'Share_embed_email_click';\n break;\n case 'linkedin':\n buttonName = 'Share_embed_linkedin_click';\n break;\n default:\n buttonName = 'unknown';\n }\n\n return { ...model, buttonName };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Share_embed_X_click',\n buttonType: ButtonType.Share,\n buttonValue: payload.videoClippingOption\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 buttonType: ButtonType.Download\n };\n const { assetType, fileType, description } = payload;\n\n let buttonName: string;\n let buttonValue = description;\n\n switch (assetType) {\n case 'Media':\n buttonName = 'Download_video_download';\n break;\n case 'Captions':\n buttonName = 'Download_captions_download';\n break;\n case 'Attachments':\n buttonName = 'Download_attachment_download';\n buttonValue = fileType;\n break;\n default:\n buttonName = '';\n buttonValue = '';\n }\n return { ...model, buttonName, buttonValue };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Download_open',\n buttonType: ButtonType.Open,\n buttonValue: ''\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Download_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Bumper_click',\n buttonType: ButtonType.Link,\n buttonValue: ''\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Navigation_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['auto'] ? 'auto' : 'manual'\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Navigation_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonType: ButtonType.Search\n };\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n let buttonName: string = '';\n const buttonValue = searchQuery;\n switch (activeTab) {\n case 'All':\n buttonName = availableTabs.length > 0 ? 'Navigation_search' : 'Navigation_all_tab';\n break;\n case 'Chapter':\n buttonName = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n buttonName = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n buttonName = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, buttonName, buttonValue };\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 buttonType: ButtonType.Choose,\n buttonValue: ''\n };\n\n let buttonName: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n buttonName = 'Navigation_chapter_click';\n break;\n case 'Slide':\n buttonName = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n buttonName = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, buttonName };\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 buttonValue: ''\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let buttonName: string = '';\n const buttonType = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n buttonName = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n buttonName = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n buttonName = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, buttonName, buttonType };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['auto'] ? 'auto' : 'manual'\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_close',\n buttonType: ButtonType.Close,\n buttonValue: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_download',\n buttonType: ButtonType.Download,\n buttonValue: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_print',\n buttonType: ButtonType.Download,\n buttonValue: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_search',\n buttonType: ButtonType.Search,\n buttonValue: payload.search\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Transcript_navigate_result',\n buttonType: ButtonType.Navigate,\n buttonValue: payload.index\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 buttonValue: payload['position'],\n buttonType: ButtonType.Open,\n buttonName: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual'\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonValue: payload['position'],\n buttonType: ButtonType.Close,\n buttonName: 'Playlist_side_panel_close_manual'\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 buttonType: ButtonType.Navigate,\n buttonValue: ''\n };\n\n const { mode } = payload;\n let buttonName: string = '';\n\n if (mode === 'intro') buttonName = 'Skip_intro_click';\n if (mode === 'outro') buttonName = 'Skip_outro_click';\n\n return { ...model, buttonName };\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 buttonType: PageLoadType.View,\n buttonValue: ''\n };\n\n const { mode } = payload;\n let buttonName: string = '';\n\n if (mode === 'intro') buttonName = 'Skip_intro_displayed';\n if (mode === 'outro') buttonName = 'Skip_outro_displayed';\n\n return { ...model, buttonName };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_open',\n buttonType: ButtonType.Open,\n buttonValue: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_close',\n buttonType: ButtonType.Close,\n buttonValue: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_SELECTED]: {\n type: 'RELATED_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n buttonName: 'Related_entry_click',\n buttonType: ButtonType.Navigate,\n buttonValue: ''\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 buttonValue: payload['label'],\n buttonType: ButtonType.Link,\n buttonName: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click'\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 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 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 getApplicationVersion!: () => any;\n public getApplication!: () => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\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 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 /**\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","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 } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel } from './application-events-model';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _timePercentEvent!: { [time: string]: boolean };\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n\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 applicationVersion: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: ''\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._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._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._timePercentEvent = {\n PLAY_REACHED_25_PERCENT: false,\n PLAY_REACHED_50_PERCENT: false,\n PLAY_REACHED_75_PERCENT: false,\n PLAY_REACHED_100_PERCENT: false\n };\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n this.logger.warn('Failed to send KAVA event', model, err);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this._bindApplicationEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\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 this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\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 this._sendAnalytics(KavaEventModel.VIEW);\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 this._sendAnalytics(KavaEventModel.IMPRESSION);\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));\n if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {\n this._timePercentEvent.PLAY_REACHED_25 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {\n this._timePercentEvent.PLAY_REACHED_50 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {\n this._timePercentEvent.PLAY_REACHED_75 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {\n this._timePercentEvent.PLAY_REACHED_100 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n this._model.updateModel({ flavorParamsId: Number(JSON.parse(id3TagCues[id3TagCues.length - 1].value.data).sequenceId) });\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.getApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getApplication = (): string => this.config.application;\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 }\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 return this._isFirstPlaying ? this.player.currentTime! || this.player.sources.startTime || 0 : this.player.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 this.player.isImage() ? 'img' : '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 _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 { 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","_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","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","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","ApplicationEventType","PageLoadType","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","CHANGE_LAYOUT","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","CALL_TO_ACTION_BUTTON_CLICK","ApplicationEventsModel","_ApplicationEventsMod","payload","buttonName","buttonType","Unknown","buttonValue","layout","Open","Close","Share","socialNetworkName","videoClippingOption","Download","assetType","fileType","description","Link","Search","searchQuery","activeTab","availableTabs","Choose","itemType","isTextExpanded","Expand","Collapse","search","Navigate","mode","View","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventObj","eventBucketName","PlayerEvents","eventPayload","commonModel","getPartnerId","getEntryId","getSessionId","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","position","getPosition","playbackSpeed","getPlaybackSpeed","getCaption","getSessionStartTime","getKS","getVirtualEventId","virtualEventId","getUIConfId","uiConfId","getPlaylistId","playlistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","getApplicationVersion","applicationVer","getApplication","application","getKalturaApplicationVersion","kalturaApplicationVer","getKalturaApplication","kalturaApplication","getUserId","userId","getPersistentSessionId","persistentSessionId","ApplicationEvents","innerEventPayload","getApplicationEventsModel","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","muted","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","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_timePercentEvent","_canPlayOccured","_isManualPreload","logger","reset","_validate","_updateBufferModel","_bufferStartTime","Date","tamperAnalyticsHandler","sendAnalytics","catch","_updateSessionStartTimeModel","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","_bindApplicationEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_sendAnalytics","_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","_this5","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this6","isImage","isLive","TIME_UPDATE","_onTimeUpdate","currentTime","percent","parseFloat","toFixed","PLAY_REACHED_25","PLAY_REACHED_50","PLAY_REACHED_75","PLAY_REACHED_100","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","selectedVideoTrack","isAdaptiveBitrateEnabled","audioTrack","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this7","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","applicationVersion","kalturaApplicationVersion","_getKalturaApplicationId","kalturaAppName","sources","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this8","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playkit-js/playkit-js-kava",
3
- "version": "1.6.2",
3
+ "version": "1.6.3-canary.0-1bceeba",
4
4
  "main": "dist/playkit-kava.js",
5
5
  "scripts": {
6
6
  "serve": "webpack serve --open --mode development",