cloudinary-video-player 2.0.3 → 2.0.4

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.
@@ -9525,16 +9525,20 @@ __webpack_require__.r(__webpack_exports__);
9525
9525
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9526
9526
  /* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
9527
9527
  /* harmony export */ });
9528
- /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cloudinary-video-analytics */ "../node_modules/cloudinary-video-analytics/dist/main.js");
9529
- /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__);
9530
- /* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/consts */ "./utils/consts.js");
9528
+ /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ "../node_modules/video.js/dist/video.es-exposed.js");
9529
+ /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);
9530
+ /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ "../node_modules/cloudinary-video-analytics/dist/main.js");
9531
+ /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);
9532
+ /* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ "./utils/consts.js");
9531
9533
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9532
9534
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9533
9535
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9534
9536
 
9535
9537
 
9538
+
9536
9539
  class CloudinaryAnalytics {
9537
9540
  constructor(player) {
9541
+ var _this = this;
9538
9542
  _defineProperty(this, "getMetadata", () => ({
9539
9543
  cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,
9540
9544
  publicId: this.player.cloudinary.currentPublicId()
@@ -9545,21 +9549,46 @@ class CloudinaryAnalytics {
9545
9549
  this.currentVideMetadata = metadata;
9546
9550
  this.cloudinaryAnalytics.startManualTracking(metadata, {
9547
9551
  videoPlayerType: 'cloudinary video player',
9548
- videoPlayerVersion: "2.0.3"
9552
+ videoPlayerVersion: "2.0.4"
9549
9553
  });
9550
9554
  } else if (this.currentVideMetadata.cloudName !== metadata.cloudName || this.currentVideMetadata.publicId !== metadata.publicId) {
9551
9555
  this.cloudinaryAnalytics.stopManualTracking();
9552
9556
  }
9553
9557
  });
9558
+ _defineProperty(this, "dispatchCustomEventOnVideoPlayer", function (name) {
9559
+ let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9560
+ const ev = new CustomEvent("cld-custom-".concat(name), {
9561
+ detail
9562
+ });
9563
+ _this.player.videoElement.dispatchEvent(ev);
9564
+ });
9565
+ _defineProperty(this, "connectCustomEvents", () => {
9566
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.PLAY, () => this.dispatchCustomEventOnVideoPlayer('play'));
9567
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.PAUSE, () => this.dispatchCustomEventOnVideoPlayer('pause'));
9568
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.EMPTIED, () => this.dispatchCustomEventOnVideoPlayer('emptied'));
9569
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.LOADED_METADATA, () => {
9570
+ const videoDuration = this.player.videoElement.duration || null;
9571
+ this.dispatchCustomEventOnVideoPlayer('loadedmetadata', {
9572
+ videoDuration
9573
+ });
9574
+ });
9575
+ });
9554
9576
  this.player = player;
9555
- this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__.connectCloudinaryAnalytics)(this.player.videoElement);
9577
+ this.shouldUseCustomEvents = (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS;
9578
+ this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {
9579
+ customEvents: this.shouldUseCustomEvents
9580
+ });
9556
9581
  this.currentVideMetadata = {
9557
9582
  cloudName: null,
9558
9583
  publicId: null
9559
9584
  };
9560
9585
  }
9561
9586
  init() {
9562
- this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_1__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);
9587
+ // only for iOS there is problem with reporting events because videojs re-triggers events and stops native ones
9588
+ if (this.shouldUseCustomEvents) {
9589
+ this.connectCustomEvents();
9590
+ }
9591
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);
9563
9592
  }
9564
9593
  }
9565
9594
  /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
@@ -9898,7 +9927,7 @@ class CloudinaryContext {
9898
9927
  options.sourceTypes = options.sourceTypes || _this.sourceTypes();
9899
9928
  options.poster = options.poster || posterOptionsForCurrent();
9900
9929
  options.queryParams = Object.assign(options.queryParams || {}, options.usageReport ? {
9901
- _s: "vp-".concat("2.0.3")
9930
+ _s: "vp-".concat("2.0.4")
9902
9931
  } : {});
9903
9932
  if (options.sourceTypes.indexOf('audio') > -1) {
9904
9933
  builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_7__["default"](publicId, options);
@@ -10964,7 +10993,7 @@ const contextMenuContent = player => {
10964
10993
  const isFullscreen = player.isFullscreen();
10965
10994
  const aboutMenuItem = {
10966
10995
  class: 'player-version',
10967
- label: 'Cloudinary Player v' + "2.0.3"
10996
+ label: 'Cloudinary Player v' + "2.0.4"
10968
10997
  };
10969
10998
  if (!player.controls()) {
10970
10999
  return [aboutMenuItem];
@@ -12685,6 +12714,7 @@ const PLAYER_EVENT = {
12685
12714
  PAUSE_NO_SEEK: 'pausenoseek',
12686
12715
  ERROR: 'error',
12687
12716
  TIME_UPDATE: 'timeupdate',
12717
+ EMPTIED: 'emptied',
12688
12718
  RETRY_PLAYLIST: 'retryplaylist',
12689
12719
  CAN_PLAY_THROUGH: 'canplaythrough',
12690
12720
  CLD_SOURCE_CHANGED: 'cldsourcechanged',
@@ -13600,7 +13630,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_8__["default"].mixin(_
13600
13630
  const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_17__.getAnalyticsFromPlayerOptions)(options);
13601
13631
  const analyticsParams = new URLSearchParams(analyticsData).toString();
13602
13632
  const baseParams = new URLSearchParams({
13603
- vpVersion: "2.0.3",
13633
+ vpVersion: "2.0.4",
13604
13634
  vpInstanceId: this.getVPInstanceId(),
13605
13635
  // #if (process.env.WEBPACK_BUILD_LIGHT)
13606
13636
  // vpLightBuild: true,
@@ -14334,7 +14364,7 @@ const overrideDefaultVideojsComponents = () => {
14334
14364
  \***************************************************************/
14335
14365
  /***/ ((module) => {
14336
14366
 
14337
- !function(e,t){if(true)module.exports=t();else { var n, r; }}(self,(()=>(()=>{"use strict";var e={805:e=>{e.exports=o,e.exports.isMobile=o,e.exports.default=o;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function o(e){e||(e={});let o=e.ua;if(o||"undefined"==typeof navigator||(o=navigator.userAgent),o&&o.headers&&"string"==typeof o.headers["user-agent"]&&(o=o.headers["user-agent"]),"string"!=typeof o)return!1;let i=t.test(o)&&!r.test(o)||!!e.tablet&&n.test(o);return!i&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==o.indexOf("Macintosh")&&-1!==o.indexOf("Safari")&&(i=!0),i}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{connectCloudinaryAnalytics:()=>J});var e=r(805);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)}var o="play",i="pause",a="loadMetadata",u="viewStart",c="viewEnd",l=function(e,t){var r=function(){t(o,{})};return e.addEventListener("play",r),function(){e.removeEventListener("play",r)}},f=function(e,t){var r=function(){t(i,{})};e.addEventListener("pause",r);var n=function(){t(i,{})};return e.addEventListener("emptied",n),function(){e.removeEventListener("play",r),e.removeEventListener("emptied",n)}},d=function(e,t){var r=function(){var r=function(e){var t=e.duration,r=Number.isNaN(t)?null:t;return{videoDuration:Number.POSITIVE_INFINITY===r?"Infinity":r}}(e);t(a,{videoDuration:r.videoDuration})};return e.addEventListener("loadedmetadata",r),e.addEventListener("loadedmetadata_after_init",r),function(){e.removeEventListener("loadedmetadata",r),e.removeEventListener("loadedmetadata_after_init",r)}},s=function(e,t){return{eventName:e,eventTime:Date.now(),eventDetails:t}};function y(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var b=function(e){var t={},r={};return function(n,o){t[n]=[],r[n]=[o];var i=t[n],a=r[n],u=function(e,t){return a.push(s(e,t))},c=[l(e,u),f(e,u),d(e,u)];!function(e){if(e.readyState>0){var t=new CustomEvent("loadedmetadata_after_init");e.dispatchEvent(t)}}(e);return{flushEvents:function(){var e=a.splice(0,a.length);return i.splice.apply(i,[i.length,0].concat(y(e))),e},getAllEvents:function(){return i},destroy:function(){c.forEach((function(e){return e()}))}}}};const m={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let v;const g=new Uint8Array(16);function w(){if(!v&&(v="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!v))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return v(g)}const S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function h(e,t=0){return(S[e[t+0]]+S[e[t+1]]+S[e[t+2]]+S[e[t+3]]+"-"+S[e[t+4]]+S[e[t+5]]+"-"+S[e[t+6]]+S[e[t+7]]+"-"+S[e[t+8]]+S[e[t+9]]+"-"+S[e[t+10]]+S[e[t+11]]+S[e[t+12]]+S[e[t+13]]+S[e[t+14]]+S[e[t+15]]).toLowerCase()}const O=function(e,t,r){if(m.randomUUID&&!t&&!e)return m.randomUUID();const n=(e=e||{}).random||(e.rng||w)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=n[e];return t}return h(n)};var j=function(){return O().replace(/-/g,"")},E="cld-analytics-user-id",I=function(){var e=window.localStorage.getItem(E);if(e)return e;var t=O().replace(/-/g,"");return window.localStorage.setItem(E,t),t};function P(e){return P="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},P(e)}var A=["string","number","boolean"],D=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,k="native",N=[k,"cloudinary video player"];function x(e){return x="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},x(e)}function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){M(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function M(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==x(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==x(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===x(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var U=function(e,t,r){var n,o,i,a=function(e){if("object"===P(e)&&null!==e&&!Array.isArray(e)){var t=Object.keys(e).reduce((function(t,r){return(A.includes(P(e[r]))||null===e[r])&&(t[r]=e[r]),t}),{});return Object.keys(t).length>0?t:null}return null}(null==r?void 0:r.providedData),c=function(e){return null!==e&&JSON.stringify(e).length<=1e3}(a),l=null!=r&&r.customVideoUrlFallback?function(e,t){try{var r=t(e);return{cloudName:r.cloudName,publicId:r.publicId}}catch(e){return null}}(e,r.customVideoUrlFallback):null,f=null!==(n=l)&&"object"===P(n)&&"string"==typeof n.cloudName&&n.cloudName&&"string"==typeof n.publicId&&n.publicId?{cloudName:n.cloudName,publicId:n.publicId}:null;return s(u,T(T({videoUrl:e,analyticsModuleVersion:"1.5.0",videoPlayer:{type:(i=null==r?void 0:r.videoPlayerType,N.includes(i)?i:k),version:(o=null==r?void 0:r.videoPlayerVersion,"string"==typeof o&&D.test(o)?o:null)}},t),{},{customerData:T(T({},c?{providedData:a}:{}),f?{videoData:f}:{})}))};function V(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var _=function(e){var t=V(e);return t.push(s(c,{})),JSON.stringify(t)};function z(e){return z="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},z(e)}function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(r),!0).forEach((function(t){R(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Z(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function R(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==z(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===z(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Y=function(e,t,r,n){var o=function(){var n=t(),o=_(n);r(F(F({},e),{},{events:o}))},i=function(){"hidden"===document.visibilityState&&o()};return n?document.addEventListener("visibilitychange",i):window.addEventListener("beforeunload",o,{once:!0}),function(){window.removeEventListener("beforeunload",o),document.removeEventListener("visibilitychange",i),o()}},$=function(e){return e.currentSrc};function B(e){return B="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},B(e)}var J=function(r){var n=null,o=(0,e.isMobile)({tablet:!0,featureDetect:!0}),i=b(r),a=function(e){return function(e,t){var r=Object.keys(t).reduce((function(e,r){return e.append(r,t[r]),e}),new FormData);return"function"!=typeof window.navigator.sendBeacon?window.fetch(e,{method:"POST",mode:"no-cors",body:r,keepalive:!0}):window.navigator.sendBeacon(e,r)}("https://video-analytics-api.cloudinary.com/v1/video-analytics",e)},u=function(){n&&(n.clear(),n=null)};return{startManualTracking:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=function(e){return"object"!==t(e)?{isValid:!1,errorMessage:"Metadata param needs to be an object"}:"string"!=typeof e.cloudName?{isValid:!1,errorMessage:"You need to provide proper cloud name of your Cloudinary account [cloudName: string]"}:"string"!=typeof e.publicId?{isValid:!1,errorMessage:"You need to provide proper video public ID of your video on your Cloudinary cloud [videoPublicId: string]"}:{isValid:!0}}(e);if(!l.isValid)throw"Cloudinary video analytics tracking called without necessary data (".concat(l.errorMessage,")");if(c&&"object"!==B(c))throw"Options property must be an object";c.customVideoUrlFallback=function(){return e},u();var f=j(),d=$(r),s=U(d,{trackingType:"manual"},c),y=i(f,s),p=Y({userId:I(),viewId:f},y.flushEvents,a,o);n={viewId:f,clear:function(){y.destroy(),p()}}},stopManualTracking:u,startAutoTracking:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n)throw"Cloudinary video analytics tracking is already connected with this HTML Video Element";if(e&&"object"!==B(e))throw"Options property must be an object";var t=function(){var t=$(r);if(t===window.location.href||!t)return null;var u=j(),c=U(t,{trackingType:"auto"},e),l=i(u,c),f=Y({userId:I(),viewId:u},l.flushEvents,a,o);n={viewId:u,clear:function(){l.destroy(),f()}}};r.addEventListener("loadstart",(function(){n||t()})),r.addEventListener("emptied",(function(){u()})),t()}}}})(),n})()));
14367
+ !function(e,t){if(true)module.exports=t();else { var r, n; }}(self,(()=>(()=>{"use strict";var e={805:e=>{e.exports=o,e.exports.isMobile=o,e.exports.default=o;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,n=/CrOS/,r=/android|ipad|playbook|silk/i;function o(e){e||(e={});let o=e.ua;if(o||"undefined"==typeof navigator||(o=navigator.userAgent),o&&o.headers&&"string"==typeof o.headers["user-agent"]&&(o=o.headers["user-agent"]),"string"!=typeof o)return!1;let i=t.test(o)&&!n.test(o)||!!e.tablet&&r.test(o);return!i&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==o.indexOf("Macintosh")&&-1!==o.indexOf("Safari")&&(i=!0),i}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.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(()=>{n.r(r),n.d(r,{connectCloudinaryAnalytics:()=>Q});var e=n(805);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)}var o="play",i="pause",a="loadMetadata",u="cld-custom-",c="viewStart",l="viewEnd",d=function(e,t){var n=function(){t(o,{})};return e.addEventListener("play",n),function(){e.removeEventListener("play",n)}},f=function(e,t){var n=function(){t(o,{})};return e.addEventListener("".concat(u,"play"),n),function(){e.removeEventListener("".concat(u,"play"),n)}},s=function(e,t){var n=function(){t(i,{})};e.addEventListener("pause",n);var r=function(){t(i,{})};return e.addEventListener("emptied",r),function(){e.removeEventListener("pause",n),e.removeEventListener("emptied",r)}},p=function(e,t){var n=function(){t(i,{})};e.addEventListener("".concat(u,"pause"),n);var r=function(){t(i,{})};return e.addEventListener("".concat(u,"emptied"),r),function(){e.removeEventListener("".concat(u,"pause"),n),e.removeEventListener("".concat(u,"emptied"),r)}},y=function(e){var t=e.duration,n=Number.isNaN(t)?null:t;return{videoDuration:Number.POSITIVE_INFINITY===n?"Infinity":n}},v=function(e,t){var n=function(){var n=y(e);t(a,{videoDuration:n.videoDuration})};return e.addEventListener("loadedmetadata",n),e.addEventListener("loadedmetadata_after_init",n),function(){e.removeEventListener("loadedmetadata",n),e.removeEventListener("loadedmetadata_after_init",n)}},m=function(e,t){var n=function(n){var r=y(e),o=n.detail.videoDuration||r.videoDuration;t(a,{videoDuration:o})};e.addEventListener("".concat(u,"loadedmetadata"),n);var r=function(e){t(a,{videoDuration:"number"!=typeof e.detail.videoDuration&&e.detail.videoDuration>0?null:e.detail.videoDuration})};return e.addEventListener("".concat(u,"loadedmetadata_after_init"),r),function(){e.removeEventListener("".concat(u,"loadedmetadata"),n),e.removeEventListener("".concat(u,"loadedmetadata_after_init"),r)}},b=function(e,t){return{eventName:e,eventTime:Date.now(),eventDetails:t}};function g(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var h=function(e,t){var n={},r={};return function(o,i){n[o]=[],r[o]=[i];var a=n[o],c=r[o],l=function(e,t){return c.push(b(e,t))},y=t?[f(e,l),p(e,l),m(e,l)]:[d(e,l),s(e,l),v(e,l)];!function(e,t){if(e.readyState>0){var n=t?"".concat(u,"loadedmetadata_after_init"):"loadedmetadata_after_init",r=new CustomEvent(n);e.dispatchEvent(r)}}(e,t);return{flushEvents:function(){var e=c.splice(0,c.length);return a.splice.apply(a,[a.length,0].concat(g(e))),e},getAllEvents:function(){return a},destroy:function(){y.forEach((function(e){return e()}))}}}};const S={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let O;const j=new Uint8Array(16);function E(){if(!O&&(O="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!O))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return O(j)}const I=[];for(let e=0;e<256;++e)I.push((e+256).toString(16).slice(1));function D(e,t=0){return(I[e[t+0]]+I[e[t+1]]+I[e[t+2]]+I[e[t+3]]+"-"+I[e[t+4]]+I[e[t+5]]+"-"+I[e[t+6]]+I[e[t+7]]+"-"+I[e[t+8]]+I[e[t+9]]+"-"+I[e[t+10]]+I[e[t+11]]+I[e[t+12]]+I[e[t+13]]+I[e[t+14]]+I[e[t+15]]).toLowerCase()}const P=function(e,t,n){if(S.randomUUID&&!t&&!e)return S.randomUUID();const r=(e=e||{}).random||(e.rng||E)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return D(r)};var L=function(){return P().replace(/-/g,"")},A="cld-analytics-user-id",k=function(){var e=window.localStorage.getItem(A);if(e)return e;var t=P().replace(/-/g,"");return window.localStorage.setItem(A,t),t};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)}var x=["string","number","boolean"],T=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,M="native",U=[M,"cloudinary video player"];function V(e){return V="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},V(e)}function _(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 C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_(Object(n),!0).forEach((function(t){z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function z(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==V(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==V(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===V(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Z=function(e,t,n){var r,o,i,a=function(e){if("object"===N(e)&&null!==e&&!Array.isArray(e)){var t=Object.keys(e).reduce((function(t,n){return(x.includes(N(e[n]))||null===e[n])&&(t[n]=e[n]),t}),{});return Object.keys(t).length>0?t:null}return null}(null==n?void 0:n.providedData),u=function(e){return null!==e&&JSON.stringify(e).length<=1e3}(a),l=null!=n&&n.customVideoUrlFallback?function(e,t){try{var n=t(e);return{cloudName:n.cloudName,publicId:n.publicId}}catch(e){return null}}(e,n.customVideoUrlFallback):null,d=null!==(r=l)&&"object"===N(r)&&"string"==typeof r.cloudName&&r.cloudName&&"string"==typeof r.publicId&&r.publicId?{cloudName:r.cloudName,publicId:r.publicId}:null;return b(c,C(C({videoUrl:e,analyticsModuleVersion:"1.6.0",videoPlayer:{type:(i=null==n?void 0:n.videoPlayerType,U.includes(i)?i:M),version:(o=null==n?void 0:n.videoPlayerVersion,"string"==typeof o&&T.test(o)?o:null)}},t),{},{customerData:C(C({},u?{providedData:a}:{}),d?{videoData:d}:{})}))};function F(e){return function(e){if(Array.isArray(e))return R(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return R(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Y=function(e){var t=F(e);return t.push(b(l,{})),JSON.stringify(t)};function $(e){return $="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},$(e)}function B(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 J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function H(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==$(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==$(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===$(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q=function(e,t,n,r){var o=function(){var r=t();if(r.length>0){var o=Y(r);n(J(J({},e),{},{events:o}))}},i=function(){return o()},a=function(){"hidden"===document.visibilityState&&o()},u=function(){return o()};return window.addEventListener("beforeunload",i,{once:!0}),r&&(window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",a)),function(){window.removeEventListener("beforeunload",i),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",a),o()}},G=function(e){return e.currentSrc};function K(e){return K="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},K(e)}var Q=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r&&"object"!==K(r))throw"Options property must be an object";var o=null,i=!0===r.customEvents,a=(0,e.isMobile)({tablet:!0,featureDetect:!0}),c=h(n,i),l=function(e){return function(e,t){var n=Object.keys(t).reduce((function(e,n){return e.append(n,t[n]),e}),new FormData);return"function"!=typeof window.navigator.sendBeacon?window.fetch(e,{method:"POST",mode:"no-cors",body:n,keepalive:!0}):window.navigator.sendBeacon(e,n)}("https://video-analytics-api.cloudinary.com/v1/video-analytics",e)},d=function(){o&&(o.clear(),o=null)};return{startManualTracking:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=function(e){return"object"!==t(e)?{isValid:!1,errorMessage:"Metadata param needs to be an object"}:"string"!=typeof e.cloudName?{isValid:!1,errorMessage:"You need to provide proper cloud name of your Cloudinary account [cloudName: string]"}:"string"!=typeof e.publicId?{isValid:!1,errorMessage:"You need to provide proper video public ID of your video on your Cloudinary cloud [videoPublicId: string]"}:{isValid:!0}}(e);if(!i.isValid)throw"Cloudinary video analytics tracking called without necessary data (".concat(i.errorMessage,")");if(r&&"object"!==K(r))throw"Options property must be an object";r.customVideoUrlFallback=function(){return e},d();var u=L(),f=G(n),s=Z(f,{trackingType:"manual"},r),p=c(u,s),y=q({userId:k(),viewId:u},p.flushEvents,l,a);o={viewId:u,clear:function(){p.destroy(),y()}}},stopManualTracking:d,startAutoTracking:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(o)throw"Cloudinary video analytics tracking is already connected with this HTML Video Element";if(e&&"object"!==K(e))throw"Options property must be an object";var t=function(){var t=G(n);if(t===window.location.href||!t)return null;var r=L(),i=Z(t,{trackingType:"auto"},e),u=c(r,i),d=q({userId:k(),viewId:r},u.flushEvents,l,a);o={viewId:r,clear:function(){u.destroy(),d()}}},r=i?"".concat(u,"loadstart"):"loadstart",f=i?"".concat(u,"emptied"):"emptied";n.addEventListener(r,(function(){o||t()})),n.addEventListener(f,(function(){d()})),t()}}}})(),r})()));
14338
14368
 
14339
14369
  /***/ }),
14340
14370
 
@@ -1310,16 +1310,20 @@ __webpack_require__.r(__webpack_exports__);
1310
1310
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1311
1311
  /* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
1312
1312
  /* harmony export */ });
1313
- /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cloudinary-video-analytics */ "../node_modules/cloudinary-video-analytics/dist/main.js");
1314
- /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__);
1315
- /* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/consts */ "./utils/consts.js");
1313
+ /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ "../node_modules/video.js/dist/alt/video.core-exposed.js");
1314
+ /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);
1315
+ /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ "../node_modules/cloudinary-video-analytics/dist/main.js");
1316
+ /* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);
1317
+ /* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ "./utils/consts.js");
1316
1318
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1317
1319
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
1318
1320
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1319
1321
 
1320
1322
 
1323
+
1321
1324
  class CloudinaryAnalytics {
1322
1325
  constructor(player) {
1326
+ var _this = this;
1323
1327
  _defineProperty(this, "getMetadata", () => ({
1324
1328
  cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,
1325
1329
  publicId: this.player.cloudinary.currentPublicId()
@@ -1330,21 +1334,46 @@ class CloudinaryAnalytics {
1330
1334
  this.currentVideMetadata = metadata;
1331
1335
  this.cloudinaryAnalytics.startManualTracking(metadata, {
1332
1336
  videoPlayerType: 'cloudinary video player',
1333
- videoPlayerVersion: "2.0.3"
1337
+ videoPlayerVersion: "2.0.4"
1334
1338
  });
1335
1339
  } else if (this.currentVideMetadata.cloudName !== metadata.cloudName || this.currentVideMetadata.publicId !== metadata.publicId) {
1336
1340
  this.cloudinaryAnalytics.stopManualTracking();
1337
1341
  }
1338
1342
  });
1343
+ _defineProperty(this, "dispatchCustomEventOnVideoPlayer", function (name) {
1344
+ let detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1345
+ const ev = new CustomEvent("cld-custom-".concat(name), {
1346
+ detail
1347
+ });
1348
+ _this.player.videoElement.dispatchEvent(ev);
1349
+ });
1350
+ _defineProperty(this, "connectCustomEvents", () => {
1351
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.PLAY, () => this.dispatchCustomEventOnVideoPlayer('play'));
1352
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.PAUSE, () => this.dispatchCustomEventOnVideoPlayer('pause'));
1353
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.EMPTIED, () => this.dispatchCustomEventOnVideoPlayer('emptied'));
1354
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.LOADED_METADATA, () => {
1355
+ const videoDuration = this.player.videoElement.duration || null;
1356
+ this.dispatchCustomEventOnVideoPlayer('loadedmetadata', {
1357
+ videoDuration
1358
+ });
1359
+ });
1360
+ });
1339
1361
  this.player = player;
1340
- this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_0__.connectCloudinaryAnalytics)(this.player.videoElement);
1362
+ this.shouldUseCustomEvents = (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS;
1363
+ this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {
1364
+ customEvents: this.shouldUseCustomEvents
1365
+ });
1341
1366
  this.currentVideMetadata = {
1342
1367
  cloudName: null,
1343
1368
  publicId: null
1344
1369
  };
1345
1370
  }
1346
1371
  init() {
1347
- this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_1__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);
1372
+ // only for iOS there is problem with reporting events because videojs re-triggers events and stops native ones
1373
+ if (this.shouldUseCustomEvents) {
1374
+ this.connectCustomEvents();
1375
+ }
1376
+ this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);
1348
1377
  }
1349
1378
  }
1350
1379
  /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
@@ -1683,7 +1712,7 @@ class CloudinaryContext {
1683
1712
  options.sourceTypes = options.sourceTypes || _this.sourceTypes();
1684
1713
  options.poster = options.poster || posterOptionsForCurrent();
1685
1714
  options.queryParams = Object.assign(options.queryParams || {}, options.usageReport ? {
1686
- _s: "vp-".concat("2.0.3")
1715
+ _s: "vp-".concat("2.0.4")
1687
1716
  } : {});
1688
1717
  if (options.sourceTypes.indexOf('audio') > -1) {
1689
1718
  builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_7__["default"](publicId, options);
@@ -2749,7 +2778,7 @@ const contextMenuContent = player => {
2749
2778
  const isFullscreen = player.isFullscreen();
2750
2779
  const aboutMenuItem = {
2751
2780
  class: 'player-version',
2752
- label: 'Cloudinary Player v' + "2.0.3"
2781
+ label: 'Cloudinary Player v' + "2.0.4"
2753
2782
  };
2754
2783
  if (!player.controls()) {
2755
2784
  return [aboutMenuItem];
@@ -4181,6 +4210,7 @@ const PLAYER_EVENT = {
4181
4210
  PAUSE_NO_SEEK: 'pausenoseek',
4182
4211
  ERROR: 'error',
4183
4212
  TIME_UPDATE: 'timeupdate',
4213
+ EMPTIED: 'emptied',
4184
4214
  RETRY_PLAYLIST: 'retryplaylist',
4185
4215
  CAN_PLAY_THROUGH: 'canplaythrough',
4186
4216
  CLD_SOURCE_CHANGED: 'cldsourcechanged',
@@ -5095,7 +5125,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_8__["default"].mixin(_
5095
5125
  const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_17__.getAnalyticsFromPlayerOptions)(options);
5096
5126
  const analyticsParams = new URLSearchParams(analyticsData).toString();
5097
5127
  const baseParams = new URLSearchParams({
5098
- vpVersion: "2.0.3",
5128
+ vpVersion: "2.0.4",
5099
5129
  vpInstanceId: this.getVPInstanceId(),
5100
5130
  // #if (process.env.WEBPACK_BUILD_LIGHT)
5101
5131
  vpLightBuild: true,
@@ -5828,7 +5858,7 @@ const overrideDefaultVideojsComponents = () => {
5828
5858
  \***************************************************************/
5829
5859
  /***/ ((module) => {
5830
5860
 
5831
- !function(e,t){if(true)module.exports=t();else { var n, r; }}(self,(()=>(()=>{"use strict";var e={805:e=>{e.exports=o,e.exports.isMobile=o,e.exports.default=o;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function o(e){e||(e={});let o=e.ua;if(o||"undefined"==typeof navigator||(o=navigator.userAgent),o&&o.headers&&"string"==typeof o.headers["user-agent"]&&(o=o.headers["user-agent"]),"string"!=typeof o)return!1;let i=t.test(o)&&!r.test(o)||!!e.tablet&&n.test(o);return!i&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==o.indexOf("Macintosh")&&-1!==o.indexOf("Safari")&&(i=!0),i}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{connectCloudinaryAnalytics:()=>J});var e=r(805);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)}var o="play",i="pause",a="loadMetadata",u="viewStart",c="viewEnd",l=function(e,t){var r=function(){t(o,{})};return e.addEventListener("play",r),function(){e.removeEventListener("play",r)}},f=function(e,t){var r=function(){t(i,{})};e.addEventListener("pause",r);var n=function(){t(i,{})};return e.addEventListener("emptied",n),function(){e.removeEventListener("play",r),e.removeEventListener("emptied",n)}},d=function(e,t){var r=function(){var r=function(e){var t=e.duration,r=Number.isNaN(t)?null:t;return{videoDuration:Number.POSITIVE_INFINITY===r?"Infinity":r}}(e);t(a,{videoDuration:r.videoDuration})};return e.addEventListener("loadedmetadata",r),e.addEventListener("loadedmetadata_after_init",r),function(){e.removeEventListener("loadedmetadata",r),e.removeEventListener("loadedmetadata_after_init",r)}},s=function(e,t){return{eventName:e,eventTime:Date.now(),eventDetails:t}};function y(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var b=function(e){var t={},r={};return function(n,o){t[n]=[],r[n]=[o];var i=t[n],a=r[n],u=function(e,t){return a.push(s(e,t))},c=[l(e,u),f(e,u),d(e,u)];!function(e){if(e.readyState>0){var t=new CustomEvent("loadedmetadata_after_init");e.dispatchEvent(t)}}(e);return{flushEvents:function(){var e=a.splice(0,a.length);return i.splice.apply(i,[i.length,0].concat(y(e))),e},getAllEvents:function(){return i},destroy:function(){c.forEach((function(e){return e()}))}}}};const m={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let v;const g=new Uint8Array(16);function w(){if(!v&&(v="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!v))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return v(g)}const S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function h(e,t=0){return(S[e[t+0]]+S[e[t+1]]+S[e[t+2]]+S[e[t+3]]+"-"+S[e[t+4]]+S[e[t+5]]+"-"+S[e[t+6]]+S[e[t+7]]+"-"+S[e[t+8]]+S[e[t+9]]+"-"+S[e[t+10]]+S[e[t+11]]+S[e[t+12]]+S[e[t+13]]+S[e[t+14]]+S[e[t+15]]).toLowerCase()}const O=function(e,t,r){if(m.randomUUID&&!t&&!e)return m.randomUUID();const n=(e=e||{}).random||(e.rng||w)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=n[e];return t}return h(n)};var j=function(){return O().replace(/-/g,"")},E="cld-analytics-user-id",I=function(){var e=window.localStorage.getItem(E);if(e)return e;var t=O().replace(/-/g,"");return window.localStorage.setItem(E,t),t};function P(e){return P="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},P(e)}var A=["string","number","boolean"],D=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,k="native",N=[k,"cloudinary video player"];function x(e){return x="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},x(e)}function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){M(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function M(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==x(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==x(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===x(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var U=function(e,t,r){var n,o,i,a=function(e){if("object"===P(e)&&null!==e&&!Array.isArray(e)){var t=Object.keys(e).reduce((function(t,r){return(A.includes(P(e[r]))||null===e[r])&&(t[r]=e[r]),t}),{});return Object.keys(t).length>0?t:null}return null}(null==r?void 0:r.providedData),c=function(e){return null!==e&&JSON.stringify(e).length<=1e3}(a),l=null!=r&&r.customVideoUrlFallback?function(e,t){try{var r=t(e);return{cloudName:r.cloudName,publicId:r.publicId}}catch(e){return null}}(e,r.customVideoUrlFallback):null,f=null!==(n=l)&&"object"===P(n)&&"string"==typeof n.cloudName&&n.cloudName&&"string"==typeof n.publicId&&n.publicId?{cloudName:n.cloudName,publicId:n.publicId}:null;return s(u,T(T({videoUrl:e,analyticsModuleVersion:"1.5.0",videoPlayer:{type:(i=null==r?void 0:r.videoPlayerType,N.includes(i)?i:k),version:(o=null==r?void 0:r.videoPlayerVersion,"string"==typeof o&&D.test(o)?o:null)}},t),{},{customerData:T(T({},c?{providedData:a}:{}),f?{videoData:f}:{})}))};function V(e){return function(e){if(Array.isArray(e))return C(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return C(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return C(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var _=function(e){var t=V(e);return t.push(s(c,{})),JSON.stringify(t)};function z(e){return z="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},z(e)}function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function F(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(r),!0).forEach((function(t){R(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Z(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function R(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==z(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==z(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===z(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Y=function(e,t,r,n){var o=function(){var n=t(),o=_(n);r(F(F({},e),{},{events:o}))},i=function(){"hidden"===document.visibilityState&&o()};return n?document.addEventListener("visibilitychange",i):window.addEventListener("beforeunload",o,{once:!0}),function(){window.removeEventListener("beforeunload",o),document.removeEventListener("visibilitychange",i),o()}},$=function(e){return e.currentSrc};function B(e){return B="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},B(e)}var J=function(r){var n=null,o=(0,e.isMobile)({tablet:!0,featureDetect:!0}),i=b(r),a=function(e){return function(e,t){var r=Object.keys(t).reduce((function(e,r){return e.append(r,t[r]),e}),new FormData);return"function"!=typeof window.navigator.sendBeacon?window.fetch(e,{method:"POST",mode:"no-cors",body:r,keepalive:!0}):window.navigator.sendBeacon(e,r)}("https://video-analytics-api.cloudinary.com/v1/video-analytics",e)},u=function(){n&&(n.clear(),n=null)};return{startManualTracking:function(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=function(e){return"object"!==t(e)?{isValid:!1,errorMessage:"Metadata param needs to be an object"}:"string"!=typeof e.cloudName?{isValid:!1,errorMessage:"You need to provide proper cloud name of your Cloudinary account [cloudName: string]"}:"string"!=typeof e.publicId?{isValid:!1,errorMessage:"You need to provide proper video public ID of your video on your Cloudinary cloud [videoPublicId: string]"}:{isValid:!0}}(e);if(!l.isValid)throw"Cloudinary video analytics tracking called without necessary data (".concat(l.errorMessage,")");if(c&&"object"!==B(c))throw"Options property must be an object";c.customVideoUrlFallback=function(){return e},u();var f=j(),d=$(r),s=U(d,{trackingType:"manual"},c),y=i(f,s),p=Y({userId:I(),viewId:f},y.flushEvents,a,o);n={viewId:f,clear:function(){y.destroy(),p()}}},stopManualTracking:u,startAutoTracking:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n)throw"Cloudinary video analytics tracking is already connected with this HTML Video Element";if(e&&"object"!==B(e))throw"Options property must be an object";var t=function(){var t=$(r);if(t===window.location.href||!t)return null;var u=j(),c=U(t,{trackingType:"auto"},e),l=i(u,c),f=Y({userId:I(),viewId:u},l.flushEvents,a,o);n={viewId:u,clear:function(){l.destroy(),f()}}};r.addEventListener("loadstart",(function(){n||t()})),r.addEventListener("emptied",(function(){u()})),t()}}}})(),n})()));
5861
+ !function(e,t){if(true)module.exports=t();else { var r, n; }}(self,(()=>(()=>{"use strict";var e={805:e=>{e.exports=o,e.exports.isMobile=o,e.exports.default=o;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,n=/CrOS/,r=/android|ipad|playbook|silk/i;function o(e){e||(e={});let o=e.ua;if(o||"undefined"==typeof navigator||(o=navigator.userAgent),o&&o.headers&&"string"==typeof o.headers["user-agent"]&&(o=o.headers["user-agent"]),"string"!=typeof o)return!1;let i=t.test(o)&&!n.test(o)||!!e.tablet&&r.test(o);return!i&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==o.indexOf("Macintosh")&&-1!==o.indexOf("Safari")&&(i=!0),i}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.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(()=>{n.r(r),n.d(r,{connectCloudinaryAnalytics:()=>Q});var e=n(805);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)}var o="play",i="pause",a="loadMetadata",u="cld-custom-",c="viewStart",l="viewEnd",d=function(e,t){var n=function(){t(o,{})};return e.addEventListener("play",n),function(){e.removeEventListener("play",n)}},f=function(e,t){var n=function(){t(o,{})};return e.addEventListener("".concat(u,"play"),n),function(){e.removeEventListener("".concat(u,"play"),n)}},s=function(e,t){var n=function(){t(i,{})};e.addEventListener("pause",n);var r=function(){t(i,{})};return e.addEventListener("emptied",r),function(){e.removeEventListener("pause",n),e.removeEventListener("emptied",r)}},p=function(e,t){var n=function(){t(i,{})};e.addEventListener("".concat(u,"pause"),n);var r=function(){t(i,{})};return e.addEventListener("".concat(u,"emptied"),r),function(){e.removeEventListener("".concat(u,"pause"),n),e.removeEventListener("".concat(u,"emptied"),r)}},y=function(e){var t=e.duration,n=Number.isNaN(t)?null:t;return{videoDuration:Number.POSITIVE_INFINITY===n?"Infinity":n}},v=function(e,t){var n=function(){var n=y(e);t(a,{videoDuration:n.videoDuration})};return e.addEventListener("loadedmetadata",n),e.addEventListener("loadedmetadata_after_init",n),function(){e.removeEventListener("loadedmetadata",n),e.removeEventListener("loadedmetadata_after_init",n)}},m=function(e,t){var n=function(n){var r=y(e),o=n.detail.videoDuration||r.videoDuration;t(a,{videoDuration:o})};e.addEventListener("".concat(u,"loadedmetadata"),n);var r=function(e){t(a,{videoDuration:"number"!=typeof e.detail.videoDuration&&e.detail.videoDuration>0?null:e.detail.videoDuration})};return e.addEventListener("".concat(u,"loadedmetadata_after_init"),r),function(){e.removeEventListener("".concat(u,"loadedmetadata"),n),e.removeEventListener("".concat(u,"loadedmetadata_after_init"),r)}},b=function(e,t){return{eventName:e,eventTime:Date.now(),eventDetails:t}};function g(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var h=function(e,t){var n={},r={};return function(o,i){n[o]=[],r[o]=[i];var a=n[o],c=r[o],l=function(e,t){return c.push(b(e,t))},y=t?[f(e,l),p(e,l),m(e,l)]:[d(e,l),s(e,l),v(e,l)];!function(e,t){if(e.readyState>0){var n=t?"".concat(u,"loadedmetadata_after_init"):"loadedmetadata_after_init",r=new CustomEvent(n);e.dispatchEvent(r)}}(e,t);return{flushEvents:function(){var e=c.splice(0,c.length);return a.splice.apply(a,[a.length,0].concat(g(e))),e},getAllEvents:function(){return a},destroy:function(){y.forEach((function(e){return e()}))}}}};const S={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let O;const j=new Uint8Array(16);function E(){if(!O&&(O="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!O))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return O(j)}const I=[];for(let e=0;e<256;++e)I.push((e+256).toString(16).slice(1));function D(e,t=0){return(I[e[t+0]]+I[e[t+1]]+I[e[t+2]]+I[e[t+3]]+"-"+I[e[t+4]]+I[e[t+5]]+"-"+I[e[t+6]]+I[e[t+7]]+"-"+I[e[t+8]]+I[e[t+9]]+"-"+I[e[t+10]]+I[e[t+11]]+I[e[t+12]]+I[e[t+13]]+I[e[t+14]]+I[e[t+15]]).toLowerCase()}const P=function(e,t,n){if(S.randomUUID&&!t&&!e)return S.randomUUID();const r=(e=e||{}).random||(e.rng||E)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return D(r)};var L=function(){return P().replace(/-/g,"")},A="cld-analytics-user-id",k=function(){var e=window.localStorage.getItem(A);if(e)return e;var t=P().replace(/-/g,"");return window.localStorage.setItem(A,t),t};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)}var x=["string","number","boolean"],T=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,M="native",U=[M,"cloudinary video player"];function V(e){return V="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},V(e)}function _(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 C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_(Object(n),!0).forEach((function(t){z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function z(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==V(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==V(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===V(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Z=function(e,t,n){var r,o,i,a=function(e){if("object"===N(e)&&null!==e&&!Array.isArray(e)){var t=Object.keys(e).reduce((function(t,n){return(x.includes(N(e[n]))||null===e[n])&&(t[n]=e[n]),t}),{});return Object.keys(t).length>0?t:null}return null}(null==n?void 0:n.providedData),u=function(e){return null!==e&&JSON.stringify(e).length<=1e3}(a),l=null!=n&&n.customVideoUrlFallback?function(e,t){try{var n=t(e);return{cloudName:n.cloudName,publicId:n.publicId}}catch(e){return null}}(e,n.customVideoUrlFallback):null,d=null!==(r=l)&&"object"===N(r)&&"string"==typeof r.cloudName&&r.cloudName&&"string"==typeof r.publicId&&r.publicId?{cloudName:r.cloudName,publicId:r.publicId}:null;return b(c,C(C({videoUrl:e,analyticsModuleVersion:"1.6.0",videoPlayer:{type:(i=null==n?void 0:n.videoPlayerType,U.includes(i)?i:M),version:(o=null==n?void 0:n.videoPlayerVersion,"string"==typeof o&&T.test(o)?o:null)}},t),{},{customerData:C(C({},u?{providedData:a}:{}),d?{videoData:d}:{})}))};function F(e){return function(e){if(Array.isArray(e))return R(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return R(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Y=function(e){var t=F(e);return t.push(b(l,{})),JSON.stringify(t)};function $(e){return $="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},$(e)}function B(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 J(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function H(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==$(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==$(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===$(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q=function(e,t,n,r){var o=function(){var r=t();if(r.length>0){var o=Y(r);n(J(J({},e),{},{events:o}))}},i=function(){return o()},a=function(){"hidden"===document.visibilityState&&o()},u=function(){return o()};return window.addEventListener("beforeunload",i,{once:!0}),r&&(window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",a)),function(){window.removeEventListener("beforeunload",i),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",a),o()}},G=function(e){return e.currentSrc};function K(e){return K="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},K(e)}var Q=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r&&"object"!==K(r))throw"Options property must be an object";var o=null,i=!0===r.customEvents,a=(0,e.isMobile)({tablet:!0,featureDetect:!0}),c=h(n,i),l=function(e){return function(e,t){var n=Object.keys(t).reduce((function(e,n){return e.append(n,t[n]),e}),new FormData);return"function"!=typeof window.navigator.sendBeacon?window.fetch(e,{method:"POST",mode:"no-cors",body:n,keepalive:!0}):window.navigator.sendBeacon(e,n)}("https://video-analytics-api.cloudinary.com/v1/video-analytics",e)},d=function(){o&&(o.clear(),o=null)};return{startManualTracking:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=function(e){return"object"!==t(e)?{isValid:!1,errorMessage:"Metadata param needs to be an object"}:"string"!=typeof e.cloudName?{isValid:!1,errorMessage:"You need to provide proper cloud name of your Cloudinary account [cloudName: string]"}:"string"!=typeof e.publicId?{isValid:!1,errorMessage:"You need to provide proper video public ID of your video on your Cloudinary cloud [videoPublicId: string]"}:{isValid:!0}}(e);if(!i.isValid)throw"Cloudinary video analytics tracking called without necessary data (".concat(i.errorMessage,")");if(r&&"object"!==K(r))throw"Options property must be an object";r.customVideoUrlFallback=function(){return e},d();var u=L(),f=G(n),s=Z(f,{trackingType:"manual"},r),p=c(u,s),y=q({userId:k(),viewId:u},p.flushEvents,l,a);o={viewId:u,clear:function(){p.destroy(),y()}}},stopManualTracking:d,startAutoTracking:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(o)throw"Cloudinary video analytics tracking is already connected with this HTML Video Element";if(e&&"object"!==K(e))throw"Options property must be an object";var t=function(){var t=G(n);if(t===window.location.href||!t)return null;var r=L(),i=Z(t,{trackingType:"auto"},e),u=c(r,i),d=q({userId:k(),viewId:r},u.flushEvents,l,a);o={viewId:r,clear:function(){u.destroy(),d()}}},r=i?"".concat(u,"loadstart"):"loadstart",f=i?"".concat(u,"emptied"):"emptied";n.addEventListener(r,(function(){o||t()})),n.addEventListener(f,(function(){d()})),t()}}}})(),r})()));
5832
5862
 
5833
5863
  /***/ }),
5834
5864