cloudinary-video-player 3.13.2-edge.2 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/134.min.js +4 -4
- package/dist/309.min.js +2 -2
- package/dist/350.min.js +2 -2
- package/dist/689.min.js +2 -2
- package/dist/adaptive-streaming.js +2 -2
- package/dist/adaptive-streaming.min.js +2 -2
- package/dist/chapters.js +2 -2
- package/dist/chapters.min.js +2 -2
- package/dist/cld-player-core.js +2 -2
- package/dist/cld-player-core.min.js +2 -2
- package/dist/cld-poster-url.js +2 -2
- package/dist/cld-poster-url.min.js +2 -2
- package/dist/cld-video-player-lazy.js +2 -2
- package/dist/cld-video-player-lazy.min.js +2 -2
- package/dist/cld-video-player.css +2 -2
- package/dist/cld-video-player.js +6 -6
- package/dist/cld-video-player.light.js +6 -6
- package/dist/cld-video-player.light.min.js +4 -4
- package/dist/cld-video-player.min.css +2 -2
- package/dist/cld-video-player.min.js +4 -4
- package/dist/colors.js +2 -2
- package/dist/colors.min.js +2 -2
- package/dist/dash.js +2 -2
- package/dist/dash.min.js +2 -2
- package/dist/debug.js +2 -2
- package/dist/debug.min.js +2 -2
- package/dist/ima.js +2 -2
- package/dist/ima.min.js +2 -2
- package/dist/interaction-areas.js +2 -2
- package/dist/interaction-areas.min.js +2 -2
- package/dist/node_modules_lodash_throttle_js.js +2 -2
- package/dist/playlist.js +2 -2
- package/dist/playlist.min.js +2 -2
- package/dist/plugins_cloudinary_url-helpers_js-utils_cloudinary-config-from-options_js-utils_querystring_j-adfe37.js +2 -2
- package/dist/recommendations-overlay.js +2 -2
- package/dist/recommendations-overlay.min.js +2 -2
- package/dist/share.js +2 -2
- package/dist/share.min.js +2 -2
- package/dist/shoppable.js +2 -2
- package/dist/shoppable.min.js +2 -2
- package/dist/utils_fetch-config_js.js +2 -2
- package/dist/utils_schedule_js.js +2 -2
- package/dist/video-player_js.js +6 -6
- package/dist/visual-search.js +2 -2
- package/dist/visual-search.min.js +2 -2
- package/lib/cld-video-player.min.css +2 -2
- package/lib/video-player.js +4 -4
- package/package.json +1 -1
package/dist/video-player_js.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cloudinary Video Player v3.
|
|
3
|
-
* Built on 2026-04-
|
|
2
|
+
* Cloudinary Video Player v3.14.0
|
|
3
|
+
* Built on 2026-04-20T09:56:44.092Z
|
|
4
4
|
* https://github.com/cloudinary/cloudinary-video-player
|
|
5
5
|
*/
|
|
6
6
|
/*
|
|
@@ -140,7 +140,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
140
140
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
141
141
|
|
|
142
142
|
"use strict";
|
|
143
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_styles_components_title_bar_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/assets/styles/components/title-bar.scss */ \"./assets/styles/components/title-bar.scss\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../component-utils */ \"./components/component-utils.js\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_component_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/utf8Base64 */ \"./utils/utf8Base64.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n// support VJS5 & VJS6 at the same time\nconst dom = (video_js__WEBPACK_IMPORTED_MODULE_0___default().dom) || (video_js__WEBPACK_IMPORTED_MODULE_0___default());\nconst Component = video_js__WEBPACK_IMPORTED_MODULE_0___default().getComponent('Component');\nclass TitleBar extends Component {\n constructor(player) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(player, options);\n this.on(player, 'cldsourcechanged', (_, _ref) => {\n let {\n source\n } = _ref;\n return this.setItem(source);\n });\n }\n setItem(source) {\n if (!source) {\n this.setTitle('');\n this.setDescription('');\n return;\n }\n const info = source.info();\n this.setTitle(info.title);\n this.setDescription(info.subtitle);\n\n // auto-fetch title/description if `true`\n const shouldFetchTitle = source.title && source.title() === true;\n const shouldFetchDescription = source.description && source.description() === true;\n if (shouldFetchTitle || shouldFetchDescription) {\n this.fetchAutoMetadata(source, shouldFetchTitle, shouldFetchDescription);\n }\n }\n fetchAutoMetadata(source, fetchTitle, fetchDescription) {\n if (source.isRawUrl) return;\n const config = source.cloudinaryConfig();\n const publicId = source.publicId();\n if (!config?.cloud_name || !publicId) return;\n const urlPrefix = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__.getCloudinaryUrlPrefix)(config);\n const deliveryType = source.getInitOptions().type || 'upload';\n const metadataUrl = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(`${urlPrefix}/_applet_/video_service/video_metadata/${deliveryType}/${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__.utf8ToBase64)(publicId)}.json`, source.queryParams());\n fetch(metadataUrl, {\n headers: {\n 'X-Cld-Video-Player-Version': \"3.
|
|
143
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_styles_components_title_bar_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~/assets/styles/components/title-bar.scss */ \"./assets/styles/components/title-bar.scss\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../component-utils */ \"./components/component-utils.js\");\n/* harmony import */ var _component_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_component_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/utf8Base64 */ \"./utils/utf8Base64.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~/plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n// support VJS5 & VJS6 at the same time\nconst dom = (video_js__WEBPACK_IMPORTED_MODULE_0___default().dom) || (video_js__WEBPACK_IMPORTED_MODULE_0___default());\nconst Component = video_js__WEBPACK_IMPORTED_MODULE_0___default().getComponent('Component');\nclass TitleBar extends Component {\n constructor(player) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(player, options);\n this.on(player, 'cldsourcechanged', (_, _ref) => {\n let {\n source\n } = _ref;\n return this.setItem(source);\n });\n }\n setItem(source) {\n if (!source) {\n this.setTitle('');\n this.setDescription('');\n return;\n }\n const info = source.info();\n this.setTitle(info.title);\n this.setDescription(info.subtitle);\n\n // auto-fetch title/description if `true`\n const shouldFetchTitle = source.title && source.title() === true;\n const shouldFetchDescription = source.description && source.description() === true;\n if (shouldFetchTitle || shouldFetchDescription) {\n this.fetchAutoMetadata(source, shouldFetchTitle, shouldFetchDescription);\n }\n }\n fetchAutoMetadata(source, fetchTitle, fetchDescription) {\n if (source.isRawUrl) return;\n const config = source.cloudinaryConfig();\n const publicId = source.publicId();\n if (!config?.cloud_name || !publicId) return;\n const urlPrefix = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_4__.getCloudinaryUrlPrefix)(config);\n const deliveryType = source.getInitOptions().type || 'upload';\n const metadataUrl = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_5__.appendQueryParams)(`${urlPrefix}/_applet_/video_service/video_metadata/${deliveryType}/${(0,_utils_utf8Base64__WEBPACK_IMPORTED_MODULE_3__.utf8ToBase64)(publicId)}.json`, source.queryParams());\n fetch(metadataUrl, {\n headers: {\n 'X-Cld-Video-Player-Version': \"3.14.0\"\n }\n }).then(response => {\n if (!response.ok) throw new Error(`HTTP ${response.status}`);\n return response.json();\n }).then(metadata => {\n if (fetchTitle && metadata.title) {\n this.setTitle(metadata.title);\n }\n if (fetchDescription && metadata.description) {\n this.setDescription(metadata.description);\n }\n }).catch(error => {\n console.warn(`Failed to fetch metadata for ${publicId}:`, error);\n });\n }\n setTitle(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.titleEl, displayText);\n this.refresh();\n return displayText;\n }\n setDescription(text) {\n const displayText = typeof text === 'string' ? text : '';\n _component_utils__WEBPACK_IMPORTED_MODULE_2___default().setText(this.descriptionEl, displayText);\n this.refresh();\n return displayText;\n }\n refresh() {\n const titleValue = () => this.titleEl.innerText;\n const descriptionValue = () => this.descriptionEl.innerText;\n if (!titleValue() && !descriptionValue()) {\n this.hide();\n return;\n }\n this.show();\n }\n createEl() {\n this.titleEl = dom.createEl('div', {\n className: 'vjs-title-bar-title'\n });\n this.descriptionEl = dom.createEl('div', {\n className: 'vjs-title-bar-subtitle'\n });\n const el = super.createEl('div', {\n append: this.titleEl,\n className: 'vjs-title-bar'\n });\n el.appendChild(this.titleEl);\n el.appendChild(this.descriptionEl);\n return el;\n }\n}\nvideo_js__WEBPACK_IMPORTED_MODULE_0___default().registerComponent('titleBar', TitleBar);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TitleBar);\n\n//# sourceURL=webpack:///./components/title-bar/title-bar.js?\n}");
|
|
144
144
|
|
|
145
145
|
/***/ },
|
|
146
146
|
|
|
@@ -228,7 +228,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
228
228
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
229
229
|
|
|
230
230
|
"use strict";
|
|
231
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isPlainObject */ \"../node_modules/lodash/isPlainObject.js\");\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ \"../node_modules/cloudinary-video-analytics/dist/main.js\");\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ \"./utils/consts.js\");\n\n\n\nclass CloudinaryAnalytics {\n constructor(player, options) {\n this.player = player;\n this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {\n playerAdapter: this.getCloudinaryVideoPlayerAdapter()\n });\n this.currentVideoMetadata = {\n cloudName: null,\n publicId: null\n };\n this.analyticsOptions = options;\n }\n getMetadata = () => ({\n cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,\n publicId: this.player.cloudinary.currentPublicId()\n });\n sourceChanged = (e, _ref) => {\n let {\n source\n } = _ref;\n const metadata = this.getMetadata();\n if (metadata.cloudName && metadata.publicId) {\n const isLiveStream = source?.resourceConfig().type === 'live';\n this.currentVideoMetadata = metadata;\n this.cloudinaryAnalytics.startManualTracking({\n ...metadata,\n ...(isLiveStream ? {\n type: 'live'\n } : {})\n }, {\n ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),\n videoPlayerType: 'cloudinary video player',\n videoPlayerVersion: \"3.
|
|
231
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isPlainObject */ \"../node_modules/lodash/isPlainObject.js\");\n/* harmony import */ var lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! cloudinary-video-analytics */ \"../node_modules/cloudinary-video-analytics/dist/main.js\");\n/* harmony import */ var cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/consts */ \"./utils/consts.js\");\n\n\n\nclass CloudinaryAnalytics {\n constructor(player, options) {\n this.player = player;\n this.cloudinaryAnalytics = (0,cloudinary_video_analytics__WEBPACK_IMPORTED_MODULE_1__.connectCloudinaryAnalytics)(this.player.videoElement, {\n playerAdapter: this.getCloudinaryVideoPlayerAdapter()\n });\n this.currentVideoMetadata = {\n cloudName: null,\n publicId: null\n };\n this.analyticsOptions = options;\n }\n getMetadata = () => ({\n cloudName: this.player.cloudinary.cloudinaryConfig().cloud_name,\n publicId: this.player.cloudinary.currentPublicId()\n });\n sourceChanged = (e, _ref) => {\n let {\n source\n } = _ref;\n const metadata = this.getMetadata();\n if (metadata.cloudName && metadata.publicId) {\n const isLiveStream = source?.resourceConfig().type === 'live';\n this.currentVideoMetadata = metadata;\n this.cloudinaryAnalytics.startManualTracking({\n ...metadata,\n ...(isLiveStream ? {\n type: 'live'\n } : {})\n }, {\n ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_0___default()(this.analyticsOptions) ? this.analyticsOptions : {}),\n videoPlayerType: 'cloudinary video player',\n videoPlayerVersion: \"3.14.0\"\n });\n } else if (this.currentVideoMetadata.cloudName !== metadata.cloudName || this.currentVideoMetadata.publicId !== metadata.publicId) {\n this.cloudinaryAnalytics.stopManualTracking();\n }\n };\n getCloudinaryVideoPlayerAdapter = () => {\n const createCldVPEventListener = (eventName, callback) => {\n this.player.on(eventName, callback);\n return () => {\n this.player.off(eventName, callback);\n };\n };\n return {\n onCanPlay: callback => createCldVPEventListener('canplay', callback),\n onCanPlayThrough: callback => createCldVPEventListener('canplaythrough', callback),\n onComplete: callback => createCldVPEventListener('complete', callback),\n onDurationChange: callback => createCldVPEventListener('durationchange', callback),\n onEmptied: callback => createCldVPEventListener('emptied', callback),\n onEnded: callback => createCldVPEventListener('ended', callback),\n onError: callback => createCldVPEventListener('error', callback),\n onLoadedData: callback => createCldVPEventListener('loadeddata', callback),\n onLoadedMetadata: callback => createCldVPEventListener('loadedmetadata', callback),\n onLoadStart: callback => createCldVPEventListener('loadstart', callback),\n onPause: callback => createCldVPEventListener('pause', callback),\n onPlay: callback => createCldVPEventListener('play', callback),\n onPlaying: callback => createCldVPEventListener('playing', callback),\n onProgress: callback => createCldVPEventListener('progress', callback),\n onRateChange: callback => createCldVPEventListener('ratechange', callback),\n onSeeked: callback => createCldVPEventListener('seeked', callback),\n onSeeking: callback => createCldVPEventListener('seeking', callback),\n onStalled: callback => createCldVPEventListener('stalled', callback),\n onSuspend: callback => createCldVPEventListener('suspend', callback),\n onTimeUpdate: callback => createCldVPEventListener('timeupdate', callback),\n onVolumeChange: callback => createCldVPEventListener('volumechange', callback),\n onWaiting: callback => createCldVPEventListener('waiting', callback),\n getCurrentSrc: () => this.player.videoElement.currentSrc,\n getCurrentTime: () => this.player.currentTime(),\n getReadyState: () => this.player.videoElement.readyState,\n getDuration: () => this.player.duration()\n };\n };\n init() {\n this.player.on(_utils_consts__WEBPACK_IMPORTED_MODULE_2__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this.sourceChanged);\n }\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {\n let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n new CloudinaryAnalytics(this, opts).init();\n}\n\n//# sourceURL=webpack:///./plugins/cloudinary-analytics/index.js?\n}");
|
|
232
232
|
|
|
233
233
|
/***/ },
|
|
234
234
|
|
|
@@ -371,7 +371,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
371
371
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
372
372
|
|
|
373
373
|
"use strict";
|
|
374
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst contextMenuContent = player => {\n const isLooping = player.loop();\n const isPaused = player.paused();\n const isMuted = player.muted();\n const isFullscreen = player.isFullscreen();\n const aboutMenuItem = {\n class: 'player-version',\n label: 'Cloudinary Player v' + \"3.
|
|
374
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst contextMenuContent = player => {\n const isLooping = player.loop();\n const isPaused = player.paused();\n const isMuted = player.muted();\n const isFullscreen = player.isFullscreen();\n const aboutMenuItem = {\n class: 'player-version',\n label: 'Cloudinary Player v' + \"3.14.0\"\n };\n if (!player.controls()) {\n return [aboutMenuItem];\n }\n return [{\n label: isLooping ? 'Unloop' : 'Loop',\n listener: () => {\n player.loop(!isLooping);\n }\n }, {\n label: isPaused ? 'Play' : 'Pause',\n listener: () => {\n if (isPaused) {\n player.play();\n } else {\n player.pause();\n }\n }\n }, {\n label: isMuted ? 'Unmute' : 'Mute',\n listener: () => {\n player.muted(!isMuted);\n }\n }, {\n label: isFullscreen ? 'Exit Fullscreen' : 'Fullscreen',\n listener: () => {\n if (isFullscreen) {\n player.exitFullscreen();\n } else {\n player.requestFullscreen();\n }\n }\n }, aboutMenuItem];\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (contextMenuContent);\n\n//# sourceURL=webpack:///./plugins/context-menu/contextMenuContent.js?\n}");
|
|
375
375
|
|
|
376
376
|
/***/ },
|
|
377
377
|
|
|
@@ -756,7 +756,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
756
756
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
757
757
|
|
|
758
758
|
"use strict";
|
|
759
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPlayerWithConfig: () => (/* binding */ createPlayerWithConfig),\n/* harmony export */ createVideoPlayer: () => (/* binding */ createVideoPlayer),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/get */ \"../node_modules/lodash/get.js\");\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/pick */ \"../node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isObject */ \"../node_modules/lodash/isObject.js\");\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/isString */ \"../node_modules/lodash/isString.js\");\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components */ \"./components/index.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./plugins */ \"./plugins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ \"./utils/index.js\");\n/* harmony import */ var _config_defaults__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config/defaults */ \"./config/defaults.js\");\n/* harmony import */ var _utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/setup-event-methods */ \"./utils/setup-event-methods.js\");\n/* harmony import */ var _extended_events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./extended-events */ \"./extended-events.js\");\n/* harmony import */ var _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./plugins/cloudinary/models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _video_player_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./video-player.utils */ \"./video-player.utils.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./validators/validators-functions */ \"./validators/validators-functions.js\");\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/consts */ \"./utils/consts.js\");\n/* harmony import */ var _utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/get-analytics-player-options */ \"./utils/get-analytics-player-options.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_video_retry__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/video-retry */ \"./utils/video-retry.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst INTERNAL_ANALYTICS_URL = 'https://analytics-api-s.cloudinary.com';\nconst RETRY_DEFAULT_TIMEOUT = 5 * 1000;\n\n// Register all plugins\nObject.keys(_plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).forEach(key => {\n video_js__WEBPACK_IMPORTED_MODULE_0___default().registerPlugin(key, _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"][key]);\n});\n(0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.overrideDefaultVideojsComponents)();\nclass VideoPlayer {\n static all(selector) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const nodeList = document.querySelectorAll(selector);\n return [...nodeList].map(node => new VideoPlayer(node, ...args));\n }\n get playerOptions() {\n return this.options.playerOptions;\n }\n constructor(elem, options, ready) {\n this.videoElement = elem;\n this.options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.splitOptions)(options);\n this._videojsOptions = this.options.videojsOptions;\n\n // Make sure to add 'video-js' class before creating videojs instance\n this.videoElement.classList.add('video-js');\n\n // Handle WebFont loading\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].fontFace(this.videoElement, this.playerOptions.fontFace);\n\n // Handle play button options\n if (this._videojsOptions.bigPlayButton === 'init') {\n this.videoElement.classList.add('vjs-big-play-button-init-only');\n this._videojsOptions.bigPlayButton = true;\n }\n this.videojs = video_js__WEBPACK_IMPORTED_MODULE_0___default()(this.videoElement, this._videojsOptions);\n\n // Setup event methods (on, one, off, trigger)\n (0,_utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this, this.videojs);\n this._isPlayerConfigValid = true;\n if (this.playerOptions.debug) {\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidPlayerConfig)(this.options).then(valid => {\n if (!valid) {\n this._isPlayerConfigValid = false;\n this.videojs.error('invalid player configuration');\n return;\n }\n });\n }\n if (this._videojsOptions.muted) {\n this.videojs.volume(0.4);\n }\n if (this.playerOptions.fluid) {\n this.fluid(this.playerOptions.fluid);\n }\n this._setCssClasses();\n this._initPlugins();\n this._initJumpButtons();\n this._initPictureInPicture();\n this._initBigPauseButton();\n this._setVideoJsListeners(ready);\n }\n getVPInstanceId() {\n if (!this.vpInstanceId) {\n this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }\n return this.vpInstanceId;\n }\n _sendInternalAnalytics() {\n let additionalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const options = Object.assign({}, this.playerOptions, this.options.videojsOptions, additionalOptions);\n if (!options.sourceOptions?.allowUsageReport) {\n return;\n }\n try {\n const internalAnalyticsMetadata = options._internalAnalyticsMetadata ?? {};\n const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__.getAnalyticsFromPlayerOptions)(options);\n const analyticsParams = new URLSearchParams(analyticsData).toString();\n const baseParams = new URLSearchParams({\n vpVersion: \"3.13.2-edge.2\",\n vpInstanceId: this.getVPInstanceId(),\n cloudName: options.cloudinary.cloud_name,\n ...internalAnalyticsMetadata\n }).toString();\n fetch(`${INTERNAL_ANALYTICS_URL}/video_player_source?${analyticsParams}&${baseParams}`);\n } catch (err) {\n console.warn(err);\n }\n }\n _resetReTryVideoState = () => {\n this.reTryVideoStateRetriesCount = 0;\n this.videojs.clearTimeout(this.reTryVideoStateTimeoutId);\n };\n _handleRefresh = () => {\n this.videojs.error(null);\n const src = this.currentPublicId() || this.currentSourceUrl();\n if (src) {\n this.source(src, this.playerOptions.sourceOptions || {});\n }\n };\n _setVideoJsListeners(ready) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.ERROR, () => {\n const error = this.videojs.error();\n if (error) {\n const type = this._isPlayerConfigValid && this.videojs.cloudinary.currentSourceType();\n\n /*\n error codes :\n 3 - media playback was aborted due to a corruption problem\n 4 - media error, media source not supported\n */\n const isCorrupted = error.code === 3 && (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_SAFARI;\n if ([isCorrupted, error.code === 4].includes(true) && [_utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO, _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.VIDEO].includes(type)) {\n if (this.isLiveStream) {\n this.videojs.error({\n code: _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.ERROR_CODE.CUSTOM,\n message: 'Live Stream not started'\n });\n this.reloadVideoUntilAvailable();\n } else {\n this.videojs.error(null);\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n } else {\n this._resetReTryVideoState();\n }\n }\n });\n this.videojs.tech_.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.RETRY_PLAYLIST, () => {\n const mediaRequestsErrored = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(this.videojs, 'hls.stats.mediaRequestsErrored', 0);\n if (mediaRequestsErrored > 0) {\n this._resetReTryVideoState();\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n });\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PLAY, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this._onSourceChange.bind(this));\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.REFRESH, this._handleRefresh.bind(this));\n this.videojs.ready(() => {\n this._onReady();\n this._applyVolumeBarAriaLiveFix();\n if (ready) {\n ready(this);\n }\n });\n }\n _initPlugins() {\n this._initIma();\n this._initAutoplay();\n this._initContextMenu();\n this._initPerSrcBehaviors();\n this._initCloudinary();\n this._initAnalytics();\n this._initCloudinaryAnalytics();\n this._initFloatingPlayer();\n this._initVisualSearch();\n this._initShare();\n this._initColors();\n this._initTextTracks();\n this._initHighlightsGraph();\n this._initSeekThumbs();\n this._initChapters();\n this._initInteractionAreas();\n this._initSourceSwitcher();\n }\n _isFullScreen() {\n return this.videojs.player().isFullscreen();\n }\n _initIma() {\n if (this.playerOptions.ads && Object.keys(this.playerOptions.ads).length !== 0) {\n _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"].imaPlugin(this.videojs, this.playerOptions);\n }\n }\n setTextTracks(conf) {\n this.textTracksManager.removeAllTextTracks();\n if (conf) {\n const kinds = Object.keys(conf);\n const allTracks = [];\n for (const kind of kinds) {\n if (kind !== 'options') {\n const tracks = Array.isArray(conf[kind]) ? conf[kind] : [conf[kind]];\n for (const track of tracks) {\n allTracks.push({\n ...track,\n kind: kind,\n label: track.label,\n srclang: track.language,\n default: !!track.default,\n src: track.url\n });\n }\n }\n }\n this.textTracksManager.addTextTracks(allTracks);\n if (conf.options && this.videojs.styledTextTracks) {\n this.videojs.styledTextTracks(conf.options);\n }\n }\n }\n _initSeekThumbs() {\n if (this.playerOptions.seekThumbnails) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref) => {\n let {\n source\n } = _ref;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n source.resourceConfig().type === 'live' ||\n // Is live stream\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) ||\n // Is a raw url\n this.videojs.activePlugins_ && this.videojs.activePlugins_.vr // It's a VR (i.e. 360)\n ) {\n return;\n }\n const publicId = source.publicId();\n const transformation = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.omitVideoOnlyTransformations)(Object.assign({}, source.transformation()));\n\n // fl_sprite must be in a separate URL component when transformation has params\n const spriteTx = [...(Array.isArray(transformation) ? transformation : [transformation]), {\n flags: ['sprite']\n }];\n const vttUrl = source.config().url(`${publicId}.vtt`, {\n transformation: spriteTx\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const vttSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(vttUrl, source.queryParams());\n\n // vttThumbnails must be called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.vttThumbnails) ? this.videojs.vttThumbnails({\n src: vttSrc\n }) : this.videojs.vttThumbnails.src(vttSrc);\n });\n }\n }\n _initHighlightsGraph() {\n if (this.playerOptions.aiHighlightsGraph) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref2) => {\n let {\n source\n } = _ref2;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) // Is a raw url\n ) {\n return;\n }\n const publicId = source.publicId();\n\n // Keep video-length related transformations and remove the rest\n const inputTransformations = lodash_pick__WEBPACK_IMPORTED_MODULE_4___default()(source.transformation(), ['start_offset', 'end_offset', 'duration']);\n const transformation = Object.assign({}, inputTransformations);\n transformation.effect = 'preview';\n transformation.flags = transformation.flags || [];\n transformation.flags.push('getinfo');\n const aiHighlightsGraphUrl = source.config().url(`${publicId}`, {\n transformation\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const aiHighlightsGraphSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(aiHighlightsGraphUrl, source.queryParams());\n\n // Plugin is called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.aiHighlightsGraph) ? this.videojs.aiHighlightsGraph({\n src: aiHighlightsGraphSrc\n }) : this.videojs.aiHighlightsGraph.src(aiHighlightsGraphSrc);\n });\n }\n }\n _initChapters() {\n if (!this.playerOptions.chaptersButton && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('chaptersButton');\n }\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref3) => {\n let {\n source\n } = _ref3;\n if ((!lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(source?._chapters) || source?._chapters === true) && this.videojs.chapters) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.chapters) ? this.videojs.chapters(source._chapters) : this.videojs.chapters.src(source._chapters);\n } else if (this.videojs.chapters?.resetPlugin) {\n this.videojs.chapters.resetPlugin();\n }\n });\n }\n _initInteractionAreas() {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n if (this.options.videojsOptions.interactionDisplay && this.videojs.interactionAreas) {\n this.videojs.interactionAreas(this, this.playerOptions, this._videojsOptions);\n }\n });\n }\n _initVisualSearch() {\n // Listen for source changes to apply visual search based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref4) => {\n let {\n source\n } = _ref4;\n if (source?._visualSearch && this.videojs.visualSearch) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.visualSearch) ? this.videojs.visualSearch(source._visualSearch) : this.videojs.visualSearch.createSearchUI(source._visualSearch);\n } else if (!source?._visualSearch && this.videojs.visualSearch?.clearUI) {\n this.videojs.visualSearch.clearUI();\n }\n });\n }\n _initShare() {\n // Listen for source changes to apply Share plugin based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref5) => {\n let {\n source\n } = _ref5;\n if (!this.videojs.share) {\n return;\n }\n\n // First time: initialise plugin if necessary\n if (source?._download && lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n this.videojs.share({\n download: true\n });\n }\n if (!lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n // Plugin already initialised – update UI accordingly\n if (source?._download) {\n this.videojs.share.addDownloadButton?.();\n } else {\n this.videojs.share.removeDownloadButton?.();\n }\n }\n });\n }\n _initColors() {\n if (this.playerOptions.colors) {\n this.videojs.colors({\n colors: this.playerOptions.colors\n });\n }\n }\n _initTextTracks() {\n this.textTracksManager = this.videojs.textTracksManager();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref6) => {\n let {\n source\n } = _ref6;\n if (source?._textTracks) {\n this.setTextTracks(source._textTracks);\n }\n });\n }\n _initPerSrcBehaviors() {\n if (this.videojs.perSourceBehaviors) {\n this.videojs.perSourceBehaviors();\n }\n }\n _initJumpButtons() {\n if (!this.playerOptions.showJumpControls && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('JumpForwardButton');\n this.videojs.controlBar.removeChild('JumpBackButton');\n }\n }\n _initPictureInPicture() {\n if (!this.playerOptions.pictureInPictureToggle && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('pictureInPictureToggle');\n }\n }\n _initBigPauseButton() {\n if ((video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS || (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_ANDROID) {\n this.videojs.addChild('BigPauseButton');\n }\n }\n _initCloudinary() {\n const cloudinaryConfig = this.playerOptions.cloudinary;\n cloudinaryConfig.chainTarget = this;\n if (cloudinaryConfig.secure !== false) {\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.extendCloudinaryConfig)(cloudinaryConfig, {\n secure: true\n });\n }\n\n // Merge cloudinary config with source config for the plugin\n const cloudinaryOptions = {\n cloudinaryConfig,\n ...this.playerOptions.sourceOptions\n };\n this.videojs.cloudinary(cloudinaryOptions);\n }\n _initAnalytics() {\n const analyticsOpts = this.playerOptions.analytics;\n if (!window.gtag && analyticsOpts) {\n console.error('Google Analytics script (gtag) is missing.');\n return;\n }\n if (analyticsOpts) {\n const opts = typeof analyticsOpts === 'object' ? analyticsOpts : {};\n this.videojs.analytics(opts);\n }\n }\n _initCloudinaryAnalytics() {\n const cloudinaryAnalyticsOptionEnabled = !!this.playerOptions.cloudinaryAnalytics;\n if (cloudinaryAnalyticsOptionEnabled) {\n this.videojs.videoElement = this.videoElement;\n const options = lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default()(this.playerOptions.cloudinaryAnalytics) ? this.playerOptions.cloudinaryAnalytics : {};\n this.videojs.cloudinaryAnalytics(options);\n }\n }\n _initSourceSwitcher() {\n this.sourceSwitcher = this.videojs.sourceSwitcher();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref7) => {\n let {\n source\n } = _ref7;\n const videoSources = source.videoSources?.();\n const isSourcesListAvailable = Array.isArray(videoSources) ? !!videoSources.length : false;\n if (this.videojs.controlBar) {\n const method = isSourcesListAvailable ? 'show' : 'hide';\n const element = this.videojs.controlBar.getChild('sourceSwitcherButton');\n if (element && typeof element?.[method] === 'function') {\n element[method]();\n }\n }\n if (isSourcesListAvailable) {\n const selectedIndex = videoSources.findIndex(_ref8 => {\n let {\n publicId\n } = _ref8;\n return publicId === source.publicId();\n });\n this.sourceSwitcher.reInit({\n sources: videoSources,\n selectedIndex: selectedIndex === -1 ? 0 : selectedIndex,\n onSourceChange: _ref9 => {\n let {\n publicId,\n ...newSourceOptions\n } = _ref9;\n return this.source(publicId, {\n ...newSourceOptions,\n videoSources\n });\n }\n });\n }\n });\n if (Array.isArray(this.playerOptions.sourceOptions?.videoSources) && this.playerOptions.sourceOptions?.videoSources.length) {\n // eslint-disable-next-line no-unused-vars\n const {\n publicId,\n label,\n ...videoSourceData\n } = this.playerOptions.sourceOptions.videoSources[0];\n this.source(publicId, {\n ...videoSourceData,\n videoSources: this.playerOptions.sourceOptions.videoSources\n });\n }\n }\n reTryVideoStateUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reTryVideoStateRetriesCount !== 'number') {\n this.reTryVideoStateRetriesCount = 0;\n }\n if (!(0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.isVideoInReadyState)(this.videojs.readyState())) {\n if (this.reTryVideoStateRetriesCount < maxNumberOfCalls) {\n this.reTryVideoStateRetriesCount++;\n this.reTryVideoStateTimeoutId = this.videojs.setTimeout(() => this.reTryVideoStateUntilAvailable(maxNumberOfCalls, timeout), timeout);\n } else {\n let e = new Error('Video is not ready please try later');\n this.videojs.trigger('error', e);\n }\n } else {\n this.reTryVideoStateRetriesCount = 0;\n }\n }\n _resetReloadVideo = () => {\n this.reloadVideoRetriesCount = 0;\n this.videojs.clearTimeout(this.reloadVideoTimeoutId);\n };\n reloadVideoUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reloadVideoRetriesCount !== 'number') {\n this.reloadVideoRetriesCount = 0;\n }\n if (this.reloadVideoRetriesCount < maxNumberOfCalls) {\n this.reloadVideoRetriesCount++;\n this.reloadVideoTimeoutId = this.videojs.setTimeout(() => {\n const videoUrl = this.currentSourceUrl();\n (0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.checkIfVideoIsAvailable)(videoUrl, this.isLiveStream ? 'live' : 'default').then(() => this.source(videoUrl)).catch(() => this.reloadVideoUntilAvailable(maxNumberOfCalls, timeout));\n }, timeout);\n } else {\n this.videojs.trigger('error', new Error('Sorry, we could not load your video'));\n }\n }\n _initAutoplay() {\n const autoplayMode = this.playerOptions.autoplayMode;\n if (autoplayMode === 'on-scroll') {\n this.videojs.autoplayOnScroll();\n }\n }\n _initContextMenu() {\n if (!this.playerOptions.hideContextMenu) {\n this.videojs.contextMenu(_config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"].contextMenu);\n }\n }\n _initFloatingPlayer() {\n if (this.playerOptions.floatingWhenNotVisible !== _video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLOATING_TO.NONE) {\n this.videojs.floatingPlayer({\n floatTo: this.playerOptions.floatingWhenNotVisible\n });\n }\n }\n _setCssClasses() {\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].CLASS_PREFIX);\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].playerClassPrefix(this.videojs));\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs));\n }\n _onReady() {\n this._setExtendedEvents();\n\n // Load first video (mainly to support video tag 'source' and 'public-id' attributes)\n // Source parameters are set to playerOptions.sourceOptions\n const source = this.playerOptions.sourceOptions.source || this.playerOptions.sourceOptions.publicId;\n if (source) {\n const sourceOptions = Object.assign({}, this.playerOptions.sourceOptions);\n this.source(source, sourceOptions);\n }\n }\n\n /**\n * Temporary fix: remove aria-live from VolumeBar to avoid NVDA repeated announcements.\n * TODO: Remove when Video.js includes the upstream fix (nvaccess/nvda#7996).\n */\n _applyVolumeBarAriaLiveFix() {\n const volumeBar = this.videojs.$('.vjs-volume-bar');\n if (volumeBar) {\n volumeBar.removeAttribute('aria-live');\n }\n }\n _onSourceChange(e, _ref0) {\n let {\n source,\n sourceOptions\n } = _ref0;\n this._sendInternalAnalytics({\n ...(sourceOptions && {\n sourceOptions\n })\n });\n this.isLiveStream = source?.resourceConfig()?.type === 'live';\n }\n _setExtendedEvents() {\n const events = [];\n\n // Add user-configured events; ExtendedEvents will merge with defaults\n if (this.playerOptions.playedEventPercents) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PERCENTS_PLAYED,\n percents: this.playerOptions.playedEventPercents\n });\n }\n if (this.playerOptions.playedEventTimes) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.TIME_PLAYED,\n times: this.playerOptions.playedEventTimes\n });\n }\n const extendedEvents = new _extended_events__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this.videojs, {\n events\n });\n\n // Forward all extended events to the main player for developer access\n Object.keys(extendedEvents.events).forEach(_event => {\n extendedEvents.on(_event, (event, data) => {\n this.videojs.trigger({\n type: _event,\n eventData: data\n });\n });\n });\n }\n cloudinaryConfig(config) {\n return this.videojs.cloudinary.cloudinaryConfig(config);\n }\n currentPublicId() {\n return this.videojs.cloudinary.currentPublicId();\n }\n currentSourceUrl() {\n return this.videojs.currentSource().src;\n }\n currentPoster() {\n return this.videojs.cloudinary.currentPoster();\n }\n source(publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ({\n publicId,\n options\n } = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.normalizeOptions)(publicId, options));\n if (!this._isPlayerConfigValid) {\n return;\n }\n if (this.playerOptions.debug) {\n options.debug = true;\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidSourceConfig)(options).then(valid => {\n if (!valid) {\n this.videojs.error('invalid source configuration');\n }\n });\n }\n if (publicId instanceof _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__[\"default\"]) {\n return this.videojs.cloudinary.source(publicId, options);\n }\n\n // Inherit source parameters from player options (source options take precedence)\n const inherited = this.playerOptions.sourceOptions || {};\n options = {\n ...inherited,\n ...options\n };\n if (options.shoppable && this.videojs.shoppable) {\n this.videojs.shoppable(this.videojs, options);\n }\n this._resetReloadVideo();\n this._resetReTryVideoState();\n const maxTries = this.videojs.options_.maxTries || 3;\n const videoReadyTimeout = this.videojs.options_.videoTimeout || 55000;\n this.reTryVideoStateUntilAvailable(maxTries, videoReadyTimeout);\n return this.videojs.cloudinary.source(publicId, options);\n }\n posterOptions(options) {\n return this.videojs.cloudinary.posterOptions(options);\n }\n skin(name) {\n if (name !== undefined && lodash_isString__WEBPACK_IMPORTED_MODULE_7___default()(name)) {\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, name);\n }\n return _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs);\n }\n playlist(sources) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlist: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(sources, options);\n });\n return this.videojs.cloudinary.playlist ? this.videojs.cloudinary.playlist(sources, options) : this;\n }\n playlistByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlistByTag: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n return new Promise(resolve => {\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(await this.sourcesByTag(tag, options), options);\n resolve(this);\n });\n });\n }\n sourcesByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.videojs.cloudinary.sourcesByTag(tag, options);\n }\n fluid(bool) {\n if (bool === undefined) {\n return this.videojs.fluid();\n }\n if (bool) {\n this.videojs.addClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n } else {\n this.videojs.removeClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n }\n this.videojs.fluid(bool);\n this.videojs.trigger(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.FLUID, bool);\n return this;\n }\n play() {\n this.playWasCalled = true;\n this.videojs.play();\n return this;\n }\n stop() {\n this.pause();\n this.currentTime(0);\n return this;\n }\n playPrevious() {\n this.playlist().playPrevious();\n return this;\n }\n playNext() {\n this.playlist().playNext();\n return this;\n }\n transformation(trans) {\n return this.videojs.cloudinary.transformation(trans);\n }\n sourceTypes(types) {\n return this.videojs.cloudinary.sourceTypes(types);\n }\n sourceTransformation(trans) {\n return this.videojs.cloudinary.sourceTransformation(trans);\n }\n autoShowRecommendations(autoShow) {\n return this.videojs.cloudinary.autoShowRecommendations(autoShow);\n }\n duration() {\n return this.videojs.duration();\n }\n height(dimension) {\n if (!dimension) {\n return this.videojs.height();\n }\n this.videojs.height(dimension);\n return this;\n }\n width(dimension) {\n if (!dimension) {\n return this.videojs.width();\n }\n this.videojs.width(dimension);\n return this;\n }\n volume(volume) {\n if (!volume) {\n return this.videojs.volume();\n }\n this.videojs.volume(volume);\n return this;\n }\n mute() {\n if (!this.isMuted()) {\n this.videojs.muted(true);\n }\n return this;\n }\n unmute() {\n if (this.isMuted()) {\n this.videojs.muted(false);\n }\n return this;\n }\n isMuted() {\n return this.videojs.muted();\n }\n pause() {\n this.videojs.pause();\n return this;\n }\n currentTime(offsetSeconds) {\n if (!offsetSeconds && offsetSeconds !== 0) {\n return this.videojs.currentTime();\n }\n this.videojs.currentTime(offsetSeconds);\n return this;\n }\n maximize() {\n if (!this.isMaximized()) {\n this.videojs.requestFullscreen();\n }\n return this;\n }\n exitMaximize() {\n if (this.isMaximized()) {\n this.videojs.exitFullscreen();\n }\n return this;\n }\n isMaximized() {\n return this.videojs.isFullscreen();\n }\n dispose() {\n this.videojs.dispose();\n }\n controls(bool) {\n if (bool === undefined) {\n return this.videojs.controls();\n }\n this.videojs.controls(bool);\n return this;\n }\n ima() {\n return {\n playAd: this.videojs.ima.playAd\n };\n }\n loop(bool) {\n if (bool === undefined) {\n return this.videojs.loop();\n }\n this.videojs.loop(bool);\n return this;\n }\n el() {\n return this.videojs.el();\n }\n}\nconst mergeDefaults = options => video_js__WEBPACK_IMPORTED_MODULE_0___default().obj.merge({}, _config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"], options);\nconst getConfig = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const videoElement = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.getResolveVideoElement)(elem);\n const options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.extractOptions)(videoElement, playerOptions);\n return {\n videoElement,\n options\n };\n};\nconst createVideoPlayer = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let ready = arguments.length > 2 ? arguments[2] : undefined;\n const {\n videoElement,\n options\n } = getConfig(elem, playerOptions);\n if (options.profile) {\n console.warn('Profile option requires async initialization. Use cloudinary.player() instead of cloudinary.videoPlayer()');\n }\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n\n/**\n * Create player with pre-merged config (skips fetch).\n * Used by player() when config was already fetched for schedule check.\n */\nconst createPlayerWithConfig = (elem, mergedOptions, ready) => {\n const {\n videoElement,\n options\n } = getConfig(elem, mergedOptions);\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoPlayer);\n\n//# sourceURL=webpack:///./video-player.js?\n}");
|
|
759
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPlayerWithConfig: () => (/* binding */ createPlayerWithConfig),\n/* harmony export */ createVideoPlayer: () => (/* binding */ createVideoPlayer),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ \"../node_modules/video.js/dist/alt/video.core-exposed.js\");\n/* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ \"../node_modules/lodash/isEmpty.js\");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/get */ \"../node_modules/lodash/get.js\");\n/* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_get__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/pick */ \"../node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash/isFunction */ \"../node_modules/lodash/isFunction.js\");\n/* harmony import */ var lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash_isFunction__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isObject */ \"../node_modules/lodash/isObject.js\");\n/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash/isString */ \"../node_modules/lodash/isString.js\");\n/* harmony import */ var lodash_isString__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash_isString__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components */ \"./components/index.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./plugins */ \"./plugins/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils */ \"./utils/index.js\");\n/* harmony import */ var _config_defaults__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config/defaults */ \"./config/defaults.js\");\n/* harmony import */ var _utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/setup-event-methods */ \"./utils/setup-event-methods.js\");\n/* harmony import */ var _extended_events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./extended-events */ \"./extended-events.js\");\n/* harmony import */ var _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./plugins/cloudinary/models/video-source/video-source */ \"./plugins/cloudinary/models/video-source/video-source.js\");\n/* harmony import */ var _video_player_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./video-player.utils */ \"./video-player.utils.js\");\n/* harmony import */ var _video_player_const__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./video-player.const */ \"./video-player.const.js\");\n/* harmony import */ var _validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./validators/validators-functions */ \"./validators/validators-functions.js\");\n/* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/consts */ \"./utils/consts.js\");\n/* harmony import */ var _utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/get-analytics-player-options */ \"./utils/get-analytics-player-options.js\");\n/* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./plugins/cloudinary/common */ \"./plugins/cloudinary/common.js\");\n/* harmony import */ var _utils_video_retry__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/video-retry */ \"./utils/video-retry.js\");\n/* harmony import */ var _utils_querystring__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/querystring */ \"./utils/querystring.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst INTERNAL_ANALYTICS_URL = 'https://analytics-api-s.cloudinary.com';\nconst RETRY_DEFAULT_TIMEOUT = 5 * 1000;\n\n// Register all plugins\nObject.keys(_plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"]).forEach(key => {\n video_js__WEBPACK_IMPORTED_MODULE_0___default().registerPlugin(key, _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"][key]);\n});\n(0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.overrideDefaultVideojsComponents)();\nclass VideoPlayer {\n static all(selector) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const nodeList = document.querySelectorAll(selector);\n return [...nodeList].map(node => new VideoPlayer(node, ...args));\n }\n get playerOptions() {\n return this.options.playerOptions;\n }\n constructor(elem, options, ready) {\n this.videoElement = elem;\n this.options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.splitOptions)(options);\n this._videojsOptions = this.options.videojsOptions;\n\n // Make sure to add 'video-js' class before creating videojs instance\n this.videoElement.classList.add('video-js');\n\n // Handle WebFont loading\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].fontFace(this.videoElement, this.playerOptions.fontFace);\n\n // Handle play button options\n if (this._videojsOptions.bigPlayButton === 'init') {\n this.videoElement.classList.add('vjs-big-play-button-init-only');\n this._videojsOptions.bigPlayButton = true;\n }\n this.videojs = video_js__WEBPACK_IMPORTED_MODULE_0___default()(this.videoElement, this._videojsOptions);\n\n // Setup event methods (on, one, off, trigger)\n (0,_utils_setup_event_methods__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this, this.videojs);\n this._isPlayerConfigValid = true;\n if (this.playerOptions.debug) {\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidPlayerConfig)(this.options).then(valid => {\n if (!valid) {\n this._isPlayerConfigValid = false;\n this.videojs.error('invalid player configuration');\n return;\n }\n });\n }\n if (this._videojsOptions.muted) {\n this.videojs.volume(0.4);\n }\n if (this.playerOptions.fluid) {\n this.fluid(this.playerOptions.fluid);\n }\n this._setCssClasses();\n this._initPlugins();\n this._initJumpButtons();\n this._initPictureInPicture();\n this._initBigPauseButton();\n this._setVideoJsListeners(ready);\n }\n getVPInstanceId() {\n if (!this.vpInstanceId) {\n this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n }\n return this.vpInstanceId;\n }\n _sendInternalAnalytics() {\n let additionalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const options = Object.assign({}, this.playerOptions, this.options.videojsOptions, additionalOptions);\n if (!options.sourceOptions?.allowUsageReport) {\n return;\n }\n try {\n const internalAnalyticsMetadata = options._internalAnalyticsMetadata ?? {};\n const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_19__.getAnalyticsFromPlayerOptions)(options);\n const analyticsParams = new URLSearchParams(analyticsData).toString();\n const baseParams = new URLSearchParams({\n vpVersion: \"3.14.0\",\n vpInstanceId: this.getVPInstanceId(),\n cloudName: options.cloudinary.cloud_name,\n ...internalAnalyticsMetadata\n }).toString();\n fetch(`${INTERNAL_ANALYTICS_URL}/video_player_source?${analyticsParams}&${baseParams}`);\n } catch (err) {\n console.warn(err);\n }\n }\n _resetReTryVideoState = () => {\n this.reTryVideoStateRetriesCount = 0;\n this.videojs.clearTimeout(this.reTryVideoStateTimeoutId);\n };\n _handleRefresh = () => {\n this.videojs.error(null);\n const src = this.currentPublicId() || this.currentSourceUrl();\n if (src) {\n this.source(src, this.playerOptions.sourceOptions || {});\n }\n };\n _setVideoJsListeners(ready) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.ERROR, () => {\n const error = this.videojs.error();\n if (error) {\n const type = this._isPlayerConfigValid && this.videojs.cloudinary.currentSourceType();\n\n /*\n error codes :\n 3 - media playback was aborted due to a corruption problem\n 4 - media error, media source not supported\n */\n const isCorrupted = error.code === 3 && (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_SAFARI;\n if ([isCorrupted, error.code === 4].includes(true) && [_utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO, _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.VIDEO].includes(type)) {\n if (this.isLiveStream) {\n this.videojs.error({\n code: _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.ERROR_CODE.CUSTOM,\n message: 'Live Stream not started'\n });\n this.reloadVideoUntilAvailable();\n } else {\n this.videojs.error(null);\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n } else {\n this._resetReTryVideoState();\n }\n }\n });\n this.videojs.tech_.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.RETRY_PLAYLIST, () => {\n const mediaRequestsErrored = lodash_get__WEBPACK_IMPORTED_MODULE_3___default()(this.videojs, 'hls.stats.mediaRequestsErrored', 0);\n if (mediaRequestsErrored > 0) {\n this._resetReTryVideoState();\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].handleCldError(this, this.playerOptions);\n }\n });\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PLAY, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._resetReTryVideoState);\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this._onSourceChange.bind(this));\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.REFRESH, this._handleRefresh.bind(this));\n this.videojs.ready(() => {\n this._onReady();\n this._applyVolumeBarAriaLiveFix();\n if (ready) {\n ready(this);\n }\n });\n }\n _initPlugins() {\n this._initIma();\n this._initAutoplay();\n this._initContextMenu();\n this._initPerSrcBehaviors();\n this._initCloudinary();\n this._initAnalytics();\n this._initCloudinaryAnalytics();\n this._initFloatingPlayer();\n this._initVisualSearch();\n this._initShare();\n this._initColors();\n this._initTextTracks();\n this._initHighlightsGraph();\n this._initSeekThumbs();\n this._initChapters();\n this._initInteractionAreas();\n this._initSourceSwitcher();\n }\n _isFullScreen() {\n return this.videojs.player().isFullscreen();\n }\n _initIma() {\n if (this.playerOptions.ads && Object.keys(this.playerOptions.ads).length !== 0) {\n _plugins__WEBPACK_IMPORTED_MODULE_9__[\"default\"].imaPlugin(this.videojs, this.playerOptions);\n }\n }\n setTextTracks(conf) {\n this.textTracksManager.removeAllTextTracks();\n if (conf) {\n const kinds = Object.keys(conf);\n const allTracks = [];\n for (const kind of kinds) {\n if (kind !== 'options') {\n const tracks = Array.isArray(conf[kind]) ? conf[kind] : [conf[kind]];\n for (const track of tracks) {\n allTracks.push({\n ...track,\n kind: kind,\n label: track.label,\n srclang: track.language,\n default: !!track.default,\n src: track.url\n });\n }\n }\n }\n this.textTracksManager.addTextTracks(allTracks);\n if (conf.options && this.videojs.styledTextTracks) {\n this.videojs.styledTextTracks(conf.options);\n }\n }\n }\n _initSeekThumbs() {\n if (this.playerOptions.seekThumbnails) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref) => {\n let {\n source\n } = _ref;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n source.resourceConfig().type === 'live' ||\n // Is live stream\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) ||\n // Is a raw url\n this.videojs.activePlugins_ && this.videojs.activePlugins_.vr // It's a VR (i.e. 360)\n ) {\n return;\n }\n const publicId = source.publicId();\n const transformation = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.omitVideoOnlyTransformations)(Object.assign({}, source.transformation()));\n\n // fl_sprite must be in a separate URL component when transformation has params\n const spriteTx = [...(Array.isArray(transformation) ? transformation : [transformation]), {\n flags: ['sprite']\n }];\n const vttUrl = source.config().url(`${publicId}.vtt`, {\n transformation: spriteTx\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const vttSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(vttUrl, source.queryParams());\n\n // vttThumbnails must be called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.vttThumbnails) ? this.videojs.vttThumbnails({\n src: vttSrc\n }) : this.videojs.vttThumbnails.src(vttSrc);\n });\n }\n }\n _initHighlightsGraph() {\n if (this.playerOptions.aiHighlightsGraph) {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref2) => {\n let {\n source\n } = _ref2;\n if (!source || source.getType() === _utils_consts__WEBPACK_IMPORTED_MODULE_18__.SOURCE_TYPE.AUDIO ||\n // Is Audio\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.isRawUrl)(source.publicId()) // Is a raw url\n ) {\n return;\n }\n const publicId = source.publicId();\n\n // Keep video-length related transformations and remove the rest\n const inputTransformations = lodash_pick__WEBPACK_IMPORTED_MODULE_4___default()(source.transformation(), ['start_offset', 'end_offset', 'duration']);\n const transformation = Object.assign({}, inputTransformations);\n transformation.effect = 'preview';\n transformation.flags = transformation.flags || [];\n transformation.flags.push('getinfo');\n const aiHighlightsGraphUrl = source.config().url(`${publicId}`, {\n transformation\n }).replace(/\\.json$/, ''); // Handle playlist by tag\n const aiHighlightsGraphSrc = (0,_utils_querystring__WEBPACK_IMPORTED_MODULE_22__.appendQueryParams)(aiHighlightsGraphUrl, source.queryParams());\n\n // Plugin is called differently on init and on source update.\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.aiHighlightsGraph) ? this.videojs.aiHighlightsGraph({\n src: aiHighlightsGraphSrc\n }) : this.videojs.aiHighlightsGraph.src(aiHighlightsGraphSrc);\n });\n }\n }\n _initChapters() {\n if (!this.playerOptions.chaptersButton && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('chaptersButton');\n }\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref3) => {\n let {\n source\n } = _ref3;\n if ((!lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(source?._chapters) || source?._chapters === true) && this.videojs.chapters) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.chapters) ? this.videojs.chapters(source._chapters) : this.videojs.chapters.src(source._chapters);\n } else if (this.videojs.chapters?.resetPlugin) {\n this.videojs.chapters.resetPlugin();\n }\n });\n }\n _initInteractionAreas() {\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n if (this.options.videojsOptions.interactionDisplay && this.videojs.interactionAreas) {\n this.videojs.interactionAreas(this, this.playerOptions, this._videojsOptions);\n }\n });\n }\n _initVisualSearch() {\n // Listen for source changes to apply visual search based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref4) => {\n let {\n source\n } = _ref4;\n if (source?._visualSearch && this.videojs.visualSearch) {\n lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.visualSearch) ? this.videojs.visualSearch(source._visualSearch) : this.videojs.visualSearch.createSearchUI(source._visualSearch);\n } else if (!source?._visualSearch && this.videojs.visualSearch?.clearUI) {\n this.videojs.visualSearch.clearUI();\n }\n });\n }\n _initShare() {\n // Listen for source changes to apply Share plugin based on source config\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref5) => {\n let {\n source\n } = _ref5;\n if (!this.videojs.share) {\n return;\n }\n\n // First time: initialise plugin if necessary\n if (source?._download && lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n this.videojs.share({\n download: true\n });\n }\n if (!lodash_isFunction__WEBPACK_IMPORTED_MODULE_5___default()(this.videojs.share)) {\n // Plugin already initialised – update UI accordingly\n if (source?._download) {\n this.videojs.share.addDownloadButton?.();\n } else {\n this.videojs.share.removeDownloadButton?.();\n }\n }\n });\n }\n _initColors() {\n if (this.playerOptions.colors) {\n this.videojs.colors({\n colors: this.playerOptions.colors\n });\n }\n }\n _initTextTracks() {\n this.textTracksManager = this.videojs.textTracksManager();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref6) => {\n let {\n source\n } = _ref6;\n if (source?._textTracks) {\n this.setTextTracks(source._textTracks);\n }\n });\n }\n _initPerSrcBehaviors() {\n if (this.videojs.perSourceBehaviors) {\n this.videojs.perSourceBehaviors();\n }\n }\n _initJumpButtons() {\n if (!this.playerOptions.showJumpControls && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('JumpForwardButton');\n this.videojs.controlBar.removeChild('JumpBackButton');\n }\n }\n _initPictureInPicture() {\n if (!this.playerOptions.pictureInPictureToggle && this.videojs.controlBar) {\n this.videojs.controlBar.removeChild('pictureInPictureToggle');\n }\n }\n _initBigPauseButton() {\n if ((video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_IOS || (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_ANDROID) {\n this.videojs.addChild('BigPauseButton');\n }\n }\n _initCloudinary() {\n const cloudinaryConfig = this.playerOptions.cloudinary;\n cloudinaryConfig.chainTarget = this;\n if (cloudinaryConfig.secure !== false) {\n (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.extendCloudinaryConfig)(cloudinaryConfig, {\n secure: true\n });\n }\n\n // Merge cloudinary config with source config for the plugin\n const cloudinaryOptions = {\n cloudinaryConfig,\n ...this.playerOptions.sourceOptions\n };\n this.videojs.cloudinary(cloudinaryOptions);\n }\n _initAnalytics() {\n const analyticsOpts = this.playerOptions.analytics;\n if (!window.gtag && analyticsOpts) {\n console.error('Google Analytics script (gtag) is missing.');\n return;\n }\n if (analyticsOpts) {\n const opts = typeof analyticsOpts === 'object' ? analyticsOpts : {};\n this.videojs.analytics(opts);\n }\n }\n _initCloudinaryAnalytics() {\n const cloudinaryAnalyticsOptionEnabled = !!this.playerOptions.cloudinaryAnalytics;\n if (cloudinaryAnalyticsOptionEnabled) {\n this.videojs.videoElement = this.videoElement;\n const options = lodash_isObject__WEBPACK_IMPORTED_MODULE_6___default()(this.playerOptions.cloudinaryAnalytics) ? this.playerOptions.cloudinaryAnalytics : {};\n this.videojs.cloudinaryAnalytics(options);\n }\n }\n _initSourceSwitcher() {\n this.sourceSwitcher = this.videojs.sourceSwitcher();\n this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.CLD_SOURCE_CHANGED, (e, _ref7) => {\n let {\n source\n } = _ref7;\n const videoSources = source.videoSources?.();\n const isSourcesListAvailable = Array.isArray(videoSources) ? !!videoSources.length : false;\n if (this.videojs.controlBar) {\n const method = isSourcesListAvailable ? 'show' : 'hide';\n const element = this.videojs.controlBar.getChild('sourceSwitcherButton');\n if (element && typeof element?.[method] === 'function') {\n element[method]();\n }\n }\n if (isSourcesListAvailable) {\n const selectedIndex = videoSources.findIndex(_ref8 => {\n let {\n publicId\n } = _ref8;\n return publicId === source.publicId();\n });\n this.sourceSwitcher.reInit({\n sources: videoSources,\n selectedIndex: selectedIndex === -1 ? 0 : selectedIndex,\n onSourceChange: _ref9 => {\n let {\n publicId,\n ...newSourceOptions\n } = _ref9;\n return this.source(publicId, {\n ...newSourceOptions,\n videoSources\n });\n }\n });\n }\n });\n if (Array.isArray(this.playerOptions.sourceOptions?.videoSources) && this.playerOptions.sourceOptions?.videoSources.length) {\n // eslint-disable-next-line no-unused-vars\n const {\n publicId,\n label,\n ...videoSourceData\n } = this.playerOptions.sourceOptions.videoSources[0];\n this.source(publicId, {\n ...videoSourceData,\n videoSources: this.playerOptions.sourceOptions.videoSources\n });\n }\n }\n reTryVideoStateUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reTryVideoStateRetriesCount !== 'number') {\n this.reTryVideoStateRetriesCount = 0;\n }\n if (!(0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.isVideoInReadyState)(this.videojs.readyState())) {\n if (this.reTryVideoStateRetriesCount < maxNumberOfCalls) {\n this.reTryVideoStateRetriesCount++;\n this.reTryVideoStateTimeoutId = this.videojs.setTimeout(() => this.reTryVideoStateUntilAvailable(maxNumberOfCalls, timeout), timeout);\n } else {\n let e = new Error('Video is not ready please try later');\n this.videojs.trigger('error', e);\n }\n } else {\n this.reTryVideoStateRetriesCount = 0;\n }\n }\n _resetReloadVideo = () => {\n this.reloadVideoRetriesCount = 0;\n this.videojs.clearTimeout(this.reloadVideoTimeoutId);\n };\n reloadVideoUntilAvailable() {\n let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;\n if (typeof this.reloadVideoRetriesCount !== 'number') {\n this.reloadVideoRetriesCount = 0;\n }\n if (this.reloadVideoRetriesCount < maxNumberOfCalls) {\n this.reloadVideoRetriesCount++;\n this.reloadVideoTimeoutId = this.videojs.setTimeout(() => {\n const videoUrl = this.currentSourceUrl();\n (0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_21__.checkIfVideoIsAvailable)(videoUrl, this.isLiveStream ? 'live' : 'default').then(() => this.source(videoUrl)).catch(() => this.reloadVideoUntilAvailable(maxNumberOfCalls, timeout));\n }, timeout);\n } else {\n this.videojs.trigger('error', new Error('Sorry, we could not load your video'));\n }\n }\n _initAutoplay() {\n const autoplayMode = this.playerOptions.autoplayMode;\n if (autoplayMode === 'on-scroll') {\n this.videojs.autoplayOnScroll();\n }\n }\n _initContextMenu() {\n if (!this.playerOptions.hideContextMenu) {\n this.videojs.contextMenu(_config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"].contextMenu);\n }\n }\n _initFloatingPlayer() {\n if (this.playerOptions.floatingWhenNotVisible !== _video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLOATING_TO.NONE) {\n this.videojs.floatingPlayer({\n floatTo: this.playerOptions.floatingWhenNotVisible\n });\n }\n }\n _setCssClasses() {\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].CLASS_PREFIX);\n this.videojs.addClass(_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].playerClassPrefix(this.videojs));\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs));\n }\n _onReady() {\n this._setExtendedEvents();\n\n // Load first video (mainly to support video tag 'source' and 'public-id' attributes)\n // Source parameters are set to playerOptions.sourceOptions\n const source = this.playerOptions.sourceOptions.source || this.playerOptions.sourceOptions.publicId;\n if (source) {\n const sourceOptions = Object.assign({}, this.playerOptions.sourceOptions);\n this.source(source, sourceOptions);\n }\n }\n\n /**\n * Temporary fix: remove aria-live from VolumeBar to avoid NVDA repeated announcements.\n * TODO: Remove when Video.js includes the upstream fix (nvaccess/nvda#7996).\n */\n _applyVolumeBarAriaLiveFix() {\n const volumeBar = this.videojs.$('.vjs-volume-bar');\n if (volumeBar) {\n volumeBar.removeAttribute('aria-live');\n }\n }\n _onSourceChange(e, _ref0) {\n let {\n source,\n sourceOptions\n } = _ref0;\n this._sendInternalAnalytics({\n ...(sourceOptions && {\n sourceOptions\n })\n });\n this.isLiveStream = source?.resourceConfig()?.type === 'live';\n }\n _setExtendedEvents() {\n const events = [];\n\n // Add user-configured events; ExtendedEvents will merge with defaults\n if (this.playerOptions.playedEventPercents) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.PERCENTS_PLAYED,\n percents: this.playerOptions.playedEventPercents\n });\n }\n if (this.playerOptions.playedEventTimes) {\n events.push({\n type: _utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.TIME_PLAYED,\n times: this.playerOptions.playedEventTimes\n });\n }\n const extendedEvents = new _extended_events__WEBPACK_IMPORTED_MODULE_13__[\"default\"](this.videojs, {\n events\n });\n\n // Forward all extended events to the main player for developer access\n Object.keys(extendedEvents.events).forEach(_event => {\n extendedEvents.on(_event, (event, data) => {\n this.videojs.trigger({\n type: _event,\n eventData: data\n });\n });\n });\n }\n cloudinaryConfig(config) {\n return this.videojs.cloudinary.cloudinaryConfig(config);\n }\n currentPublicId() {\n return this.videojs.cloudinary.currentPublicId();\n }\n currentSourceUrl() {\n return this.videojs.currentSource().src;\n }\n currentPoster() {\n return this.videojs.cloudinary.currentPoster();\n }\n source(publicId) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n ({\n publicId,\n options\n } = (0,_plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_20__.normalizeOptions)(publicId, options));\n if (!this._isPlayerConfigValid) {\n return;\n }\n if (this.playerOptions.debug) {\n options.debug = true;\n (0,_validators_validators_functions__WEBPACK_IMPORTED_MODULE_17__.isValidSourceConfig)(options).then(valid => {\n if (!valid) {\n this.videojs.error('invalid source configuration');\n }\n });\n }\n if (publicId instanceof _plugins_cloudinary_models_video_source_video_source__WEBPACK_IMPORTED_MODULE_14__[\"default\"]) {\n return this.videojs.cloudinary.source(publicId, options);\n }\n\n // Inherit source parameters from player options (source options take precedence)\n const inherited = this.playerOptions.sourceOptions || {};\n options = {\n ...inherited,\n ...options\n };\n if (options.shoppable && this.videojs.shoppable) {\n this.videojs.shoppable(this.videojs, options);\n }\n this._resetReloadVideo();\n this._resetReTryVideoState();\n const maxTries = this.videojs.options_.maxTries || 3;\n const videoReadyTimeout = this.videojs.options_.videoTimeout || 55000;\n this.reTryVideoStateUntilAvailable(maxTries, videoReadyTimeout);\n return this.videojs.cloudinary.source(publicId, options);\n }\n posterOptions(options) {\n return this.videojs.cloudinary.posterOptions(options);\n }\n skin(name) {\n if (name !== undefined && lodash_isString__WEBPACK_IMPORTED_MODULE_7___default()(name)) {\n _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].setSkinClassPrefix(this.videojs, name);\n }\n return _utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"].skinClassPrefix(this.videojs);\n }\n playlist(sources) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlist: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(sources, options);\n });\n return this.videojs.cloudinary.playlist ? this.videojs.cloudinary.playlist(sources, options) : this;\n }\n playlistByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.playerOptions.playlistWidget = {\n ...(this.playerOptions.playlistWidget || {\n show: false\n }),\n playlistByTag: true\n };\n options = Object.assign({}, options, {\n playlistWidget: this.playerOptions.playlistWidget\n });\n return new Promise(resolve => {\n this.videojs.one(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.READY, async () => {\n const playlistPlugin = await this.videojs.playlist(options);\n playlistPlugin(await this.sourcesByTag(tag, options), options);\n resolve(this);\n });\n });\n }\n sourcesByTag(tag) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.videojs.cloudinary.sourcesByTag(tag, options);\n }\n fluid(bool) {\n if (bool === undefined) {\n return this.videojs.fluid();\n }\n if (bool) {\n this.videojs.addClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n } else {\n this.videojs.removeClass(_video_player_const__WEBPACK_IMPORTED_MODULE_16__.FLUID_CLASS_NAME);\n }\n this.videojs.fluid(bool);\n this.videojs.trigger(_utils_consts__WEBPACK_IMPORTED_MODULE_18__.PLAYER_EVENT.FLUID, bool);\n return this;\n }\n play() {\n this.playWasCalled = true;\n this.videojs.play();\n return this;\n }\n stop() {\n this.pause();\n this.currentTime(0);\n return this;\n }\n playPrevious() {\n this.playlist().playPrevious();\n return this;\n }\n playNext() {\n this.playlist().playNext();\n return this;\n }\n transformation(trans) {\n return this.videojs.cloudinary.transformation(trans);\n }\n sourceTypes(types) {\n return this.videojs.cloudinary.sourceTypes(types);\n }\n sourceTransformation(trans) {\n return this.videojs.cloudinary.sourceTransformation(trans);\n }\n autoShowRecommendations(autoShow) {\n return this.videojs.cloudinary.autoShowRecommendations(autoShow);\n }\n duration() {\n return this.videojs.duration();\n }\n height(dimension) {\n if (!dimension) {\n return this.videojs.height();\n }\n this.videojs.height(dimension);\n return this;\n }\n width(dimension) {\n if (!dimension) {\n return this.videojs.width();\n }\n this.videojs.width(dimension);\n return this;\n }\n volume(volume) {\n if (!volume) {\n return this.videojs.volume();\n }\n this.videojs.volume(volume);\n return this;\n }\n mute() {\n if (!this.isMuted()) {\n this.videojs.muted(true);\n }\n return this;\n }\n unmute() {\n if (this.isMuted()) {\n this.videojs.muted(false);\n }\n return this;\n }\n isMuted() {\n return this.videojs.muted();\n }\n pause() {\n this.videojs.pause();\n return this;\n }\n currentTime(offsetSeconds) {\n if (!offsetSeconds && offsetSeconds !== 0) {\n return this.videojs.currentTime();\n }\n this.videojs.currentTime(offsetSeconds);\n return this;\n }\n maximize() {\n if (!this.isMaximized()) {\n this.videojs.requestFullscreen();\n }\n return this;\n }\n exitMaximize() {\n if (this.isMaximized()) {\n this.videojs.exitFullscreen();\n }\n return this;\n }\n isMaximized() {\n return this.videojs.isFullscreen();\n }\n dispose() {\n this.videojs.dispose();\n }\n controls(bool) {\n if (bool === undefined) {\n return this.videojs.controls();\n }\n this.videojs.controls(bool);\n return this;\n }\n ima() {\n return {\n playAd: this.videojs.ima.playAd\n };\n }\n loop(bool) {\n if (bool === undefined) {\n return this.videojs.loop();\n }\n this.videojs.loop(bool);\n return this;\n }\n el() {\n return this.videojs.el();\n }\n}\nconst mergeDefaults = options => video_js__WEBPACK_IMPORTED_MODULE_0___default().obj.merge({}, _config_defaults__WEBPACK_IMPORTED_MODULE_11__[\"default\"], options);\nconst getConfig = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const videoElement = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.getResolveVideoElement)(elem);\n const options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_15__.extractOptions)(videoElement, playerOptions);\n return {\n videoElement,\n options\n };\n};\nconst createVideoPlayer = function (elem) {\n let playerOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let ready = arguments.length > 2 ? arguments[2] : undefined;\n const {\n videoElement,\n options\n } = getConfig(elem, playerOptions);\n if (options.profile) {\n console.warn('Profile option requires async initialization. Use cloudinary.player() instead of cloudinary.videoPlayer()');\n }\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n\n/**\n * Create player with pre-merged config (skips fetch).\n * Used by player() when config was already fetched for schedule check.\n */\nconst createPlayerWithConfig = (elem, mergedOptions, ready) => {\n const {\n videoElement,\n options\n } = getConfig(elem, mergedOptions);\n return new VideoPlayer(videoElement, mergeDefaults(options), ready);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoPlayer);\n\n//# sourceURL=webpack:///./video-player.js?\n}");
|
|
760
760
|
|
|
761
761
|
/***/ },
|
|
762
762
|
|
package/dist/visual-search.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cloudinary Video Player v3.
|
|
3
|
-
* Built on 2026-04-
|
|
2
|
+
* Cloudinary Video Player v3.14.0
|
|
3
|
+
* Built on 2026-04-20T09:56:28.027Z
|
|
4
4
|
* https://github.com/cloudinary/cloudinary-video-player
|
|
5
5
|
*/
|
|
6
6
|
"use strict";(self.cloudinaryVideoPlayerChunkLoading=self.cloudinaryVideoPlayerChunkLoading||[]).push([[728],{9148(e,a,s){s.d(a,{default:()=>l});var t=s(6673),r=s.n(t);const l=(e,a)=>{a.addClass("vjs-visual-search");let s=!1;const t=(e=>{const a=()=>{e.$$(".vjs-visual-search-marker").forEach(e=>e.remove()),e.$$(".vjs-visual-search-results-wrapper").forEach(e=>e.remove()),e.removeClass("vjs-visual-search-results-active")};return{displayResults:s=>{a();const t=e.duration(),l=e.controlBar.progressControl.seekBar,n=r().dom.createEl("div",{className:"vjs-visual-search-results-wrapper",role:"presentation"});s.forEach(a=>{const{start_time:s,end_time:l}=a,c=s/t*100,o=(l-s)/t*100,i=`${Math.floor(s/60)}:${Math.floor(s%60).toString().padStart(2,"0")}`,d=r().dom.createEl("div",{className:"vjs-control vjs-visual-search-marker",style:`left: ${c}%; width: ${o}%`,tabIndex:0,role:"button",title:`Search result at ${i}`,ariaLabel:`Search result at ${i}`});n.appendChild(d),d.addEventListener("click",()=>{e.currentTime(s)}),d.addEventListener("keydown",a=>{"Enter"!==a.key&&" "!==a.key||(a.preventDefault(),e.currentTime(s))})}),l.el().appendChild(n),s.length>0&&e.addClass("vjs-visual-search-results-active")},clearMarkers:a}})(a),l=async e=>{const s=a.$(".vjs-visual-search-button");s.classList.add("vjs-waiting");try{const s=a.cloudinary.source(),r=s.publicId(),l=Object.assign({},s.transformation());l.flags=l.flags||[],l.flags.push(`getinfo:search_b64_${btoa(e)}`);const n=s.config().url(`${r}`,{transformation:l}),c=await fetch(n,{method:"GET",headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(`Search request failed with status: ${c.status}`);const o=await c.json();t.displayResults(o.timestamps),o&&!a.hasStarted()&&a.play().then(()=>a.pause())}catch(e){console.error("Error performing visual search:",e)}finally{s.classList.remove("vjs-waiting")}},n=()=>{s=!1,t.clearMarkers(),a.$(".vjs-visual-search-wrapper")?.remove()},c=()=>{n();const e=a.$(".vjs-title-bar");e&&e.classList.remove("vjs-hidden");const c=r().dom.createEl("div",{className:"vjs-visual-search-wrapper"}),o=()=>{s&&(s=!1,c.classList.remove("vjs-visual-search-active"),d.input.value="",d.input.tabIndex=-1,d.closeButton.tabIndex=-1,t.clearMarkers())},i=(e=>{const a=r().dom.createEl("button",{className:"vjs-control vjs-button vjs-visual-search-button",title:"Search video content",ariaLabel:"Search video content"}),s=r().dom.createEl("span",{className:"vjs-icon-search"});a.appendChild(s);const t=r().dom.createEl("span",{className:"vjs-loading-spinner"});return a.appendChild(t),a.addEventListener("click",e),a})(()=>{if(s){const e=d.input.value.trim();e&&l(e)}else s=!0,c.classList.add("vjs-visual-search-active"),d.input.tabIndex=0,d.closeButton.tabIndex=0,d.input.focus()}),d=((e,a)=>{const s=r().dom.createEl("form",{className:"vjs-visual-search-form"}),t=r().dom.createEl("input",{className:"vjs-visual-search-input",type:"text",ariaLabel:"Search input",tabIndex:-1}),l=r().dom.createEl("button",{className:"vjs-control vjs-button vjs-visual-search-close",type:"button",title:"Close search",ariaLabel:"Close search",tabIndex:-1}),n=r().dom.createEl("span",{className:"vjs-icon-close"});return l.appendChild(n),s.appendChild(t),s.appendChild(l),s.addEventListener("submit",a=>{a.preventDefault();const s=t.value.trim();s&&e(s)}),l.addEventListener("click",e=>{e.preventDefault(),a&&a()}),{element:s,input:t,closeButton:l}})(l,o);c.appendChild(i),c.appendChild(d.element),e.prepend(c),a.on("keydown",e=>{"Escape"===e.key&&s&&o()})};c(),a.visualSearch={createSearchUI:c,clearUI:n}}}}]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cloudinary Video Player v3.
|
|
3
|
-
* Built on 2026-04-
|
|
2
|
+
* Cloudinary Video Player v3.14.0
|
|
3
|
+
* Built on 2026-04-20T09:56:28.027Z
|
|
4
4
|
* https://github.com/cloudinary/cloudinary-video-player
|
|
5
5
|
*/.vjs-svg-icon{background-position:50%;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:1.8em;width:1.8em}.vjs-svg-icon:before{content:none!important}.vjs-control:focus .vjs-svg-icon,.vjs-svg-icon:hover{filter:drop-shadow(0 0 .25em #fff)}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.vjs-modal-dialog .vjs-modal-dialog-content{height:100%;left:0;position:absolute;top:0;width:100%}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.vjs-button>.vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;font-style:normal;font-weight:400;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder,.vjs-icon-play{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before{content:"\f101"}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:"\f103"}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder,.vjs-icon-volume-mute{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before,.vjs-icon-volume-mute:before{content:"\f104"}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder,.vjs-icon-volume-low{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before,.vjs-icon-volume-low:before{content:"\f105"}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder,.vjs-icon-volume-mid{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before,.vjs-icon-volume-mid:before{content:"\f106"}.video-js .vjs-mute-control .vjs-icon-placeholder,.vjs-icon-volume-high{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-mute-control .vjs-icon-placeholder:before,.vjs-icon-volume-high:before{content:"\f107"}.video-js .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-enter:before{content:"\f108"}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-style:normal;font-weight:400}.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before,.vjs-icon-fullscreen-exit:before{content:"\f109"}.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-subtitles{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-subtitles:before{content:"\f10b"}.video-js .vjs-captions-button .vjs-icon-placeholder,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.vjs-icon-captions{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-captions-button .vjs-icon-placeholder:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.vjs-icon-captions:before{content:"\f10c"}.video-js .vjs-chapters-button .vjs-icon-placeholder,.vjs-icon-chapters{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-chapters-button .vjs-icon-placeholder:before,.vjs-icon-chapters:before{content:"\f10e"}.video-js .vjs-play-progress,.video-js .vjs-volume-level,.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before{content:"\f116"}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder,.vjs-icon-cancel{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before,.vjs-icon-cancel:before{content:"\f119"}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder,.vjs-icon-replay{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before,.vjs-icon-replay:before{content:"\f11b"}.video-js .vjs-skip-backward-5 .vjs-icon-placeholder,.vjs-icon-replay-5{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-backward-5 .vjs-icon-placeholder:before,.vjs-icon-replay-5:before{content:"\f11c"}.video-js .vjs-skip-backward-10 .vjs-icon-placeholder,.vjs-icon-replay-10{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-backward-10 .vjs-icon-placeholder:before,.vjs-icon-replay-10:before{content:"\f11d"}.video-js .vjs-skip-backward-30 .vjs-icon-placeholder,.vjs-icon-replay-30{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-backward-30 .vjs-icon-placeholder:before,.vjs-icon-replay-30:before{content:"\f11e"}.video-js .vjs-skip-forward-5 .vjs-icon-placeholder,.vjs-icon-forward-5{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-forward-5 .vjs-icon-placeholder:before,.vjs-icon-forward-5:before{content:"\f11f"}.video-js .vjs-skip-forward-10 .vjs-icon-placeholder,.vjs-icon-forward-10{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-forward-10 .vjs-icon-placeholder:before,.vjs-icon-forward-10:before{content:"\f120"}.video-js .vjs-skip-forward-30 .vjs-icon-placeholder,.vjs-icon-forward-30{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-skip-forward-30 .vjs-icon-placeholder:before,.vjs-icon-forward-30:before{content:"\f121"}.video-js .vjs-audio-button .vjs-icon-placeholder,.vjs-icon-audio{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-audio-button .vjs-icon-placeholder:before,.vjs-icon-audio:before{content:"\f122"}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-enter{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-enter:before{content:"\f127"}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder,.vjs-icon-picture-in-picture-exit{font-family:VideoJS;font-style:normal;font-weight:400}.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before,.vjs-icon-picture-in-picture-exit:before{content:"\f128"}.vjs-icon-facebook{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-facebook:before{content:"\f129"}.vjs-icon-linkedin{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-linkedin:before{content:"\f12a"}.vjs-icon-twitter{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-twitter:before{content:"\f12b"}.vjs-icon-tumblr{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-tumblr:before{content:"\f12c"}.vjs-icon-pinterest{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-pinterest:before{content:"\f12d"}.video-js .vjs-descriptions-button .vjs-icon-placeholder,.vjs-icon-audio-description{font-family:VideoJS;font-style:normal;font-weight:400}.video-js .vjs-descriptions-button .vjs-icon-placeholder:before,.vjs-icon-audio-description:before{content:"\f12e"}.video-js{background-color:#000;box-sizing:border-box;color:#fff;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-style:normal;font-weight:400;line-height:1;padding:0;position:relative;vertical-align:top;word-break:normal}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{height:100%!important;width:100%!important}.video-js[tabindex="-1"]{outline:0}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-1-1,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-fluid{max-width:100%;width:100%}.video-js.vjs-1-1:not(.vjs-audio-only-mode),.video-js.vjs-16-9:not(.vjs-audio-only-mode),.video-js.vjs-4-3:not(.vjs-audio-only-mode),.video-js.vjs-9-16:not(.vjs-audio-only-mode),.video-js.vjs-fluid:not(.vjs-audio-only-mode){height:0}.video-js.vjs-16-9:not(.vjs-audio-only-mode){padding-top:56.25%}.video-js.vjs-4-3:not(.vjs-audio-only-mode){padding-top:75%}.video-js.vjs-9-16:not(.vjs-audio-only-mode){padding-top:177.7777777778%}.video-js.vjs-1-1:not(.vjs-audio-only-mode){padding-top:100%}.video-js .vjs-tech,.video-js.vjs-fill:not(.vjs-audio-only-mode){height:100%;width:100%}.video-js .vjs-tech{left:0;position:absolute;top:0}.video-js.vjs-audio-only-mode .vjs-tech{display:none}body.vjs-full-window,body.vjs-pip-window{height:100%;margin:0;padding:0}.vjs-full-window .video-js.vjs-fullscreen,body.vjs-pip-window .video-js{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1000}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs),body.vjs-pip-window .video-js{display:block;height:100%!important;padding-top:0!important;width:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-pip-container .vjs-pip-text{background-color:rgba(0,0,0,.7);bottom:10%;font-size:2em;padding:.5em;position:absolute;text-align:center;width:100%}.vjs-layout-small.vjs-pip-container .vjs-pip-text,.vjs-layout-tiny.vjs-pip-container .vjs-pip-text,.vjs-layout-x-small.vjs-pip-container .vjs-pip-text{bottom:0;font-size:1.4em}.vjs-hidden{display:none!important}.vjs-disabled{cursor:default;opacity:.5}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{background-color:#000;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:18px;height:150px;margin:0 auto;padding:20px;text-align:center;width:300px}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{background-color:#2b333f;background-color:rgba(43,51,63,.7);border:.06666em solid #fff;border-radius:.3em;cursor:pointer;display:block;font-size:3em;height:1.63332em;left:50%;line-height:1.5em;margin-left:-1.5em;margin-top:-.81666em;opacity:1;padding:0;position:absolute;top:50%;transition:all .4s;width:3em}.vjs-big-play-button .vjs-svg-icon{height:1em;left:50%;line-height:1;position:absolute;top:50%;transform:translate(-50%,-50%);width:1em}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{background-color:#73859f;background-color:rgba(115,133,159,.5);border-color:#fff;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause:not(.vjs-seeking,.vjs-scrubbing,.vjs-error) .vjs-big-play-button{display:block}.video-js button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-decoration:none;text-transform:none;transition:none}.video-js.vjs-spatial-navigation-enabled .vjs-button:focus{box-shadow:none;outline:.0625em solid #fff}.vjs-control .vjs-button{height:100%;width:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),hsla(0,0%,100%,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;font-family:Arial,Helvetica,sans-serif;margin:0;overflow:auto;padding:0}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{display:flex;font-size:1.2em;justify-content:center;line-height:1.4em;list-style:none;margin:0;padding:.2em 0;text-align:center;text-transform:lowercase}.js-focus-visible .vjs-menu li.vjs-menu-item:hover,.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:rgba(115,133,159,.5)}.js-focus-visible .vjs-menu li.vjs-selected:hover,.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.js-focus-visible .vjs-menu li.vjs-selected:hover .vjs-svg-icon,.vjs-menu li.vjs-selected .vjs-svg-icon,.vjs-menu li.vjs-selected:focus .vjs-svg-icon,.vjs-menu li.vjs-selected:hover .vjs-svg-icon{fill:#000}.js-focus-visible .vjs-menu :not(.vjs-selected):focus:not(.focus-visible),.video-js .vjs-menu :not(.vjs-selected):focus:not(:focus-visible){background:0 0}.vjs-menu li.vjs-menu-title{cursor:default;font-size:1em;font-weight:700;line-height:2em;margin:0 0 .3em;padding:0;text-align:center;text-transform:uppercase}.vjs-menu-button-popup .vjs-menu{border-top-color:rgba(43,51,63,.7);bottom:0;display:none;height:0;left:-3em;margin-bottom:1.5em;position:absolute;width:10em}.vjs-pip-window .vjs-menu-button-popup .vjs-menu{left:unset;right:1em}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:rgba(43,51,63,.7);bottom:1.5em;max-height:15em;position:absolute;width:100%}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{overflow:hidden;transition:all .4s}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline:hover{width:12em}.vjs-menu-button-inline .vjs-menu{height:100%;left:4em;margin:0;opacity:0;padding:0;position:absolute;top:0;transition:all .4s;width:auto}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-menu-button-inline .vjs-menu-content{height:100%;margin:0;overflow:hidden;width:auto}.video-js .vjs-control-bar{background-color:#2b333f;background-color:rgba(43,51,63,.7);bottom:0;display:none;height:3em;left:0;position:absolute;right:0;width:100%}.video-js.vjs-spatial-navigation-enabled .vjs-control-bar{gap:1px}.video-js:not(.vjs-controls-disabled,.vjs-using-native-controls,.vjs-error) .vjs-control-bar.vjs-lock-showing{display:flex!important}.vjs-audio-only-mode .vjs-control-bar,.vjs-has-started .vjs-control-bar{display:flex;opacity:1;transition:visibility .1s,opacity .1s;visibility:visible}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:0;pointer-events:none;transition:visibility 1s,opacity 1s;visibility:visible}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.vjs-audio-only-mode.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;pointer-events:auto;visibility:visible}.video-js .vjs-control{flex:none;height:100%;margin:0;padding:0;position:relative;text-align:center;width:4em}.video-js .vjs-control.vjs-visible-text{padding-left:1em;padding-right:1em;width:auto}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.vjs-button>.vjs-svg-icon{display:inline-block}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js :not(.vjs-visible-text)>.vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{align-items:center;cursor:pointer;display:flex;flex:auto;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{align-items:center;display:flex}.video-js .vjs-progress-holder{flex:auto;height:.3em;transition:all .2s}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress{display:block;height:100%;margin:0;padding:0;position:absolute;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;line-height:.35em;position:absolute;right:-.5em;z-index:1}.vjs-svg-icons-enabled .vjs-play-progress:before{content:none!important}.vjs-play-progress .vjs-svg-icon{height:.9em;line-height:.15em;pointer-events:none;position:absolute;right:-.4em;top:-.35em;width:.9em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:hsla(0,0%,100%,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{background-color:#000;display:none;height:100%;position:absolute;width:1px;z-index:1}.video-js .vjs-progress-control:hover .vjs-mouse-display,.video-js.vjs-scrubbing.vjs-touch-enabled .vjs-progress-control .vjs-mouse-display{display:block}.video-js.vjs-touch-enabled:not(.vjs-scrubbing) .vjs-progress-control .vjs-mouse-display,.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{opacity:0;transition:visibility 1s,opacity 1s;visibility:hidden}.vjs-mouse-display .vjs-time-tooltip{background-color:#000;background-color:rgba(0,0,0,.8);color:#fff}.video-js .vjs-slider{cursor:pointer;margin:0 .45em;padding:0;position:relative;-webkit-touch-callout:none;background-color:#73859f;background-color:rgba(115,133,159,.5);-webkit-user-select:none;-moz-user-select:none;user-select:none}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{box-shadow:0 0 1em #fff;text-shadow:0 0 1em #fff}.video-js.vjs-spatial-navigation-enabled .vjs-slider:focus{outline:.0625em solid #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;display:flex;margin-right:1em}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{height:1px;margin-left:-1px;opacity:0;visibility:visible;width:1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control{opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s;visibility:visible}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal{height:3em;margin-right:0;width:5em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active{transition:width .1s;width:10em}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s;width:3em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{height:.3em;width:5em}.vjs-volume-bar.vjs-slider-vertical{height:5em;margin:1.35em auto;width:.3em}.video-js .vjs-volume-level{background-color:#fff;bottom:0;left:0;position:absolute}.video-js .vjs-volume-level:before{font-size:.9em;position:absolute;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{left:-.3em;top:-.5em;z-index:1}.vjs-svg-icons-enabled .vjs-volume-level:before{content:none}.vjs-volume-level .vjs-svg-icon{height:.9em;pointer-events:none;position:absolute;width:.9em;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{line-height:.35em;right:-.5em}.vjs-slider-horizontal .vjs-volume-level .vjs-svg-icon{right:-.3em;transform:translateY(-50%)}.vjs-slider-vertical .vjs-volume-level .vjs-svg-icon{top:-.55em;transform:translateX(-50%)}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{background-color:#2b333f;background-color:rgba(43,51,63,.7);bottom:8em;height:8em;width:3em}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:hsla(0,0%,100%,.8);border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{background-color:#000;display:none;height:1px;position:absolute;width:100%;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{height:100%;width:1px}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{opacity:0;transition:visibility 1s,opacity 1s;visibility:hidden}.vjs-mouse-display .vjs-volume-tooltip{background-color:#000;background-color:rgba(0,0,0,.8);color:#fff}.vjs-poster{bottom:0;cursor:pointer;display:inline-block;height:100%;left:0;margin:0;padding:0;position:absolute;right:0;top:0;vertical-align:middle}.vjs-has-started .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster,.vjs-has-started.vjs-audio-poster-mode .vjs-poster,.vjs-pip-container.vjs-has-started .vjs-poster{display:block}.vjs-poster img{height:100%;object-fit:contain;width:100%}.video-js .vjs-live-control{align-items:flex-start;display:flex;flex:auto;font-size:1em;line-height:3em}.video-js.vjs-liveui .vjs-live-control,.video-js:not(.vjs-live) .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:1em;height:100%;line-height:3em;min-width:4em;padding-left:.5em;padding-right:.5em;width:auto}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{color:#888;margin-right:.5em}.vjs-svg-icons-enabled .vjs-seek-to-live-control{line-height:0}.vjs-seek-to-live-control .vjs-svg-icon{fill:#888;height:1em;pointer-events:none;width:1em}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-svg-icon{fill:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;padding-left:1em;padding-right:1em;width:auto}.video-js .vjs-current-time,.video-js .vjs-duration,.vjs-live .vjs-time-control,.vjs-live .vjs-time-divider{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-normalise-time-controls:not(.vjs-live) .vjs-time-control{display:flex}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{bottom:3em;left:0;pointer-events:none;position:absolute;right:0;top:0}.vjs-error .vjs-text-track-display{display:none}.video-js.vjs-controls-disabled .vjs-text-track-display,.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;margin-bottom:.1em;text-align:center}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-controls-disabled video::-webkit-media-text-track-display,.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js.vjs-force-center-align-cues .vjs-text-track-cue{text-align:center!important;width:80%!important}@supports not (inset:10px){.video-js .vjs-text-track-display>div{bottom:0;left:0;right:0;top:0}}.video-js .vjs-picture-in-picture-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-picture-in-picture-control,.vjs-pip-window .vjs-picture-in-picture-control{display:none}.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.video-js.vjs-audio-only-mode .vjs-fullscreen-control,.vjs-pip-window .vjs-fullscreen-control{display:none}.vjs-playback-rate .vjs-playback-rate-value,.vjs-playback-rate>.vjs-menu-button{height:100%;left:0;position:absolute;top:0;width:100%}.vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;pointer-events:none;text-align:center}.vjs-playback-rate .vjs-menu{left:0;width:4em}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-loading-spinner{background-clip:padding-box;border:.6em solid rgba(43,51,63,.7);border-radius:50%;box-sizing:border-box;display:none;height:5em;left:50%;opacity:.85;position:absolute;text-align:left;top:50%;transform:translate(-50%,-50%);visibility:hidden;width:5em}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{align-items:center;animation:vjs-spinner-show 0s linear .3s forwards;display:flex;justify-content:center}.vjs-error .vjs-loading-spinner{display:none}.vjs-loading-spinner:after,.vjs-loading-spinner:before{border:inherit;border-color:#fff transparent transparent;border-radius:inherit;box-sizing:inherit;content:"";height:inherit;opacity:1;position:absolute;width:inherit}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{animation-delay:.44s;border-top-color:#fff}@keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(1turn)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.video-js.vjs-audio-only-mode .vjs-captions-button{display:none}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-audio-only-mode .vjs-descriptions-button{display:none}.vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-svg-icon{height:1.5em;width:1.5em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{display:inline-block;margin-bottom:-.1em;vertical-align:middle}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{content:"\f10c";font-family:VideoJS;font-size:1.5em;line-height:inherit}.video-js.vjs-audio-only-mode .vjs-subs-caps-button{display:none}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{display:inline-block;margin-bottom:-.1em;vertical-align:middle}.video-js .vjs-audio-button+.vjs-menu .vjs-descriptions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before,.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{content:" \f12e";font-family:VideoJS;font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-volume-control{display:none}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover{width:auto}.video-js.vjs-layout-tiny .vjs-progress-control,.video-js.vjs-layout-x-small .vjs-progress-control{display:none}.video-js.vjs-layout-x-small .vjs-custom-control-spacer{display:block;flex:auto}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:rgba(43,51,63,.75);color:#fff;height:70%}.vjs-spatial-navigation-enabled .vjs-modal-dialog.vjs-text-track-settings{height:80%}.vjs-error .vjs-text-track-settings{display:none}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-controls,.vjs-text-track-settings .vjs-track-settings-font{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display:grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-text-track-settings select{font-size:inherit}.vjs-track-setting>select{margin-bottom:.5em;margin-right:1em}.vjs-text-track-settings fieldset{border:none;margin:10px}.vjs-text-track-settings fieldset span{display:inline-block;padding:0 .6em .8em}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;font-size:1.2em;font-weight:700}.vjs-text-track-settings .vjs-label{margin:0 .5em .5em 0}.vjs-track-settings-controls button:active,.vjs-track-settings-controls button:focus{background-image:linear-gradient(0deg,#fff 88%,#73859f);outline-style:solid;outline-width:medium}.vjs-track-settings-controls button:hover{color:rgba(43,51,63,.75)}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f);border-radius:2px;color:#2b333f;cursor:pointer}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}.vjs-title-bar{background:rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.7) 60%,transparent);font-size:1.2em;line-height:1.5;padding:.666em 1.333em 4em;pointer-events:none;position:absolute;top:0;transition:opacity .1s;width:100%}.vjs-error .vjs-title-bar{display:none}.vjs-title-bar-description,.vjs-title-bar-title{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-title-bar-title{font-weight:700;margin-bottom:.333em}.vjs-playing.vjs-user-inactive .vjs-title-bar{opacity:0;transition:opacity 1s}.video-js .vjs-skip-backward-10,.video-js .vjs-skip-backward-30,.video-js .vjs-skip-backward-5,.video-js .vjs-skip-forward-10,.video-js .vjs-skip-forward-30,.video-js .vjs-skip-forward-5{cursor:pointer}.video-js .vjs-transient-button{align-items:center;background-color:rgba(50,50,50,.5);cursor:pointer;display:flex;height:3em;justify-content:center;opacity:1;position:absolute;transition:opacity 1s}.video-js:not(.vjs-has-started) .vjs-transient-button{display:none}.video-js.not-hover .vjs-transient-button:not(.force-display),.video-js.vjs-user-inactive .vjs-transient-button:not(.force-display){opacity:0}.video-js .vjs-transient-button span{padding:0 .5em}.video-js .vjs-transient-button.vjs-left{left:1em}.video-js .vjs-transient-button.vjs-right{right:1em}.video-js .vjs-transient-button.vjs-top{top:1em}.video-js .vjs-transient-button.vjs-near-top{top:4em}.video-js .vjs-transient-button.vjs-bottom{bottom:4em}.video-js .vjs-transient-button:hover{background-color:rgba(50,50,50,.9)}@media print{.video-js>:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{border:none;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1000}.js-focus-visible .video-js :focus:not(.focus-visible){outline:0}.video-js :focus:not(:focus-visible){outline:0}.vjs-icon-pause{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-pause:before{content:"\f103"}.cld-video-player .vp-theme-button{border-radius:4px;font-size:16px;height:40px;overflow:hidden;padding:0 20px;position:relative}.cld-video-player .vp-theme-button.theme-transparent-white{background-color:rgba(255,255,254,.18)}.cld-video-player .vp-theme-button.theme-transparent-white:hover{background-color:rgba(255,255,254,.28)}.cld-video-player .vp-theme-button.theme-transparent-white .vp-loading-bar{background-color:rgba(255,255,254,.22)}.cld-video-player .vp-theme-button .vp-loading-bar{animation-name:loading;height:100%;left:0;position:absolute;top:0;transition:width;width:100%}.cld-video-player .vp-theme-button:hover{cursor:pointer}@keyframes loading{0%{width:0}to{width:100%}}.cld-video-player .vjs-text-track-display{bottom:5em;z-index:2}.cld-video-player .vjs-text-track-display.cld-paced-text-tracks b{color:var(--color-accent)}.cld-video-player.vjs-controls-disabled .vjs-text-track-display,.cld-video-player.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.cld-video-player .vjs-text-track-cue{max-width:100%}.cld-video-player .vjs-text-track-cue>div{background-color:rgba(0,0,0,.5)!important;display:inline-block!important;padding:.1em .3em}.cld-video-player .cld-paced-text-tracks .vjs-text-track-cue b{color:var(--color-accent)}.cld-video-player .vjs-text-track-display:not(.cld-styled-text-tracks-theme-videojs-default) .vjs-text-track-cue{font-family:inherit!important}.cld-video-player .vjs-text-track-display:not(.cld-styled-text-tracks-theme-videojs-default) .vjs-text-track-cue>div{background-color:transparent!important;border-radius:.2em;font-weight:700;text-shadow:0 0 .2em rgba(0,0,0,.8)}.cld-video-player{--color-accent:#0d9aff;--color-base:#000;--color-text:#fff}.cld-video-player.cld-video-player-skin-light{--color-base:#fff;--color-text:#000}.cld-video-player{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:300;overflow:hidden}.cld-video-player:focus{outline:none}.cld-video-player .vjs-control,.cld-video-player .vjs-icon-close,.cld-video-player .vjs-volume-bar{z-index:1}.cld-video-player .vjs-control:focus,.cld-video-player .vjs-control:focus:before,.cld-video-player .vjs-icon-close:focus,.cld-video-player .vjs-icon-close:focus:before,.cld-video-player .vjs-volume-bar:focus,.cld-video-player .vjs-volume-bar:focus:before{outline:none;text-shadow:0 0 .1em var(--color-accent),0 0 .2em var(--color-accent),0 0 .3em var(--color-accent),0 0 .8em var(--color-text),0 0 1em var(--color-text)}.cld-video-player .vjs-cloudinary-button:focus,.cld-video-player .vjs-control:before,.cld-video-player .vjs-duration,.cld-video-player .vjs-icon-placeholder:before,.cld-video-player .vjs-playback-rate-value,.cld-video-player .vjs-time-divider{opacity:.8}.cld-video-player .vjs-control:hover:before,.cld-video-player .vjs-duration:hover,.cld-video-player .vjs-icon-placeholder:hover:before,.cld-video-player .vjs-playback-rate:hover .vjs-playback-rate-value,.cld-video-player .vjs-time-divider:hover{opacity:1;text-shadow:none}.cld-video-player.cld-lazy-player{height:auto;width:auto}.cld-video-player.cld-fluid{max-width:100%;width:100%}.cld-video-player.cld-fluid .vjs-poster{background:#000;background-size:cover}.cld-video-player.cld-fluid .vjs-poster img{object-fit:cover}.cld-video-player .vjs-time-control{font-variant-numeric:tabular-nums;padding-left:.15em;padding-right:.15em;width:auto}.cld-video-player .vjs-time-control>*{font-size:90%}.cld-video-player .vjs-time-divider{display:block;min-width:0}.cld-video-player .vjs-current-time{display:block}.cld-video-player .vjs-remaining-time{display:none}.cld-video-player .vjs-duration{display:block}.cld-video-player .vjs-time-tooltip{font-size:.8em;padding:.4em .6em;top:-2.6em}.cld-video-player .vjs-big-play-button{border:0;border-radius:50%;font-size:5em;height:auto;left:50%;margin:0;top:50%;transform:translateX(-50%) translateY(-50%);width:1.5em}.cld-video-player .vjs-big-play-button:before{content:"";display:block;padding-bottom:100%;position:relative;width:100%}.cld-video-player .vjs-big-play-button .vjs-icon-placeholder{display:block;height:40%;left:40%;overflow:hidden;position:absolute;top:30%;width:30%}.cld-video-player .vjs-big-play-button .vjs-icon-placeholder:before{border-bottom:200px solid transparent;border-left:300px solid;border-top:200px solid transparent;content:"";display:block;height:0;left:100%;margin-left:-300px;margin-top:-200px;position:absolute;top:50%;width:0}.cld-video-player.cld-fluid .vjs-big-play-button{max-width:15%}.cld-video-player.vjs-big-play-button-init-only.vjs-has-started .vjs-big-play-button{display:none}.cld-video-player.vjs-paused .vjs-big-play-button,.cld-video-player.vjs-paused.vjs-has-started .vjs-big-play-button{opacity:1;visibility:visible}.cld-video-player.vjs-error .vjs-error-display{background:#90a0b3}.cld-video-player.vjs-error .vjs-error-display:before{display:none}.cld-video-player.vjs-error .vjs-error-display .vjs-modal-dialog-content{align-items:center;display:flex;font-size:20px;font-weight:500;padding:0 10%;text-align:left}.cld-video-player.vjs-error .vjs-error-display .vjs-modal-dialog-content:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzNCIgdmlld0JveD0iMCAwIDM0IDM0Ij48dGl0bGU+RkFCNDUzODAtMkQ2Qy00Rjc0LUE0MTUtRTg0MkEwNDg4NDUxPC90aXRsZT48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS4zMTMgMjUuNDgyaDMuMzc0VjE1LjM1N2gtMy4zNzV6TTE3IC4xNjlDNy42ODUuMTcuMTI1IDcuNzMuMTI1IDE3LjA0NFM3LjY4NSAzMy45MiAxNyAzMy45MnMxNi44NzUtNy41NiAxNi44NzUtMTYuODc1UzI2LjMxNS4xNyAxNyAuMTdtMCAzMC4zNzVjLTcuNDQyIDAtMTMuNS02LjA1OC0xMy41LTEzLjUgMC03LjQ0MSA2LjA1OC0xMy41IDEzLjUtMTMuNXMxMy41IDYuMDU5IDEzLjUgMTMuNWMwIDcuNDQyLTYuMDU4IDEzLjUtMTMuNSAxMy41bS0xLjY4Ny0xOC41NjJoMy4zNzRWOC42MDdoLTMuMzc1eiIvPjwvc3ZnPg==);content:"";flex-shrink:0;height:34px;margin-right:10px;transform:translateY(-1px);width:34px}.cld-video-player.vjs-controls-disabled .vjs-big-play-button,.cld-video-player.vjs-error .vjs-big-play-button,.cld-video-player.vjs-has-started .vjs-big-play-button,.cld-video-player.vjs-using-native-controls .vjs-big-play-button{display:block;opacity:0;transition:visibility .2s,opacity .2s;visibility:hidden}.cld-video-player.vjs-has-started.vjs-controls-enabled:has(.vjs-control-bar):before{background:linear-gradient(to bottom,transparent 0,var(--color-base) 100%);bottom:3em;content:"";font-size:120%;height:5rem;left:0;opacity:.4;pointer-events:none;position:absolute;right:0;transition:opacity .1s;width:100%;z-index:1}.cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing:before{opacity:0;transition:opacity 1s}.cld-video-player .vjs-control{width:2.5em}.cld-video-player .vjs-control:before,.cld-video-player .vjs-icon-placeholder:before{font-size:1.8em;line-height:1.7;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.cld-video-player .vjs-control-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:120%;z-index:2}.cld-video-player .vjs-control-bar .vjs-volume-panel{margin-right:.5em}.cld-video-player .vjs-control-bar .vjs-volume-panel.vjs-volume-panel-horizontal{max-width:8em}.cld-video-player .vjs-control-bar .vjs-volume-panel .vjs-slider{background-color:color-mix(in srgb,var(--color-text) 10%,transparent);box-shadow:0 0 1px 1px color-mix(in srgb,var(--color-text) 80%,transparent) inset}.cld-video-player .vjs-control-bar .vjs-progress-control,.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);bottom:100%;height:3px;left:0;position:absolute;width:100%}.cld-video-player .vjs-control-bar .vjs-progress-holder{height:100%;margin:0;z-index:1}.cld-video-player .vjs-control-bar .vjs-progress-holder:after{bottom:-.4rem;content:"";left:0;position:absolute;right:0;top:-.4rem;width:100%}.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker:hover,.cld-video-player .vjs-control-bar .vjs-progress-control:hover{z-index:2}.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker:hover .vjs-progress-holder,.cld-video-player .vjs-control-bar .vjs-progress-control:hover .vjs-progress-holder{font-size:inherit;transition:none}.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker:hover .vjs-progress-holder .vjs-time-tooltip,.cld-video-player .vjs-control-bar .vjs-progress-control:hover .vjs-progress-holder .vjs-time-tooltip{font-size:.8em}.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker:hover .vjs-progress-holder:after,.cld-video-player .vjs-control-bar .vjs-progress-control:hover .vjs-progress-holder:after{top:-1.4rem}.cld-video-player .vjs-control-bar .vjs-load-progress div{background:none}.cld-video-player .vjs-control-bar .vjs-play-progress .vjs-time-tooltip,.cld-video-player .vjs-control-bar .vjs-play-progress:before{display:none}.cld-video-player .vjs-control-bar .vjs-progress-control-events-blocker{background-color:transparent}.cld-video-player .vjs-playback-rate-value{font-size:1.3em;line-height:2.3em}.cld-video-player .vjs-subs-caps-button .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{display:inline-block;margin-bottom:-.3em;vertical-align:top}.cld-video-player .vjs-subs-caps-button>.vjs-icon-placeholder:before{content:""!important}.cld-video-player .vjs-menu .vjs-selected{background:none;color:var(--color-text)}.cld-video-player .vjs-menu .vjs-menu-item{font-size:.9em;justify-content:left;line-height:2em;padding:0 1em;text-align:left;text-transform:capitalize;white-space:nowrap}.cld-video-player .vjs-menu .vjs-menu-item .vjs-menu-item-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.cld-video-player .vjs-menu:has(.vjs-selected) .vjs-menu-item{padding-left:2em}.cld-video-player .vjs-menu:has(.vjs-selected) .vjs-menu-item.vjs-selected:before{content:"";display:block;font-family:VideoJS;font-size:1.2em;font-style:normal;font-weight:400;line-height:1.6;margin-left:-1.3em;position:absolute;width:1em}.cld-video-player .vjs-spacer{flex:auto}.cld-video-player .vjs-modal-dialog{background:none}.vjs-control-bar a.vjs-control.vjs-cloudinary-button{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzIuOCAxMTMuMTgiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmfTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMYXllcl8xLTIiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTE0MC4yNSA0MC4yN0E1Ny44NCA1Ny44NCAwIDAgMCA4NS41NiAwYTU2Ljc1IDU2Ljc1IDAgMCAwLTUwLjMyIDI5LjkgNDIuNzkgNDIuNzkgMCAwIDAtMTAuMzMgODFsMS4wOC41aC4wNlY5OS4yM2EzMS45NSAzMS45NSAwIDAgMSAxMy4zMS01OWwzLS4zMSAxLjMxLTIuNzRhNDYgNDYgMCAwIDEgNDEuODktMjYuMzMgNDYuODMgNDYuODMgMCAwIDEgNDUuMTkgMzUuNzlsMSA0LjExIDQuMjMuMDdhMjYuNTYgMjYuNTYgMCAwIDEgMjYgMjYuNDRjMCAxMC4xMS01LjgzIDE4LjM2LTE1LjcyIDIyLjU1djExLjU1bC43MS0uMjRjMTUuOTUtNS4yMSAyNS44Ni0xOC4xOSAyNS44Ni0zMy44NmEzNy40OSAzNy40OSAwIDAgMC0zMi41OC0zNi45OSIgY2xhc3M9ImNscy0xIi8+PHBhdGggZD0ibTY0LjU2IDExMCAyLjM4IDIuMzhhLjQ3LjQ3IDAgMCAxLS4zNC44MUg0Ny44NGE4LjUzIDguNTMgMCAwIDEtOC41NC04LjUzVjY4LjE0YS40Ny40NyAwIDAgMC0uNDctLjQ3aC00LjA3YS40OC40OCAwIDAgMS0uMzQtLjgxbDE1LjkzLTE1LjkyYS40Ni40NiAwIDAgMSAuNjcgMGwxNS45MiAxNS45MmEuNDcuNDcgMCAwIDEtLjM0LjgxaC00LjA3YS40Ny40NyAwIDAgMC0uNDcuNDdWMTA0YTguNTMgOC41MyAwIDAgMCAyLjUgNk05OS43NiAxMTBsMi4zOCAyLjM4YS40Ny40NyAwIDAgMS0uMzQuODFIODNhOC41MyA4LjUzIDAgMCAxLTguNTQtOC41M1Y3Ny4zMmEuNDcuNDcgMCAwIDAtLjQ3LS40OEg3MGEuNDguNDggMCAwIDEtLjM0LS44MWwxNS44OS0xNS45MmEuNDYuNDYgMCAwIDEgLjY3IDBMMTAyLjE0IDc2YS40Ny40NyAwIDAgMS0uMzQuODFoLTQuMDdhLjQ3LjQ3IDAgMCAwLS40Ny40OFYxMDRhOC41MyA4LjUzIDAgMCAwIDIuNSA2TTEzNSAxMTBsMi4zOCAyLjM4YS40Ny40NyAwIDAgMS0uMzMuODFoLTE4LjgxYTguNTQgOC41NCAwIDAgMS04LjU0LTguNTNWODYuNDlhLjQ3LjQ3IDAgMCAwLS40Ny0uNDdoLTQuMDdhLjQ3LjQ3IDAgMCAxLS4zMy0uODFsMTUuOTItMTUuOTNhLjQ4LjQ4IDAgMCAxIC42NyAwbDE1LjkyIDE1LjkzYS40Ny40NyAwIDAgMS0uMzQuNzloLTQuMDhhLjQ3LjQ3IDAgMCAwLS40Ny40N1YxMDRhOC41MyA4LjUzIDAgMCAwIDIuNTUgNiIgY2xhc3M9ImNscy0xIi8+PC9nPjwvZz48L3N2Zz4=);background-position:50%;background-repeat:no-repeat;background-size:25px;color:inherit}.cld-video-player-skin-light .vjs-control-bar a.vjs-control.vjs-cloudinary-button{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzIuOCAxMTMuMTgiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMDAwfTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJMYXllcl8yIiBkYXRhLW5hbWU9IkxheWVyIDIiPjxnIGlkPSJMYXllcl8xLTIiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTE0MC4yNSA0MC4yN0E1Ny44NCA1Ny44NCAwIDAgMCA4NS41NiAwYTU2Ljc1IDU2Ljc1IDAgMCAwLTUwLjMyIDI5LjkgNDIuNzkgNDIuNzkgMCAwIDAtMTAuMzMgODFsMS4wOC41aC4wNlY5OS4yM2EzMS45NSAzMS45NSAwIDAgMSAxMy4zMS01OWwzLS4zMSAxLjMxLTIuNzRhNDYgNDYgMCAwIDEgNDEuODktMjYuMzMgNDYuODMgNDYuODMgMCAwIDEgNDUuMTkgMzUuNzlsMSA0LjExIDQuMjMuMDdhMjYuNTYgMjYuNTYgMCAwIDEgMjYgMjYuNDRjMCAxMC4xMS01LjgzIDE4LjM2LTE1LjcyIDIyLjU1djExLjU1bC43MS0uMjRjMTUuOTUtNS4yMSAyNS44Ni0xOC4xOSAyNS44Ni0zMy44NmEzNy40OSAzNy40OSAwIDAgMC0zMi41OC0zNi45OSIgY2xhc3M9ImNscy0xIi8+PHBhdGggZD0ibTY0LjU2IDExMCAyLjM4IDIuMzhhLjQ3LjQ3IDAgMCAxLS4zNC44MUg0Ny44NGE4LjUzIDguNTMgMCAwIDEtOC41NC04LjUzVjY4LjE0YS40Ny40NyAwIDAgMC0uNDctLjQ3aC00LjA3YS40OC40OCAwIDAgMS0uMzQtLjgxbDE1LjkzLTE1LjkyYS40Ni40NiAwIDAgMSAuNjcgMGwxNS45MiAxNS45MmEuNDcuNDcgMCAwIDEtLjM0LjgxaC00LjA3YS40Ny40NyAwIDAgMC0uNDcuNDdWMTA0YTguNTMgOC41MyAwIDAgMCAyLjUgNk05OS43NiAxMTBsMi4zOCAyLjM4YS40Ny40NyAwIDAgMS0uMzQuODFIODNhOC41MyA4LjUzIDAgMCAxLTguNTQtOC41M1Y3Ny4zMmEuNDcuNDcgMCAwIDAtLjQ3LS40OEg3MGEuNDguNDggMCAwIDEtLjM0LS44MWwxNS44OS0xNS45MmEuNDYuNDYgMCAwIDEgLjY3IDBMMTAyLjE0IDc2YS40Ny40NyAwIDAgMS0uMzQuODFoLTQuMDdhLjQ3LjQ3IDAgMCAwLS40Ny40OFYxMDRhOC41MyA4LjUzIDAgMCAwIDIuNSA2TTEzNSAxMTBsMi4zOCAyLjM4YS40Ny40NyAwIDAgMS0uMzMuODFoLTE4LjgxYTguNTQgOC41NCAwIDAgMS04LjU0LTguNTNWODYuNDlhLjQ3LjQ3IDAgMCAwLS40Ny0uNDdoLTQuMDdhLjQ3LjQ3IDAgMCAxLS4zMy0uODFsMTUuOTItMTUuOTNhLjQ4LjQ4IDAgMCAxIC42NyAwbDE1LjkyIDE1LjkzYS40Ny40NyAwIDAgMS0uMzQuNzloLTQuMDhhLjQ3LjQ3IDAgMCAwLS40Ny40N1YxMDRhOC41MyA4LjUzIDAgMCAwIDIuNTUgNiIgY2xhc3M9ImNscy0xIi8+PC9nPjwvZz48L3N2Zz4=)}.vjs-control-bar a.vjs-control.vjs-cloudinary-button:hover{cursor:pointer}.vjs-control-bar a.vjs-control.vjs-cloudinary-button:last-child{margin-left:.8em;margin-right:.4em}.vjs-control-bar a.vjs-control.vjs-cloudinary-button:last-child:before{border-left:1px solid;bottom:.3em;content:"";left:-.25em;opacity:.25;position:absolute;top:.3em}.cld-video-player .vjs-title-bar{align-items:center;background-image:linear-gradient(color-mix(in srgb,var(--color-base) 70%,transparent),transparent 100%);color:var(--color-text);container-type:inline-size;display:flex;flex-direction:column;left:0;opacity:1;padding:clamp(1.3em,4cqw,2em);pointer-events:none;position:absolute;text-shadow:0 0 .5em var(--color-base);top:0;transition:opacity .1s;visibility:visible;width:100%}.cld-video-player .vjs-title-bar .vjs-title-bar-title{font-size:1.8em;font-size:clamp(1.3em,4cqw,1.8em);font-weight:600;line-height:1.2;margin-bottom:clamp(.2em,1.5cqw,.5em);width:100%}.cld-video-player .vjs-title-bar .vjs-title-bar-subtitle{font-size:1em;font-size:clamp(.8em,3cqw,1.1em);font-weight:100;line-height:1;width:100%}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-title-bar{opacity:0;transition:opacity 1s;visibility:visible}.vjs-ad-playing .vjs-title-bar,.vjs-controls-disabled .vjs-title-bar,.vjs-error .vjs-title-bar,.vjs-using-native-controls .vjs-title-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-title-bar{opacity:1;visibility:visible}@font-face{font-family:VideoJS;font-style:normal;font-weight:400;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}.vjs-icon-play{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-play:before{content:"\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-play-circle:before{content:"\f102"}.cld-video-player .vjs-big-pause-button .vjs-icon-placeholder,.vjs-icon-pause{font-family:VideoJS;font-style:normal;font-weight:400}.cld-video-player .vjs-big-pause-button .vjs-icon-placeholder:before,.vjs-icon-pause:before{content:"\f103"}.vjs-icon-volume-mute{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-volume-mute:before{content:"\f104"}.vjs-icon-volume-low{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-volume-low:before{content:"\f105"}.vjs-icon-volume-mid{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-volume-mid:before{content:"\f106"}.vjs-icon-volume-high{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-volume-high:before{content:"\f107"}.vjs-icon-fullscreen-enter{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-fullscreen-enter:before{content:"\f108"}.vjs-icon-fullscreen-exit{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-fullscreen-exit:before{content:"\f109"}.vjs-icon-spinner{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-spinner:before{content:"\f10a"}.vjs-icon-subtitles{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-subtitles:before{content:"\f10b"}.vjs-icon-captions{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-captions:before{content:"\f10c"}.vjs-icon-hd{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-hd:before{content:"\f10d"}.vjs-icon-chapters{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-chapters:before{content:"\f10e"}.vjs-icon-downloading{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-downloading:before{content:"\f10f"}.vjs-icon-file-download{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-file-download:before{content:"\f110"}.vjs-icon-file-download-done{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-file-download-done:before{content:"\f111"}.vjs-icon-file-download-off{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-file-download-off:before{content:"\f112"}.vjs-icon-share{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-share:before{content:"\f113"}.vjs-icon-cog{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-cog:before{content:"\f114"}.vjs-icon-square{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-square:before{content:"\f115"}.vjs-icon-circle{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-circle:before{content:"\f116"}.vjs-icon-circle-outline{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-circle-outline:before{content:"\f117"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-circle-inner-circle:before{content:"\f118"}.vjs-icon-cancel{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-cancel:before{content:"\f119"}.vjs-icon-repeat{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-repeat:before{content:"\f11a"}.vjs-icon-replay{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-replay:before{content:"\f11b"}.vjs-icon-replay-5{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-replay-5:before{content:"\f11c"}.vjs-icon-replay-10{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-replay-10:before{content:"\f11d"}.vjs-icon-replay-30{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-replay-30:before{content:"\f11e"}.vjs-icon-forward-5{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-forward-5:before{content:"\f11f"}.vjs-icon-forward-10{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-forward-10:before{content:"\f120"}.vjs-icon-forward-30{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-forward-30:before{content:"\f121"}.vjs-icon-audio{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-audio:before{content:"\f122"}.vjs-icon-next-item{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-next-item:before{content:"\f123"}.vjs-icon-previous-item{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-previous-item:before{content:"\f124"}.vjs-icon-shuffle{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-shuffle:before{content:"\f125"}.vjs-icon-cast{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-cast:before{content:"\f126"}.vjs-icon-picture-in-picture-enter{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-picture-in-picture-enter:before{content:"\f127"}.vjs-icon-picture-in-picture-exit{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-picture-in-picture-exit:before{content:"\f128"}.vjs-icon-close{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-close:before{content:"\f129"}.vjs-icon-search{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-search:before{content:"\f12a"}.vjs-icon-audio-description{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-audio-description:before{content:"\f12b"}.vjs-icon-cart{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-cart:before{content:"\f12c"}.vjs-icon-check{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-check:before{content:"\f12d"}.vjs-icon-source-switcher{font-family:VideoJS;font-style:normal;font-weight:400}.vjs-icon-source-switcher:before{content:"\f12e"}.cld-video-player.cld-fluid .vjs-big-pause-button{max-width:15%}.cld-video-player .vjs-big-pause-button .vjs-icon-placeholder{align-items:center;container-type:inline-size;display:flex;height:100%;justify-content:center;left:0;overflow:hidden;top:0;width:100%}.cld-video-player .vjs-big-pause-button .vjs-icon-placeholder:before{border:none;font-size:clamp(.35em,50cqw,.8em);height:auto;margin:0;position:static;width:auto}.cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-big-pause-button{opacity:0;transition:visibility 1s,opacity 1s;visibility:hidden}.cld-video-player.vjs-has-started.vjs-playing .vjs-big-pause-button,.cld-video-player.vjs-has-started.vjs-user-active.vjs-playing .vjs-big-pause-button{opacity:1;transition:visibility .1s,opacity .1s;visibility:visible}.cld-video-player .vjs-highlights-graph-display{bottom:50%;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .2s;z-index:0}.cld-video-player .vjs-highlights-graph-display svg{height:100%;width:100%}.cld-video-player .vjs-highlights-graph-display path{fill:currentColor}.cld-video-player .vjs-progress-control:hover .vjs-highlights-graph-display{opacity:.8}.vjs-context-menu-ui{position:absolute;z-index:2}.vjs-context-menu-ui .vjs-menu-content{background:rgba(0,0,0,.6);border-radius:.2em;padding:0}.vjs-context-menu-ui .vjs-menu-item{cursor:pointer;font-size:1em;line-height:1em;margin:0;padding:.8em 1.4em;text-transform:none}.vjs-context-menu-ui .vjs-menu-item:active,.vjs-context-menu-ui .vjs-menu-item:hover{background-color:rgba(0,0,0,.5)}.vjs-context-menu-ui .player-version{font-size:80%;opacity:.7}.cld-video-player-floater{position:static;transition:all .5s ease-out;transition-property:bottom,right,left}.cld-video-player-floater .cld-video-player-floater-close{display:none}.cld-video-player-floater.cld-video-player-floating{border:4px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.2);position:fixed;z-index:9}.cld-video-player-floater.cld-video-player-floating .cld-video-player-floater-inner{height:0;width:100%}.cld-video-player-floater.cld-video-player-floating .cld-video-player-floater-close{background:#fff;border-bottom:none;bottom:100%;box-shadow:0 0 4px rgba(0,0,0,.05);cursor:pointer;display:block;margin-bottom:4px;padding:4px 6px 2px;position:absolute;right:-4px}.cld-video-player-floater.cld-video-player-floating .cld-video-player-floater-close:after{background:#fff;content:"";height:4px;position:absolute;right:0;top:100%;width:120%}.cld-video-player-floater.cld-video-player-floating .vjs-recommendations-overlay,.cld-video-player-floater.cld-video-player-floating .vjs-time-control,.cld-video-player-floater.cld-video-player-floating .vjs-upcoming-video-title-display{display:none}.cld-video-player-floater.cld-video-player-floating .vjs-upcoming-video .vjs-upcoming-video-bar{background-color:transparent}.cld-video-player-floater.cld-video-player-floating .vjs-big-play-button{font-size:4em;top:40%}.cld-video-player-floater.cld-video-player-floating.cld-video-player-floater-bottom-right{bottom:20px!important;left:auto!important;right:20px!important;top:auto!important}.cld-video-player-floater.cld-video-player-floating.cld-video-player-floater-bottom-left{bottom:20px!important;left:20px!important;right:auto!important;top:auto!important}.cld-video-player .cld-styled-text-tracks-gravity-center{inset:0!important}.cld-video-player .cld-styled-text-tracks-gravity-center .vjs-text-track-cue{inset:0!important;margin:auto}.cld-video-player .cld-styled-text-tracks-gravity-top .vjs-text-track-cue{top:0!important}.cld-video-player .cld-styled-text-tracks-gravity-right .vjs-text-track-cue{text-align:right!important}.cld-video-player .cld-styled-text-tracks-gravity-left .vjs-text-track-cue{text-align:left!important}.cld-video-player div.vjs-text-track-display.cld-styled-text-tracks-theme-yellow-outlined div.vjs-text-track-cue>div,.cld-video-player:has(.cld-styled-text-tracks-theme-yellow-outlined) ::cue{color:#fef94a!important;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}.cld-video-player div.vjs-text-track-display.cld-styled-text-tracks-theme-3d div.vjs-text-track-cue>div,.cld-video-player:has(.cld-styled-text-tracks-theme-3d) ::cue{color:#fff!important;text-shadow:.03em .03em 0 #ff438e,.06em .06em 0 #ff1070,.09em .09em 0 #dc0058,.12em .12em 0 #a90044}.cld-video-player div.vjs-text-track-display.cld-styled-text-tracks-theme-player-colors div.vjs-text-track-cue>div,.cld-video-player:has(.cld-styled-text-tracks-theme-player-colors) ::cue{background-color:var(--color-accent)!important;color:var(--color-text)!important;text-shadow:0 0 4px var(--color-base)}.cld-video-player .vjs-vtt-thumbnail-display{backdrop-filter:blur(12px);border:1px solid var(--color-base);border-radius:2px;bottom:3em;box-shadow:0 0 6px rgba(0,0,0,.3);left:0;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s;z-index:1}.cld-video-player .vjs-vtt-time-display{background:var(--color-base);border-radius:4px;bottom:-2.8em;color:var(--color-text);font-size:80%;left:0;line-height:1.4;margin:auto;padding:.3em .6em;position:absolute;right:0;width:fit-content}.vjs-recommendations-overlay{align-items:center;background-color:rgba(0,0,0,.5);display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;visibility:hidden;width:100%}.vjs-recommendations-overlay .vjs-recommendations-overlay-hide{cursor:pointer;display:inline-block;font-size:1em;position:absolute;right:1.72%;top:3.75%}.vjs-recommendations-overlay .vjs-recommendations-overlay-content{position:relative;width:85%}.vjs-recommendations-overlay .vjs-recommendations-overlay-content:before{content:"";display:block;padding-top:56.25%;width:100%}.vjs-recommendations-overlay .vjs-recommendations-overlay-content>.aspect-ratio-content{bottom:0;left:0;position:absolute;right:0;top:0}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content{display:flex;flex-flow:column;height:auto}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item{border:1px solid hsla(0,0%,100%,.5)}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary{display:flex;flex:1.82;flex-flow:row}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-image{background-size:cover;flex:1}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content{background:rgba(0,0,0,.6);display:flex;flex:.5625;flex-flow:column;min-width:0;padding:3%;text-align:left}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content h2{font-size:18px;font-weight:600;margin:0 0 1em;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content h3{font-size:20px;font-weight:500;margin:0 0 1.3em;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content p{font-size:14px;font-weight:400;line-height:1.4em;margin:0;overflow:hidden;padding:0}@media only screen and (max-width:1050px){.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content h2{font-size:16px}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content h3{font-size:18px}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content p{font-size:12px}}@media only screen and (max-width:900px){.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content p{font-size:10px}}@media only screen and (max-width:768px){.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content p{display:none}}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container{display:flex;flex:1;flex-flow:row wrap;justify-content:flex-start}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary{background-size:100% 100%;flex:1;font-size:1.16em;margin:2% 2% 0 0;max-width:33%;position:relative}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary:last-child{margin-right:0}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div{bottom:0;display:flex;flex-direction:row;justify-content:space-between;left:0;line-height:normal;padding:20% 7% 4.5%;position:absolute;text-align:left;width:100%}.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div{padding:5% 7%}.cld-video-player-skin-dark .vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div.vjs-recommendations-overlay-item-info{text-shadow:1px 1px 0 rgba(0,0,0,.3)}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div span.vjs-recommendations-overlay-item-secondary-title{flex:2.3;font-size:13px}.vjs-recommendations-overlay .vjs-recommendations-overlay-content .aspect-ratio-content .vjs-recommendations-overlay-item-secondary-container .vjs-recommendations-overlay-item-secondary div span.vjs-recommendations-overlay-item-secondary-duration{margin-left:10px;text-align:right}.cld-video-player .vjs-control-bar-chapter-wrapper{align-items:center;container-type:inline-size;display:flex}.cld-video-player .vjs-control-bar-chapter-display{font-size:90%;line-height:1.5;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;white-space:nowrap}.cld-video-player .vjs-control-bar-chapter-display:not(:empty):before{content:"•";padding-right:.5em}@container (max-width: 150px){.cld-video-player .vjs-control-bar-chapter-display{display:none}}.cld-video-player .vjs-chapter-marker{background:var(--color-base);bottom:0;opacity:.5;pointer-events:none;position:absolute;top:0;width:4px;z-index:1}.cld-video-player .vjs-chapter-display{bottom:2.7em;font-size:90%;font-weight:700;line-height:1.5;overflow:hidden;padding:0 .3em;pointer-events:none;position:absolute;text-overflow:ellipsis;text-shadow:0 0 8px var(--color-base),0 0 1px var(--color-base),0 0 1px var(--color-base);transform:translateX(-50%);white-space:nowrap}.cld-video-player .vjs-chapter-display:not(:empty)~.vjs-vtt-thumbnail-display{bottom:4em}.cld-video-player .vjs-time-tooltip{right:auto!important;translate:-50%}.cld-video-player{color:var(--color-text)}.cld-video-player .vjs-mouse-display:after,.cld-video-player .vjs-play-progress:after,.cld-video-player .vjs-time-tooltip{background-color:var(--color-base);color:var(--color-text)}.cld-video-player .vjs-load-progress{background:color-mix(in srgb,var(--color-text) 30%,transparent)}.cld-video-player .vjs-volume-level{background:var(--color-text)}.cld-video-player .vjs-play-progress{background:var(--color-accent)}.cld-video-player .vjs-volume-vertical{background-color:color-mix(in srgb,var(--color-base) 70%,transparent)}.cld-video-player .vjs-volume-panel-horizontal .vjs-control:before{border-color:transparent transparent color-mix(in srgb,var(--color-accent) 40%,transparent) transparent}.cld-video-player .vjs-volume-panel-horizontal .vjs-volume-level:before{border-color:transparent transparent var(--color-accent) transparent}.cld-video-player .vjs-progress-control:before{color:var(--color-base)}.cld-video-player .vjs-highlights-graph-display{color:color-mix(in srgb,var(--color-text) 30%,transparent)}.cld-video-player .vjs-recommendations-overlay{background-color:color-mix(in srgb,var(--color-base) 40%,transparent);color:var(--color-text)}.cld-video-player .vjs-recommendations-overlay .vjs-recommendations-overlay-item{border:1px solid var(--color-text)!important;box-shadow:0 .5em 1.2em 0 var(--color-base);color:var(--color-text);position:relative}.cld-video-player .vjs-recommendations-overlay .vjs-recommendations-overlay-item:active,.cld-video-player .vjs-recommendations-overlay .vjs-recommendations-overlay-item:hover{border:1px solid var(--color-accent)!important}.cld-video-player .vjs-menu-content .vjs-menu-item:active,.cld-video-player .vjs-menu-content .vjs-menu-item:focus,.cld-video-player .vjs-menu-content .vjs-menu-item:hover{background-color:color-mix(in srgb,var(--color-text) 20%,transparent);color:var(--color-text)}.cld-video-player.vjs-ad-playing .vjs-progress-control .vjs-play-progress{background:var(--color-base)}.cld-video-player.cld-plw-layout{background-color:var(--color-base)}.cld-video-player .cld-plw-item-info-wrap{color:var(--color-text)}.cld-video-player .cld-video-player-floater-close polygon{fill:var(--color-base)}.cld-video-player .cld-spbl-product-hotspot:after{background:var(--color-base);box-shadow:0 0 0 4px var(--color-accent),0 0 0 8px color-mix(in srgb,var(--color-text) 24%,transparent)}.cld-video-player .cld-spbl-product-tooltip{background:var(--color-text);color:var(--color-base)}.cld-video-player .base-color-semi-bg{background:color-mix(in srgb,var(--color-base) 70%,transparent)}.cld-video-player .text-color-semi-bg{background:color-mix(in srgb,var(--color-text) 70%,transparent)}.cld-video-player .text-color-text{color:var(--color-text)}.cld-video-player .base-color-text{color:var(--color-base)}.cld-video-player .accent-color-text{color:var(--color-accent)}.cld-video-player .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content,.cld-video-player.cld-video-player-skin-dark .base-color-bg,.cld-video-player.cld-video-player-skin-dark .vjs-big-play-button,.cld-video-player.cld-video-player-skin-dark .vjs-control-bar,.cld-video-player.cld-video-player-skin-dark .vjs-menu-button .vjs-menu-content{background-color:color-mix(in srgb,var(--color-base) 60%,transparent)}.cld-video-player .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-secondary div{background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 80%)}.cld-video-player .vjs-upcoming-video{border:1px solid color-mix(in srgb,var(--color-text) 50%,transparent)}.cld-video-player .vjs-context-menu-ui .vjs-menu-content,.cld-video-player .vjs-upcoming-video .vjs-upcoming-video-bar{background-color:color-mix(in srgb,var(--color-base) 60%,transparent)}.cld-video-player.cld-video-player-skin-light .base-color-bg,.cld-video-player.cld-video-player-skin-light .vjs-big-play-button,.cld-video-player.cld-video-player-skin-light .vjs-control-bar,.cld-video-player.cld-video-player-skin-light .vjs-menu-button .vjs-menu-content{background-color:color-mix(in srgb,var(--color-base) 80%,transparent)}.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-primary .vjs-recommendations-overlay-item-primary-content{background-color:var(--color-base)}.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-primary:active .vjs-recommendations-overlay-item-primary-content,.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-primary:hover .vjs-recommendations-overlay-item-primary-content,.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-secondary:active div,.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-secondary:hover div{background-color:color-mix(in srgb,var(--color-accent) 80%,transparent);color:var(--color-base)}.cld-video-player.cld-video-player-skin-light .vjs-recommendations-overlay .vjs-recommendations-overlay-item.vjs-recommendations-overlay-item-secondary div{background:var(--color-base)}.cld-video-player.cld-video-player-skin-light .vjs-upcoming-video{border:1px solid var(--color-text)}.cld-video-player.cld-video-player-skin-light .vjs-context-menu-ui .vjs-menu-content,.cld-video-player.cld-video-player-skin-light .vjs-upcoming-video .vjs-upcoming-video-bar{background-color:var(--color-base)}.cld-video-player.cld-video-player-skin-light .cld-plw-item-info-wrap{color:var(--color-text)}@media only screen and (max-width:768px){.cld-video-player.cld-video-player-skin-light.cld-plw-vertical .cld-plw-item-info-wrap{color:var(--color-accent)}}.ima-ad-container{height:100%;position:absolute;top:0;width:100%;z-index:1111}.hide-ad-container{z-index:-1}.video-js.vjs-playing .bumpable-ima-ad-container{margin-top:-4em}.video-js.vjs-user-inactive.vjs-playing .bumpable-ima-ad-container{margin-top:0}.video-js.vjs-paused .bumpable-ima-ad-container,.video-js.vjs-playing:hover .bumpable-ima-ad-container,.video-js.vjs-user-active.vjs-playing .bumpable-ima-ad-container{margin-top:-4em}.ima-controls-div{background-color:rgba(7,20,30,.7);background:-moz-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(7,20,30,.7)),color-stop(100%,rgba(7,20,30,0)));background:-webkit-linear-gradient(bottom,rgba(7,20,30,.7),rgba(7,20,30,0));background:-o-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:-ms-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:linear-gradient(0deg,rgba(7,20,30,.7) 0,rgba(7,20,30,0));bottom:0;display:none;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#0007141E",endColorstr="#07141E",GradientType=0);height:1.4em;opacity:1;overflow:hidden;position:absolute}.ima-controls-div.ima-controls-div-showing{height:3.7em}.ima-countdown-div{color:#fff;cursor:default;height:1em;text-shadow:0 0 .2em #000}.ima-seek-bar-div{background:hsla(0,0%,100%,.4);height:.3em;position:absolute;top:1.2em}.ima-progress-div{background-color:#ecc546;height:.3em;width:0}.ima-fullscreen-div,.ima-mute-div,.ima-play-pause-div,.ima-slider-div{color:#ccc;cursor:pointer;font-family:VideoJS;font-size:1.5em;height:1.33em;left:0;line-height:2;position:absolute;text-align:center;top:.733em;width:2.33em}.ima-mute-div{left:auto;right:5.667em}.ima-slider-div{background-color:#555;height:.667em;left:auto;right:2.33em;top:1.33em;width:3.33em}.ima-slider-level-div{background-color:#ecc546;height:.667em;width:100%}.ima-fullscreen-div{left:auto;right:0}.ima-playing:before{content:""}.ima-paused:before{content:""}.ima-paused:hover:before,.ima-playing:hover:before{text-shadow:0 0 1em #fff}.ima-non-muted:before{content:""}.ima-muted:before{content:""}.ima-muted:hover:before,.ima-non-muted:hover:before{text-shadow:0 0 1em #fff}.ima-non-fullscreen:before{content:""}.ima-fullscreen:before{content:""}.ima-fullscreen:hover:before,.ima-non-fullscreen:hover:before{text-shadow:0 0 1em #fff}.cld-video-player.vjs-user-active .interaction-areas-container{display:block}.cld-video-player.interaction-areas .vjs-big-play-button{display:none!important}.cld-video-player .interaction-areas-container{display:none;height:100%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%;z-index:1}.cld-video-player .interaction-areas-container:hover{display:block}.cld-video-player .interaction-areas-container .go-back-button,.cld-video-player .interaction-areas-container .vp-ia-item{cursor:pointer;position:absolute}.cld-video-player .interaction-areas-container .go-back-button{height:100%;left:0;top:0;width:100%}.cld-video-player .interaction-areas-container .vp-ia-item{align-items:center;display:inline-flex;justify-content:center;transition:top,left,width,height;transition-timing-function:linear}.cld-video-player .interaction-areas-container .vp-ia-item.theme-shadowed .vp-ia-marker-shadow{opacity:.24}.cld-video-player .interaction-areas-container .vp-ia-item.theme-pulsing .vp-ia-marker-shadow{-webkit-animation:pulsing-animation 1.3s ease-out;-webkit-animation-iteration-count:infinite;border:2px solid;opacity:0}.cld-video-player .interaction-areas-container .vp-ia-item:hover .vp-ia-marker-main:before{border:2px solid rgba(0,0,0,.25);content:"";height:20px;width:20px}.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker{height:20px;position:relative;width:20px}.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker .vp-ia-marker-main,.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker .vp-ia-marker-main:before,.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker .vp-ia-marker-shadow{border-radius:50%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker .vp-ia-marker-main{background-color:#fff;border:2px solid;height:100%;width:100%}.cld-video-player .interaction-areas-container .vp-ia-item .vp-ia-area-marker .vp-ia-marker-shadow{height:28px;width:28px}.cld-video-player .interaction-areas-container.vp-ia-layout-message{align-items:center;background-color:rgba(0,0,0,.5);display:flex;flex-direction:column;height:100%;justify-content:center;z-index:2}.cld-video-player .interaction-areas-container.vp-ia-layout-message.clickable{cursor:pointer}.cld-video-player .interaction-areas-container.vp-ia-layout-message.clickable:hover .vp-theme-button{background-color:rgba(255,255,254,.28)}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-ia-layout-icon{height:60px;margin-bottom:20px}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-ia-layout-message-title{font-size:24px;line-height:34px;text-align:center}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-theme-button{margin:8px 0 18px}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-ia-layout-message-do-not-show{align-items:center;display:flex}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-ia-layout-message-do-not-show>*{cursor:pointer}.cld-video-player .interaction-areas-container.vp-ia-layout-message .vp-ia-layout-message-do-not-show .vp-ia-layout-message-checkbox-title{margin:0 0 0 5px}@-webkit-keyframes pulsing-animation{0%{height:10px;opacity:0;width:10px}50%{height:20px;opacity:1;width:20px}to{height:40px;opacity:0;width:40px}}.vjs-upcoming-video{border:1px solid #e8e8e9;bottom:4.5em;max-width:30em;opacity:0;position:absolute;right:.75em;transition:bottom .1s,visibility .2s,opacity .2s;visibility:hidden;width:38.7%}.vjs-upcoming-video .upcoming-video-overlay{aspect-ratio:16/9;background-size:cover;cursor:pointer}.vjs-upcoming-video .upcoming-video-overlay .vjs-upcoming-video-bar{bottom:0;display:flex;flex:auto;height:3em;justify-content:space-between;line-height:3em;position:absolute;width:100%}.vjs-upcoming-video .upcoming-video-overlay .vjs-upcoming-video-bar .vjs-upcoming-video-title{display:block;flex:auto;max-width:80%;padding-left:1em;padding-right:1em;text-align:left;width:auto}.vjs-upcoming-video .upcoming-video-overlay .vjs-upcoming-video-bar .vjs-upcoming-video-title .vjs-upcoming-video-title-display{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vjs-upcoming-video .upcoming-video-overlay .vjs-upcoming-video-bar .vjs-upcoming-video-title .vjs-upcoming-video-title-display .vjs-upcoming-video-title-display-label{font-weight:400}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-upcoming-video{bottom:.7em;transition:bottom 1s,visibility .2s,opacity .2s}.vjs-upcoming-video.vjs-upcoming-video-show{opacity:1;transition:visibility .2s,opacity .2s;visibility:visible}.vjs-upcoming-video.disable-transition{transition:visibility 0s}@media only screen and (max-width:768px){.vjs-upcoming-video:before{display:none}.cld-video-player.cld-video-player-skin-dark .vjs-upcoming-video,.cld-video-player.cld-video-player-skin-light .vjs-upcoming-video{border:none}.vjs-upcoming-video .aspect-ratio-content{background-image:none!important}}.cld-video-player .vjs-playlist-button{display:none}.cld-video-player.vjs-playlist .vjs-playlist-button{display:block}.cld-plw-horizontal .cld-plw-col-list{padding-top:14.0625%;position:relative}.cld-plw-horizontal .cld-plw-panel{bottom:0;display:flex;flex-direction:row;left:0;overflow:auto;position:absolute;right:0;top:0}.cld-plw-horizontal .cld-plw-panel-item{background-image:none;max-width:25%;min-width:25%}.cld-plw-horizontal .cld-plw-panel-item:first-child{margin-left:0}.cld-plw-horizontal .cld-plw-panel-item:last-child{margin-right:0}.cld-plw-vertical{display:flex;flex-direction:row}.cld-plw-vertical.cld-plw-layout>div:first-child{flex:1}.cld-plw-vertical .cld-plw-col-list{display:flex;flex-direction:column;min-width:20%}.cld-plw-vertical .cld-plw-panel{height:100%;overflow:auto}.cld-plw-vertical .cld-plw-panel-item{height:25%}.cld-plw-vertical .cld-plw-panel-item:last-child{margin-bottom:0}.cld-plw-item-title-next{font-weight:700}.cld-plw-item-info-wrap{bottom:0;box-sizing:border-box;display:flex;flex-direction:row;justify-content:space-between;left:0;padding:5% 7%;position:absolute;transition:color .25s;width:100%}.cld-video-player-skin-dark .cld-plw-item-info-wrap{text-shadow:0 0 1px var(--color-base)}@media only screen and (max-width:768px){.cld-video-player-skin-dark .cld-plw-item-info-wrap{background:var(--color-base)}}.cld-plw-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cld-plw-item-duration{margin-left:10px}.cld-plw-layout.cld-plw-layout-fluid{width:100%}.cld-plw-layout.cld-plw-vertical{flex-direction:row}.cld-plw-layout.cld-plw-horizontal{flex-direction:column}.cld-plw-custom{padding:4px}.cld-plw-custom .cld-plw-panel-item{background:none!important;margin:4px 0}.cld-plw-custom .cld-plw-panel-item:first-child{margin-top:0}.cld-plw-custom .cld-plw-panel-item:last-child{margin-bottom:0}.cld-plw-custom .cld-plw-panel-item img{display:block;width:150px}.cld-plw-custom .cld-plw-panel-item .cld-plw-item-info-wrap{left:160px}.cld-plw-custom .cld-plw-panel-item .cld-plw-item-title-next{display:block}@media only screen and (max-width:768px){.cld-plw-layout.cld-plw-horizontal,.cld-plw-layout.cld-plw-horizontal .cld-plw-panel,.cld-plw-layout.cld-plw-vertical,.cld-plw-layout.cld-plw-vertical .cld-plw-panel{flex-direction:column}.cld-plw-layout.cld-plw-horizontal .cld-plw-col-list,.cld-plw-layout.cld-plw-vertical .cld-plw-col-list{height:inherit!important;max-height:340px;width:inherit!important}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item{background:none!important}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item img,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item img{display:block;height:84px;width:150px}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item .cld-plw-item-info-wrap,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item .cld-plw-item-info-wrap{left:150px;padding:15px 10px;right:0;top:0;width:auto}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item .cld-plw-item-title-curr,.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item .cld-plw-item-title-next,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item .cld-plw-item-title-curr,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item .cld-plw-item-title-next{display:block}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item .cld-plw-item-title,.cld-plw-layout.cld-plw-vertical .cld-plw-panel-item .cld-plw-item-title{white-space:normal}.cld-plw-layout.cld-plw-horizontal .cld-plw-col-list{overflow:auto;padding-top:0}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel{position:static}.cld-plw-layout.cld-plw-horizontal .cld-plw-panel-item{max-width:none}}.cld-thumbnail{background-position:50%;background-repeat:no-repeat;background-size:cover;display:block;font-size:1em;overflow:hidden;position:relative;text-align:left;width:100%}.cld-thumbnail .cld-thumbnail-img{display:none}.cld-thumbnail:before{background:linear-gradient(to top,var(--color-base),transparent 80%);bottom:0;content:"";left:0;max-height:60%;opacity:.9;position:absolute;right:0;top:40%}.cld-thumbnail.cld-plw-panel-item-active{border:1px solid var(--color-accent);box-shadow:0 0 3em -.5em var(--color-accent) inset;box-sizing:border-box}.cld-plw-panel-item:hover:after{background-color:var(--color-text);content:"";height:100%;left:0;opacity:.2;position:absolute;top:0;width:100%}@media only screen and (max-width:768px){.cld-thumbnail:before{background:none}}.cld-spbl-bar{overflow:hidden;pointer-events:none;z-index:1}.cld-spbl-bar,.cld-spbl-bar-inner{bottom:0;left:0;position:absolute;right:0;top:0}.cld-spbl-bar-inner{transform:translateX(20%);transition:transform .3s}.cld-video-player .vjs-control-bar{transition:width .3s}.shoppable-panel-visible .cld-spbl-bar-inner{transform:translateX(0)}.shoppable-panel-visible .vjs-control-bar{width:80%}.shoppable-panel-visible .cld-spbl-toggle-icon:before{content:""}.cld-spbl-banner-msg{font-size:2em;left:0;position:absolute;text-align:center;text-shadow:0 0 5px rgba(0,0,0,.5);top:calc(50% + 3em);width:100%}.cld-video-player.vjs-error .cld-spbl-banner-msg,.cld-video-player.vjs-has-started .cld-spbl-banner-msg{display:none}.cld-spbl-toggle{border-radius:6px 0 0 6px;cursor:pointer;font-size:24px;height:40px;line-height:40px;pointer-events:all;position:absolute;right:20%;text-align:center;top:3%;width:40px}.cld-spbl-toggle,.cld-spbl-toggle:hover{color:inherit;text-decoration:none}.cld-spbl-toggle:focus{outline:none}.cld-spbl-toggle-icon{animation-duration:1s;animation-fill-mode:both;display:block}.cld-spbl-toggle-icon.animate,.shoppable-panel-hidden .cld-spbl-toggle-icon:hover{animation-iteration-count:infinite;animation-name:tada}.cld-spbl-toggle-icon.cld-spbl-toggle-custom-icon{background-position:50%;background-repeat:no-repeat;background-size:75%;bottom:0;left:0;position:absolute;right:0;top:0}.shoppable-panel-hidden .cld-spbl-toggle-icon.cld-spbl-toggle-custom-icon:before{display:none}.shoppable-panel-visible .cld-spbl-toggle-icon.cld-spbl-toggle-custom-icon{background-image:none!important}.cld-spbl-panel{bottom:0;overflow:auto;pointer-events:all;position:absolute;right:0;top:0;width:20%;-ms-overflow-style:none;scrollbar-width:none}.cld-spbl-panel::-webkit-scrollbar{display:none}.cld-spbl-item{color:inherit;display:block;margin:12px 8px;position:relative;transform:scale(.98);transition:transform .3s}.cld-spbl-bar[size=md] .cld-spbl-item{font-size:10px}.cld-spbl-bar[size=sm] .cld-spbl-item{font-size:8px}.cld-spbl-item:after,.cld-spbl-item:before{border-radius:3px;bottom:0;box-shadow:0 0 0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;transition:box-shadow .3s;z-index:0}.cld-spbl-item.active{transform:scale(1)}.cld-spbl-item.active:before{box-shadow:0 0 0 4px;opacity:.5}.cld-spbl-item.active:after{box-shadow:0 0 0 2px}.cld-spbl-item:hover{color:inherit}.cld-spbl-img{height:auto;max-width:100%}.cld-spbl-hover-img{display:none}.cld-spbl-item-info{max-height:100%;overflow:hidden;padding:6%}.cld-spbl-item-info,.cld-spbl-overlay{bottom:0;left:0;position:absolute;right:0}.cld-spbl-overlay{display:inline-flex;font-size:120%;line-height:1.3;opacity:0;padding:10%;text-align:center;top:0;z-index:1}.cld-spbl-overlay .cld-spbl-overlay-text{margin:auto}.cld-spbl-item:hover .cld-spbl-overlay{opacity:1}.cld-spbl-item:hover .cld-spbl-overlay~.cld-spbl-item-info{display:none}.cld-spbl-item:hover .cld-spbl-hover-img{display:block}.cld-spbl-item:hover .cld-spbl-hover-img+.cld-spbl-img{display:none}.cld-spbl-post-play .cld-spbl-post-play-bg{background-size:cover;bottom:0;left:0;position:absolute;right:0;top:0}.cld-spbl-post-play .cld-spbl-post-title{font-size:1.5em;left:0;position:absolute;text-align:center;text-shadow:0 0 5px rgba(0,0,0,.5);top:.8em;width:100%}.cld-spbl-post-play .cld-spbl-panel{background:none!important;cursor:grab;height:60%;padding:10px 8px;top:16%;white-space:nowrap;width:100%}.cld-spbl-post-play .cld-spbl-panel:active{cursor:grabbing}.cld-spbl-post-play .cld-spbl-item{border-radius:10px;box-shadow:0 4px 6px 1.2px rgba(0,0,0,.24),0 6px 8px 4px rgba(0,0,0,.24);display:inline-block;margin:0 8px;overflow:hidden;padding-top:28%;transform:none;vertical-align:top;white-space:normal;width:28%}.cld-spbl-post-play .cld-spbl-img{bottom:0;left:0;margin:0 auto auto;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.cld-spbl-post-play .cld-spbl-replay-btn{border-radius:5px;bottom:10%;font-family:inherit;left:5%;padding:8px 15px;position:absolute}.cld-spbl-post-play .cld-spbl-replay-btn:before{font-family:VideoJS;margin-right:4px;vertical-align:bottom}.cld-spbl-post-modal .cld-spbl-bar,.cld-spbl-post-modal .vjs-big-play-button,.cld-spbl-post-modal .vjs-recommendations-overlay{display:none}@keyframes tada{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{transform:scaleX(1)}}.shoppable-products-overlay .vjs-big-play-button,.shoppable-products-overlay .vjs-title-bar{display:none!important}.cld-spbl-products-overlay{position:absolute;top:50%;transform:translateY(-50%);width:100%}.cld-spbl-product-hotspot{cursor:pointer;padding:15px;pointer-events:all;position:absolute}.cld-spbl-product-hotspot:after{background:#fff;border-radius:18px;box-shadow:0 0 0 4px #0078ff,0 0 0 8px rgba(0,120,255,.24);content:"";display:block;height:8px;width:8px}.cld-spbl-product-hotspot:hover .cld-spbl-product-tooltip{display:block}.cld-spbl-product-tooltip{border-radius:4px;display:none;left:50%;padding:4px 6px;position:absolute;top:100%;transform:translateX(-50%);white-space:nowrap}.cld-spbl-product-tooltip.cld-spbl-product-tooltip-top{bottom:100%;top:auto}.cld-spbl-product-tooltip.cld-spbl-product-tooltip-left{left:auto;right:100%;top:50%;transform:translateY(-50%)}.cld-spbl-product-tooltip.cld-spbl-product-tooltip-right{left:100%;top:50%;transform:translateY(-50%)}.vjs-visual-search .vjs-visual-search-wrapper{align-items:center;background-color:transparent;border-radius:1.5em;display:flex;margin-left:auto;overflow:hidden;pointer-events:auto;position:absolute;right:1.5em;top:1.5em;transition:all .3s ease}.vjs-visual-search .vjs-visual-search-wrapper.vjs-visual-search-active{backdrop-filter:blur(10px);background-color:color-mix(in srgb,var(--color-base) 60%,transparent)}.vjs-visual-search .vjs-visual-search-wrapper.vjs-visual-search-active .vjs-visual-search-form{margin-right:.25em;opacity:1;width:13.75em}.vjs-visual-search .vjs-visual-search-wrapper.vjs-visual-search-active .vjs-visual-search-button{background-color:transparent;text-shadow:none}.vjs-visual-search .vjs-visual-search-wrapper.vjs-visual-search-active .vjs-visual-search-button:hover{text-shadow:0 0 .5em var(--color-accent)}.vjs-visual-search .vjs-visual-search-wrapper:hover:not(.vjs-visual-search-active) .vjs-visual-search-button{background-color:color-mix(in srgb,var(--color-base) 25%,transparent)}.vjs-visual-search .vjs-visual-search-wrapper+.vjs-title-bar-title{padding-right:2em}.vjs-visual-search .vjs-visual-search-button{background:transparent;border:none;border-radius:50%;color:var(--color-text);cursor:pointer;flex-shrink:0;height:2.75em;opacity:.9;padding:.1em;text-shadow:0 0 1em var(--color-base);transition:all .25s ease;width:2.75em;z-index:2}.vjs-visual-search .vjs-visual-search-button:hover{opacity:1}.vjs-visual-search .vjs-visual-search-button>span:before{font-size:1.8em}.vjs-visual-search .vjs-visual-search-button .vjs-loading-spinner{border-width:.4em;display:none;height:2.15em;left:.3em;position:absolute;top:.3em;transform:none;width:2.15em}.vjs-visual-search .vjs-visual-search-button.vjs-waiting>.vjs-icon-search{display:none}.vjs-visual-search .vjs-visual-search-button.vjs-waiting>.vjs-loading-spinner{display:flex}.vjs-visual-search .vjs-visual-search-form{align-items:center;display:flex;opacity:0;overflow:hidden;transition:all .3s ease;width:0}.vjs-visual-search .vjs-visual-search-input{background:transparent;border:none;color:var(--color-text);font-size:.938em;height:2.25em;outline:none;padding:0;width:100%}.vjs-visual-search .vjs-visual-search-input::placeholder{color:color-mix(in srgb,#fff 70%,transparent)}.vjs-visual-search .vjs-visual-search-close{background:transparent;border:none;color:var(--color-text);cursor:pointer;flex-shrink:0;height:2em;opacity:.7;padding:.25em;text-shadow:0 0 .25em var(--color-base);transition:opacity .2s ease;width:2em}.vjs-visual-search .vjs-visual-search-close:hover{opacity:1}.vjs-visual-search .vjs-visual-search-close .vjs-icon-close:before{font-size:1em}.vjs-visual-search .vjs-visual-search-results-wrapper{background:linear-gradient(to right,color-mix(in srgb,var(--color-accent) 15%,transparent),color-mix(in srgb,var(--color-accent) 15%,transparent)),linear-gradient(to right,color-mix(in srgb,var(--color-base) 20%,transparent),color-mix(in srgb,var(--color-base) 20%,transparent));bottom:100%;height:.75em;left:0;position:absolute;width:100%;z-index:1}.vjs-visual-search .vjs-visual-search-marker{background-color:var(--color-accent);cursor:pointer;height:100%;opacity:.7;pointer-events:auto;position:absolute;transition:opacity .2s ease}.vjs-visual-search .vjs-visual-search-marker:hover{opacity:.8}.vjs-visual-search .vjs-visual-search-marker:focus{box-shadow:inset 0 0 0 .1em color-mix(in srgb,var(--color-text) 50%,transparent)}.vjs-visual-search-results-active .vjs-mouse-display{translate:0 -.75em}@keyframes vjs-visual-search-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vjs-share-download-button{position:relative}.vjs-share-download-button>.vjs-loading-spinner{border-width:.2em;display:none;height:1.4em;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:1.4em}.vjs-share-download-button.vjs-waiting>.vjs-icon-file-download{display:none}.vjs-share-download-button.vjs-waiting>.vjs-loading-spinner{display:flex}
|