{"version":3,"file":"kendo.mediaplayer.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendomediaplayer","js","this","$","undefined$1","kendo","window","END","PAUSE","PLAY","READY","TIMECHANGE","VOLUMECHANGE","FULLSCREEN_ENTER","FULLSCREEN_EXIT","MUTE","LOW_VOLUME","HIGH_VOLUME","VIDEO_QUALITY","STATE_PLAY","STATE_PAUSE","TITLEBAR","TOOLBAR","SLIDER","VOLUME_SLIDER","MEDIA","OVERLAY","YTPLAYER","DOT","STATE_PLAY_SELECTOR","FULLSCREEN_ENTER_SELECTOR","FULLSCREEN_EXIT_SELECTOR","MUTE_SELECTOR","LOW_VOLUME_SELECTOR","HIGH_VOLUME_SELECTOR","ui","ns","baseTime","Date","timeZoneSec","getTimezoneOffset","Widget","isArray","Array","timeFormats","template","keys","templates","htmlPlayer","titleBar","toolBar","youtubePlayer","toolBarTime","slider","volumeSlider","qualityDropDown","toolTip","value","toString","MediaPlayer","extend","init","element","options","wrapper","fn","call","addClass","_currentIndex","_createTitlebar","_createToolbar","_createDropDown","_createSlider","_createVolumeSlider","_timers","_aria","_navigatable","fullScreen","media","notify","events","name","autoPlay","autoRepeat","volume","mute","navigatable","forwardSeek","messages","pause","play","unmute","quality","fullscreen","_msToTime","ms","time","getTime","setSeconds","_timeToSec","_titleBar","find","length","append","sliderElement","_slider","_sliderDragChangeHandler","_sliderDragChange","bind","_sliderDraggingHandler","_sliderDragging","Slider","smallStep","tickPlacement","showButtons","change","slide","tooltip","dragHandleTitle","volumeSliderElement","_volumeSlider","_volumeDraggingHandler","_volumeDragging","_volumeChangeHandler","_volumeChange","width","min","max","enabled","_resetTime","_youTubeVideo","_ytmedia","seekTo","_media","currentTime","_mediaTimeUpdate","grep","_toolBar","items","e","_currentUrl","source","url","_isYouTubeUrl","match","_setPlayerUrl","oldPlayer","stop","toggle","initialized","_initializePlayer","_videoOverlay","hide","loadVideoById","_getMediaId","_playStateToggle","cueVideoById","show","remove","attr","toolBarElement","_toolbarClickHandler","_toolbarClick","ToolBar","click","resizable","type","attributes","class","icon","fillMode","off","before","_volumeButton","_fullscreenButton","_currentTimeElement","_durationElement","_playButton","_playButtonSpan","support","cssFlexbox","wrapAll","hdIcon","dropDownElement","data","_dropDownSelectHandler","_dropDownSelect","_dropDown","DropDownList","dataTextField","dataValueField","popup","position","origin","appendTo","animation","open","effects","duration","select","setDataSource","replaceWith","list","item","index","target","children","first","isPaused","is","_isInFullScreen","muted","_isDragging","that","sender","tzOffset","_sliderChangeFired","_seekBarLastPosition","setTimeout","trigger","_preventPlay","_changeVolumeButtonImage","volumeButton","volumeElement","getCurrentTime","timeInMs","text","_timeFormat","isPlaying","_mediaEnded","_mediaPlay","_mediaReady","_mediaDurationChange","durationTime","getDuration","getHours","setOptions","_isFirstRun","_createYoutubePlayer","_mediaTimeUpdateHandler","_mediaDurationChangeHandler","prepend","_ytPlayer","css","height","YT","Player","_configurePlayer","onYouTubeIframeAPIReadyRegister","getScript","onYouTubeIframeAPIReady","i","_youtubeApiReady","_poll","callback","interval","context","clearTimeout","callLater","vars","autoplay","wmode","controls","rel","showinfo","_onYouTubePlayerReady","onYouTubePlayerReady","_onPlayerStateChangeHandler","_onPlayerStateChange","onPlayerStateChange","videoId","playerVars","onReady","onStateChange","event","getIframe","style","_updateTitle","titlebar","title","_paused","setVolume","_uiDisplay","result","_mouseClick","_mouseMoveHandler","_mouseMove","_mouseInHandler","_mouseIn","_mouseOutHandler","_mouseOut","on","_createHtmlPlayer","_mouseClickHanlder","_mediaEndedHandler","_mediaCanPlayHandler","_mediaPlayHandler","after","ontimeupdate","ondurationchange","oncanplay","onplay","onended","loop","_mouseIdle","state","animationSpeed","uiElements","add","parent","fadeIn","fadeOut","destroy","_keyDownHandler","_fullscreenHandler","_youtubeApiReadyHandler","src","_mouseMoveTimer","seek","seconds","playVideo","mobileOS","stopVideo","pauseVideo","toolbar","dropdown","enterFullScreen","get","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","document","cancelFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msCancelFullscreen","exitFullscreen","msExitFullscreen","removeClass","resize","_volume","currentState","isMuted","unMute","getVolume","isEnded","getPlayerState","ended","_mediaData","_fullscreen","_keyDown","isFullScreen","mozFullScreen","webkitIsFullScreen","fullscreenSpan","preventDefault","fsButton","keyCode","SPACEBAR","ENTER","ESC","_error","_progress","plugin","jQuery"],"sources":["kendo.mediaplayer.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.slider.js'), require('kendo.toolbar.js'), require('kendo.dropdownlist.js'), require('kendo.tooltip.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.slider', 'kendo.toolbar', 'kendo.dropdownlist', 'kendo.tooltip', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendomediaplayer = global.kendomediaplayer || {}, global.kendomediaplayer.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"mediaplayer\",\n name: \"MediaPlayer\",\n category: \"web\",\n description: \"\",\n depends: [\"slider\", \"toolbar\", \"dropdownlist\", \"tooltip\", \"icons\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n END = \"end\",\n PAUSE = \"pause\",\n PLAY = \"play\",\n READY = \"ready\",\n TIMECHANGE = \"timeChange\",\n VOLUMECHANGE = \"volumeChange\",\n FULLSCREEN_ENTER = \"fullscreen\",\n FULLSCREEN_EXIT = \"fullscreen-exit\",\n MUTE = \"volume-mute\",\n LOW_VOLUME = \"volume-down\",\n HIGH_VOLUME = \"volume-up\",\n VIDEO_QUALITY = \"k-mediaplayer-quality\",\n STATE_PLAY = \"play\",\n STATE_PAUSE = \"pause\",\n TITLEBAR = \"k-mediaplayer-titlebar\",\n TITLE = \"k-title\",\n TOOLBARWRAP = \"k-mediaplayer-toolbar-wrap\",\n TOOLBAR = \"k-mediaplayer-toolbar\",\n SLIDER = \"k-mediaplayer-seekbar\",\n VOLUME_SLIDER = \"k-mediaplayer-volume\",\n MEDIA = \"k-mediaplayer-media\",\n OVERLAY = \"k-mediaplayer-overlay\",\n YTPLAYER = \"k-mediaplayer-yt\",\n DOT = \".\",\n STATE_PLAY_SELECTOR = 'span[class*=\"i-' + STATE_PLAY + '\"]',\n STATE_PAUSE_SELECTOR = 'span[class*=\"i-' + STATE_PAUSE + '\"]',\n FULLSCREEN_ENTER_SELECTOR = 'span[class*=\"i-' + FULLSCREEN_ENTER + '\"]',\n FULLSCREEN_EXIT_SELECTOR = 'span[class*=\"i-' + FULLSCREEN_EXIT + '\"]',\n MUTE_SELECTOR = 'span[class*=\"i-' + MUTE + '\"]',\n LOW_VOLUME_SELECTOR = 'span[class*=\"i-' + LOW_VOLUME + '\"]',\n HIGH_VOLUME_SELECTOR = 'span[class*=\"i-' + HIGH_VOLUME + '\"]',\n ui = kendo.ui,\n ns = \".kendoMediaPlayer\",\n baseTime = new Date(1970, 0, 1),\n timeZoneSec = baseTime.getTimezoneOffset() * 60,\n Widget = kendo.ui.Widget,\n isArray = Array.isArray,\n timeFormats = {\n shortTime: \"mm:ss\",\n longTime: \"HH:mm:ss\"\n },\n template = kendo.template,\n keys = kendo.keys,\n templates = {\n htmlPlayer: () => \"\",\n titleBar: template(() => \"
Video Title
\"),\n toolBar: () => \"
\",\n youtubePlayer: () => \"
\",\n toolBarTime: () => \"00:00:00 / 00:00:00\",\n slider: () => \"\",\n volumeSlider: () => \"\",\n qualityDropDown: () => \"\",\n toolTip: ({ value }) => `${kendo.toString(new Date(value), 'HH:mm:ss')}`\n };\n\n var MediaPlayer = Widget.extend({\n init: function(element, options) {\n this.wrapper = $(element);\n\n Widget.fn.init.call(this, element, options);\n\n this.wrapper.addClass(\"k-mediaplayer k-widget\");\n\n options = this.options;\n\n this._currentIndex = 0;\n\n this._createTitlebar();\n\n this._createToolbar();\n\n this._createDropDown();\n\n this._createSlider();\n\n this._createVolumeSlider();\n\n this._timers = {};\n\n this._aria();\n\n this._navigatable();\n\n if (options.fullScreen) {\n this.fullScreen(true);\n }\n\n if (options.media) {\n this.media(this.options.media);\n }\n\n kendo.notify(this);\n },\n\n events: [\n END,\n PAUSE,\n PLAY,\n READY,\n TIMECHANGE,\n VOLUMECHANGE\n ],\n\n options: {\n name: \"MediaPlayer\",\n autoPlay: false,\n autoRepeat: false,\n volume: 100,\n fullScreen: false,\n mute: false,\n navigatable: false,\n forwardSeek: true,\n media: null,\n messages: {\n \"pause\": \"Pause\",\n \"play\": \"Play\",\n \"mute\": \"Mute\",\n \"unmute\": \"Unmute\",\n \"quality\": \"Quality\",\n \"fullscreen\": \"Full Screen\"\n }\n },\n\n _msToTime: function(ms) {\n var time = new Date(baseTime.getTime());\n time.setSeconds(ms);\n return time;\n },\n\n _timeToSec: function(time) {\n var curTime = new Date(time).getTime();\n return curTime / 1000;\n },\n\n _createTitlebar: function() {\n this._titleBar = this.wrapper.find(DOT + TITLEBAR);\n if (this._titleBar.length === 0) {\n this.wrapper.append(templates.titleBar);\n this._titleBar = this.wrapper.find(DOT + TITLEBAR);\n }\n },\n\n _createSlider: function() {\n var sliderElement = this.wrapper.find(DOT + SLIDER);\n if (!this._slider) {\n this._sliderDragChangeHandler = this._sliderDragChange.bind(this);\n this._sliderDraggingHandler = this._sliderDragging.bind(this);\n sliderElement = this.wrapper.find(DOT + SLIDER);\n\n this._slider = new ui.Slider(sliderElement[0], {\n smallStep: 1000,\n tickPlacement: \"none\",\n showButtons: false,\n change: this._sliderDragChangeHandler,\n slide: this._sliderDraggingHandler,\n tooltip: {\n template: templates.toolTip\n },\n dragHandleTitle: this.options.messages.time\n });\n }\n },\n\n _createVolumeSlider: function() {\n var volumeSliderElement = this.wrapper.find(DOT + VOLUME_SLIDER);\n if (!this._volumeSlider) {\n this._volumeDraggingHandler = this._volumeDragging.bind(this);\n this._volumeChangeHandler = this._volumeChange.bind(this);\n volumeSliderElement.width(87);\n this._volumeSlider = new ui.Slider(volumeSliderElement[0], {\n smallStep: 1,\n min: 0,\n max: 100,\n value: this.options.volume,\n slide: this._volumeDraggingHandler,\n change: this._volumeChangeHandler,\n tickPlacement: \"none\",\n showButtons: false,\n tooltip: { enabled: false },\n dragHandleTitle: this.options.messages.volume\n });\n }\n },\n\n _resetTime: function() {\n if (this._youTubeVideo) {\n this._ytmedia.seekTo(0, true);\n } else {\n this._media.currentTime = 0;\n }\n\n this._mediaTimeUpdate();\n $.grep(this._toolBar.options.items, function(e) { return !!e.template; }).template = templates.toolBarTime;\n },\n\n _currentUrl: function() {\n var media = this.media();\n return isArray(media.source) ? media.source[this._currentIndex].url : media.source;\n },\n\n _isYouTubeUrl: function() {\n return !!this._currentUrl().match(\"youtube.com/|youtu.be/\");\n },\n\n _setPlayerUrl: function() {\n var oldPlayer = this._youTubeVideo;\n this.stop();\n\n this._youTubeVideo = this._isYouTubeUrl();\n\n if (oldPlayer !== this._youTubeVideo) {\n this.wrapper.find(DOT + YTPLAYER).toggle();\n this.wrapper.find(DOT + MEDIA).toggle();\n }\n\n var initialized = this._media || this._ytmedia;\n\n this._initializePlayer();\n\n if (initialized) { //mute and volume settings should be persisted when switching between html and youtube players\n this.mute(this.mute());\n this.volume(this.volume());\n }\n\n if (!this._youTubeVideo) {\n this._videoOverlay.show();\n this.wrapper.find(DOT + MEDIA + \" > source\").remove();\n this.wrapper.find(DOT + MEDIA).attr(\"src\", this._currentUrl());\n\n if (this.options.autoPlay) {\n this.play();\n }\n }\n else if (this._ytmedia) {\n if (this._videoOverlay) {\n this._videoOverlay.hide();\n }\n if (this.options.autoPlay) {\n this._ytmedia.loadVideoById(this._getMediaId());\n this._playStateToggle(true);\n }\n else {\n this._ytmedia.cueVideoById(this._getMediaId());\n this._playStateToggle(true);\n }\n }\n },\n\n _createToolbar: function() {\n var toolBarElement = this.wrapper.find(DOT + TOOLBAR);\n if (toolBarElement.length === 0) {\n this._toolbarClickHandler = this._toolbarClick.bind(this);\n this.wrapper.append(templates.toolBar);\n toolBarElement = this.wrapper.find(DOT + TOOLBAR);\n toolBarElement.width(this.wrapper.find(DOT + MEDIA).width());\n this._toolBar = new ui.ToolBar(toolBarElement, {\n click: this._toolbarClickHandler,\n resizable: false,\n items: [\n {\n type: \"button\",\n attributes: { \"class\": \"k-play-button\" },\n icon: \"play\",\n fillMode: \"flat\"\n },\n {\n template: templates.toolBarTime,\n attributes: { \"class\": \"k-mediaplayer-currenttime-wrap\" }\n },\n {\n type: \"spacer\"\n },\n {\n type: \"button\",\n attributes: { \"class\": \"k-volume-button\" },\n icon: \"volume-up\",\n fillMode: \"flat\"\n },\n {\n template: templates.volumeSlider,\n attributes: { \"class\": \"k-mediaplayer-volume-wrap\" }\n },\n {\n template: templates.qualityDropDown,\n attributes: { \"class\": \"k-mediaplayer-quality-wrap\" }\n },\n {\n type: \"button\",\n attributes: { \"class\": \"k-fullscreen-button\" },\n icon: \"fullscreen\",\n fillMode: \"flat\"\n }\n ]\n });\n\n this._toolBar.wrapper.off(\"keydown\");\n toolBarElement.before(templates.slider);\n\n this._volumeButton = toolBarElement.find(\".k-volume-button\");\n this._fullscreenButton = toolBarElement.find(\".k-fullscreen-button\");\n this._volumeButton.attr(\"title\", this.options.mute ? this.options.messages.unmute : this.options.messages.mute);\n this._volumeButton.attr(\"aria-label\", this.options.mute ? this.options.messages.unmute : this.options.messages.mute);\n this._fullscreenButton.attr(\"title\", this.options.messages.fullscreen);\n this._fullscreenButton.attr(\"aria-label\", this.options.messages.fullscreen);\n\n toolBarElement.width(\"auto\");\n this._currentTimeElement = toolBarElement.find(\".k-mediaplayer-currenttime\");\n this._durationElement = toolBarElement.find(\".k-mediaplayer-duration\");\n this._playButton = toolBarElement.find(\".k-play-button\");\n this._playButtonSpan = this._playButton.find(STATE_PLAY_SELECTOR);\n\n if (this.options.autoPlay) {\n this._playStateToggle(true);\n }\n\n if ( kendo.support.cssFlexbox === false ) {\n $([\n this._volumeButton[0],\n toolBarElement.find(\".k-mediaplayer-volume-wrap\")[0],\n toolBarElement.find(\".k-mediaplayer-quality-wrap\")[0],\n this._fullscreenButton[0]\n ]).wrapAll(\"
\");\n }\n }\n },\n\n _createDropDown: function() {\n var hdIcon = kendo.ui.icon(\"hd\");\n var dropDownElement = this.wrapper.find(DOT + VIDEO_QUALITY);\n var media = this.media();\n if (typeof dropDownElement.data(\"kendoDropDownList\") === \"undefined\") {\n this._dropDownSelectHandler = this._dropDownSelect.bind(this);\n this._dropDown = new ui.DropDownList(dropDownElement, {\n dataTextField: \"quality\",\n dataValueField: \"url\",\n popup: {\n position: \"bottom\",\n origin: \"top\",\n appendTo: this.wrapper\n },\n animation: {\n open: {\n effects: \"slideIn:up\",\n duration: 1\n }\n },\n select: this._dropDownSelectHandler\n });\n\n if (media && isArray(media.source)) {\n this._dropDown.setDataSource(media.source);\n this._dropDown.select(0);\n }\n\n this._dropDown.wrapper.addClass(\"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base\");\n this._dropDown.wrapper.attr(\"title\", this.options.messages.quality).hide();\n this._dropDown.wrapper.find('span[class*=\"i-caret-alt-down\"]')\n .replaceWith(hdIcon);\n this._dropDown.list.addClass(\"k-quality-list\");\n }\n },\n\n _dropDownSelect: function(e) {\n if (this._currentIndex !== e.item.index()) {\n this._currentIndex = e.item.index();\n this._setPlayerUrl();\n }\n },\n\n _toolbarClick: function(e) {\n var target = $(e.target).children().first();\n var isPaused = target.is(STATE_PLAY_SELECTOR);\n\n if (!this.media()) {\n return;\n }\n\n if (target.is(STATE_PLAY_SELECTOR) || target.is(STATE_PAUSE_SELECTOR)) {\n if (isPaused) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n\n if (target.is(FULLSCREEN_ENTER_SELECTOR) || target.is(FULLSCREEN_EXIT_SELECTOR)) {\n if (this._isInFullScreen) {\n kendo.ui.icon(target, { icon: FULLSCREEN_ENTER });\n this.fullScreen(false);\n } else {\n kendo.ui.icon(target, { icon: FULLSCREEN_EXIT });\n this.fullScreen(true);\n }\n }\n\n if (target.is(MUTE_SELECTOR) || target.is(LOW_VOLUME_SELECTOR) || target.is(HIGH_VOLUME_SELECTOR)) {\n var muted = this.mute();\n this.mute(!muted);\n }\n },\n\n _sliderDragging: function() {\n if (!this.media()) {\n return;\n }\n\n this._isDragging = true;\n },\n\n _sliderDragChange: function(e) {\n var that = this;\n var slider = e.sender;\n var tzOffset = timeZoneSec * 1000;\n\n if (!this.media()) {\n return;\n }\n\n that._sliderChangeFired = true;\n that._isDragging = false;\n\n if (!this.options.forwardSeek && slider.value() > this._seekBarLastPosition) {\n setTimeout(function() {\n slider.value(that._seekBarLastPosition);\n }, 1);\n } else if (this._youTubeVideo) {\n that._ytmedia.seekTo(that._timeToSec(e.value - tzOffset));\n } else {\n that._media.currentTime = that._timeToSec(e.value - tzOffset);\n }\n that.trigger(TIMECHANGE);\n that._preventPlay = true;\n },\n\n _changeVolumeButtonImage: function(volume) {\n var volumeButton = this._volumeButton;\n var volumeElement = volumeButton.find(\"span\");\n\n if (volume === 0) {\n kendo.ui.icon(volumeElement, { icon: MUTE });\n volumeButton.attr(\"title\", this.options.messages.unmute);\n volumeButton.attr(\"aria-label\", this.options.messages.unmute);\n } else if (volume > 0 && volume < 51) {\n kendo.ui.icon(volumeElement, { icon: LOW_VOLUME });\n volumeButton.attr(\"title\", this.options.messages.mute);\n volumeButton.attr(\"aria-label\", this.options.messages.mute);\n } else {\n kendo.ui.icon(volumeElement, { icon: HIGH_VOLUME });\n volumeButton.attr(\"title\", this.options.messages.mute);\n volumeButton.attr(\"aria-label\", this.options.messages.mute);\n }\n },\n\n _volumeDragging: function(e) {\n if (!this.media()) {\n return;\n }\n this.volume(e.value);\n this._changeVolumeButtonImage(e.value);\n this.trigger(VOLUMECHANGE);\n },\n\n _volumeChange: function(e) {\n if (!this.media()) {\n return;\n }\n this.volume(e.value);\n this._changeVolumeButtonImage(e.value);\n this.trigger(VOLUMECHANGE);\n },\n\n _mediaTimeUpdate: function() {\n var currentTime = (this._youTubeVideo) ? this._ytmedia.getCurrentTime() : this._media.currentTime;\n currentTime = currentTime ? currentTime : 0;\n var timeInMs = this._msToTime(currentTime);\n this._currentTimeElement.text(kendo.toString(timeInMs, this._timeFormat));\n if (!this._isDragging) {\n this._seekBarLastPosition = (currentTime + timeZoneSec) * 1000;\n this._slider.value(this._seekBarLastPosition);\n }\n\n return this.isPlaying();\n },\n\n _playStateToggle: function(play) {\n if (typeof play === \"undefined\") {\n play = this._playButtonSpan.is(STATE_PLAY_SELECTOR);\n }\n\n if (play) {\n kendo.ui.icon(this._playButtonSpan, { icon: STATE_PAUSE });\n this._playButton.attr(\"title\", this.options.messages.pause);\n this._playButton.attr(\"aria-label\", this.options.messages.pause);\n }\n else {\n kendo.ui.icon(this._playButtonSpan, { icon: STATE_PLAY });\n this._playButton.attr(\"title\", this.options.messages.play);\n this._playButton.attr(\"aria-label\", this.options.messages.play);\n }\n },\n\n _mediaEnded: function() {\n this._playStateToggle(false);\n this._currentTimeElement.text(kendo.toString(this._msToTime(0), this._timeFormat));\n this._slider.value((0 + timeZoneSec) * 1000);\n this.trigger(END);\n },\n\n _mediaPlay: function() {\n this.trigger(PLAY);\n },\n\n _mediaReady: function() {\n this.trigger(READY);\n },\n\n _mediaDurationChange: function() {\n var durationTime = this._msToTime((this._youTubeVideo) ? this._ytmedia.getDuration() : this._media.duration);\n\n this._timeFormat = durationTime.getHours() === 0 ? timeFormats.shortTime : timeFormats.longTime;\n\n this._durationElement.text(kendo.toString(durationTime, this._timeFormat));\n this._slider.setOptions({\n min: baseTime.getTime(),\n max: durationTime.getTime()\n });\n\n if (!this._isFirstRun) {\n this._resetTime();\n this._isFirstRun = true;\n }\n },\n\n _createYoutubePlayer: function() {\n this._mediaTimeUpdateHandler = this._mediaTimeUpdate.bind(this);\n this._mediaDurationChangeHandler = this._mediaDurationChange.bind(this);\n\n this.wrapper.prepend(templates.youtubePlayer);\n this._ytPlayer = this.wrapper.find(DOT + YTPLAYER)[0];\n $(this._ytPlayer)\n .css({\n width: this.wrapper.width(),\n height: this.wrapper.height()\n });\n\n if (!window.YT || !window.YT.Player) {\n if (!window.onYouTubeIframeAPIReadyRegister) {\n window.onYouTubeIframeAPIReadyRegister = [];\n $.getScript(\"https://www.youtube.com/iframe_api\");\n window.onYouTubeIframeAPIReady =\n function() {\n if (window.onYouTubeIframeAPIReadyRegister) {\n for (var i = 0; i < window.onYouTubeIframeAPIReadyRegister.length; i++) {\n window.onYouTubeIframeAPIReadyRegister[i]._youtubeApiReady();\n }\n }\n window.onYouTubeIframeAPIReadyRegister.length = 0;\n window.onYouTubeIframeAPIReadyRegister = undefined$1;\n };\n }\n window.onYouTubeIframeAPIReadyRegister[window.onYouTubeIframeAPIReadyRegister.length] = this;\n }\n else {\n this._configurePlayer();\n }\n },\n\n _poll: function(name, callback, interval, context) {\n var that = this;\n\n if (that._timers[name] !== null) {\n clearTimeout(that._timers[name]);\n }\n\n that._timers[name] = setTimeout((function(context) {\n return function callLater() {\n if (callback.call(context)) {\n that._timers[name] = setTimeout(callLater, interval);\n }\n };\n })(context), interval);\n\n return that._timers[name];\n },\n\n _youtubeApiReady: function() {\n this._configurePlayer();\n },\n\n _configurePlayer: function() {\n var vars = {\n 'autoplay': +this.options.autoPlay,\n 'wmode': 'transparent',\n 'controls': 0,\n 'rel': 0,\n 'showinfo': 0\n };\n\n this._onYouTubePlayerReady = this._onYouTubePlayerReady.bind(this);\n window.onYouTubePlayerReady = this._onYouTubePlayerReady;\n this._onPlayerStateChangeHandler = this._onPlayerStateChange.bind(this);\n window.onPlayerStateChange = this._onPlayerStateChange;\n\n\n var player = new window.YT.Player(this.wrapper.find(DOT + YTPLAYER)[0], {\n height: this.wrapper.height(),\n width: this.wrapper.width(),\n videoId: this._getMediaId(),\n playerVars: vars,\n events: {\n 'onReady': this._onYouTubePlayerReady,\n 'onStateChange': this._onPlayerStateChangeHandler\n }\n });\n },\n\n _onYouTubePlayerReady: function(event) {\n this._ytmedia = event.target;\n this._ytmedia.getIframe().style.width = \"100%\";\n this._ytmedia.getIframe().style.height = \"100%\";\n this._youTubeVideo = true;\n this._mediaDurationChangeHandler();\n\n if (this.options.autoPlay) {\n this._playStateToggle(true);\n this._ytmedia.loadVideoById(this._getMediaId());\n }\n else {\n this._ytmedia.cueVideoById(this._getMediaId());\n }\n\n if (this.options.mute) {\n this.mute(true);\n }\n\n this.trigger(READY);\n },\n\n _updateTitle: function() {\n this.titlebar().text(this.media().title || this.media().source);\n },\n\n _onPlayerStateChange: function(event) {\n\n if (event.data === 0) {\n this._slider.value(0);\n this._paused = false;\n this._playStateToggle(true);\n this.trigger(END);\n if (this.options.autoRepeat) {\n this.play();\n }\n }\n else if (event.data === 1) {\n this._mediaDurationChange();\n this._ytmedia.setVolume(this.volume());\n if (this._sliderChangeFired) {\n this._sliderChangeFired = false;\n } else {\n this._uiDisplay(false);\n }\n this.trigger(PLAY);\n this._playStateToggle(true);\n\n this._poll(\"progress\", this._mediaTimeUpdate, 500, this);\n this._paused = false;\n }\n else if (event.data === 2) {\n if (!this._paused) {\n this._uiDisplay(true);\n this._playStateToggle(false);\n this.trigger(PAUSE);\n this._paused = true;\n }\n }\n },\n\n _getMediaId: function() {\n var result = this._currentUrl();\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*/;\n var match = result.match(regExp);\n\n if (match && match[7].length === 11) {\n result = match[7];\n }\n\n return result;\n },\n\n _mouseClick: function() {\n if (this.isPaused()) {\n this.play();\n } else {\n this.pause();\n }\n },\n\n _initializePlayer: function() {\n if (!this._mouseMoveHandler) {\n this._mouseMoveHandler = this._mouseMove.bind(this);\n this._mouseInHandler = this._mouseIn.bind(this);\n this._mouseOutHandler = this._mouseOut.bind(this);\n\n $(this.wrapper)\n .on(\"mouseenter\" + ns, this._mouseInHandler)\n .on(\"mouseleave\" + ns, this._mouseOutHandler)\n .on(\"mousemove\" + ns, this._mouseMoveHandler);\n }\n\n if (!this._ytmedia && this._youTubeVideo) {\n this._createYoutubePlayer();\n }\n else if (!this._media && !this._youTubeVideo) {\n this._createHtmlPlayer();\n }\n },\n\n _createHtmlPlayer: function() {\n if (!this._videoOverlay) {\n this._mouseClickHanlder = this._mouseClick.bind(this);\n this.wrapper.append(\"
\");\n this._videoOverlay = this.wrapper.find(\".k-mediaplayer-overlay\")\n .on(\"click\" + ns, this._mouseClickHanlder);\n }\n\n this._mediaTimeUpdateHandler = this._mediaTimeUpdate.bind(this);\n this._mediaDurationChangeHandler = this._mediaDurationChange.bind(this);\n this._mediaEndedHandler = this._mediaEnded.bind(this);\n this._mediaCanPlayHandler = this._mediaReady.bind(this);\n this._mediaPlayHandler = this._mediaPlay.bind(this);\n this._videoOverlay.after(templates.htmlPlayer);\n this._media = this.wrapper.find(DOT + MEDIA)[0];\n $(this._media)\n .css({\n width: \"100%\",\n height: \"100%\"\n });\n\n if (this.options.mute) {\n this.mute(true);\n }\n\n this._media.ontimeupdate = this._mediaTimeUpdateHandler;\n this._media.ondurationchange = this._mediaDurationChangeHandler;\n this._media.oncanplay = this._mediaCanPlayHandler;\n this._media.onplay = this._mediaPlayHandler;\n this._media.onended = this._mediaEndedHandler;\n this._media.loop = this.options.autoRepeat;\n },\n\n _mouseIn: function() {\n this._uiDisplay(true);\n },\n\n _mouseOut: function() {\n this._poll(\"mouseIdle\", this._mouseIdle, 3000, this);\n },\n\n _mouseIdle: function() {\n this._uiDisplay(false);\n return false;\n },\n\n _mouseMove: function() {\n if (!(this._titleBar.is(':animated') || this._toolBar.element.is(':animated') || this._slider.wrapper.is(':animated'))) {\n this._uiDisplay(true);\n }\n this._poll(\"mouseIdle\", this._mouseIdle, 3000, this);\n },\n\n _uiDisplay: function(state) {\n var animationSpeed = 'slow';\n var uiElements = this._titleBar\n .add(this._toolBar.element.parent());\n\n if (state) {\n uiElements.fadeIn(animationSpeed);\n }\n else {\n uiElements.fadeOut(animationSpeed);\n if (this.options.navigatable) {\n this.wrapper.trigger(\"focus\");\n }\n }\n },\n\n setOptions: function(options) {\n Widget.fn.setOptions.call(this, options);\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (!this.isPaused()) {\n this.pause();\n }\n\n this.element.off(ns);\n this.element.find(DOT + OVERLAY).off(ns);\n this._timers = null;\n this._mouseMoveHandler = null;\n this._mouseOutHandler = null;\n this._mouseInHandler = null;\n this._mouseClickHanlder = null;\n this._keyDownHandler = null;\n this._fullscreenHandler = null;\n\n this._toolbarClickHandler = null;\n this._sliderDragChangeHandler = null;\n this._sliderDraggingHandler = null;\n this._volumeDraggingHandler = null;\n this._volumeChangeHandler = null;\n this._youtubeApiReadyHandler = null;\n this._onYouTubePlayerReady = null;\n this._onPlayerStateChangeHandler = null;\n this._dropDownSelectHandler = null;\n\n if (this._youTubeVideo) {\n this._ytmedia.destroy();\n }\n else {\n this._media.ontimeupdate = this._mediaTimeUpdateHandler = null;\n this._media.ondurationchange = this._mediaDurationChangeHandler = null;\n this._media.oncanplay = this._mediaCanPlayHandler = null;\n this._media.onplay = this._mediaPlayHandler = null;\n this._media.onended = this._mediaEndedHandler = null;\n this._media.src = \"\";\n this._media.remove();\n }\n\n this._mouseMoveTimer = null;\n clearTimeout(this._mouseMoveTimer);\n\n kendo.destroy(this.element);\n },\n\n seek: function(ms) {\n if (typeof ms === 'undefined') {\n return 1000 * (this._youTubeVideo) ? this._ytmedia.getCurrentTime() : (this._media ? this._media.currentTime : 0);\n }\n var seconds = ms / 1000;\n if (this._youTubeVideo) {\n if (seconds + 3 >= this._ytmedia.getDuration() | 0) {\n //avoid infinite bad request loop in youtube player.\n this._ytmedia.seekTo(this._ytmedia.getDuration() - 3 | 0, true);\n } else {\n this._ytmedia.seekTo(seconds, true);\n }\n } else {\n this._media.currentTime = seconds;\n }\n\n return this;\n },\n\n play: function() {\n if (this._youTubeVideo) {\n this._ytmedia.playVideo();\n } else {\n if (kendo.support.mobileOS) {\n this._uiDisplay(false);\n }\n this._media.play();\n }\n this._paused = false;\n\n this._playStateToggle(true);\n\n return this;\n },\n\n stop: function() {\n if (this._youTubeVideo && this._ytmedia) {\n this._ytmedia.stopVideo();\n } else if (this._media && !this._youTubeVideo) {\n if (kendo.support.mobileOS) {\n this._uiDisplay(true);\n }\n this._media.pause();\n this._media.currentTime = 0;\n }\n this._paused = true;\n\n this._playStateToggle(false);\n return this;\n },\n\n pause: function() {\n if (this._youTubeVideo) {\n this._ytmedia.pauseVideo();\n } else {\n if (kendo.support.mobileOS) {\n this._uiDisplay(true);\n }\n this._media.pause();\n }\n this._paused = true;\n this._playStateToggle(false);\n this.trigger(PAUSE);\n return this;\n },\n\n toolbar: function() {\n return this._toolBar;\n },\n\n dropdown: function() {\n return this._dropDown;\n },\n\n titlebar: function() {\n return this._titleBar;\n },\n\n fullScreen: function(enterFullScreen) {\n if (typeof enterFullScreen === 'undefined') {\n return this._isInFullScreen || false;\n }\n var element = this.element.get(0);\n if (enterFullScreen) {\n // Handles the case when the action is triggered by code and not by user iteraction\n this.element.addClass(\"k-mediaplayer-fullscreen\");\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n }\n this._isInFullScreen = true;\n } else {\n\n if (document.cancelFullscreen) {\n document.cancelFullscreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msCancelFullscreen) {\n document.msCancelFullscreen();\n } else if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n // Handles the case when the action is triggered by code and not by user iteraction\n this.element.removeClass(\"k-mediaplayer-fullscreen\");\n this._isInFullScreen = false;\n }\n this._slider.resize();\n },\n\n volume: function(value) {\n if (typeof value === 'undefined') {\n return (typeof this._volume !== 'undefined') ? this._volume : this._volume = this.options.volume;\n }\n this._volume = value;\n this.mute(value <= 0);\n\n if (this._youTubeVideo) {\n this._ytmedia.setVolume(this._volume);\n } else {\n this._media.volume = this._volume / 100;\n }\n\n this._volumeSlider.value(value);\n },\n\n mute: function(muted) {\n var currentState = this._youTubeVideo ? (this._ytmedia && this._ytmedia.isMuted()) : (this._media && this._media.muted);\n if (typeof muted === 'undefined' || muted === currentState) {\n return currentState;\n }\n if (this._youTubeVideo) {\n if (muted) {\n this._ytmedia.mute();\n }\n else {\n this._ytmedia.unMute();\n }\n }\n else {\n this._media.muted = muted;\n }\n\n if (muted) {\n this._volumeSlider.value(0);\n }\n else {\n this._volumeSlider.value((this._media && this._media.volume * 100) || (this._ytmedia && this._ytmedia.getVolume()));\n }\n this.trigger(VOLUMECHANGE);\n this._changeVolumeButtonImage(this._volumeSlider.value());\n },\n\n isEnded: function() {\n if (this._youTubeVideo) {\n return this._ytmedia.getPlayerState() === 0;\n } else {\n return this._media.ended;\n }\n },\n\n media: function(value) {\n var dropdown = this.dropdown();\n if (typeof value === 'undefined') {\n return (typeof this._mediaData !== 'undefined') ? this._mediaData : this._mediaData = this.options.media;\n }\n\n if (isArray(value.source)) {\n dropdown.setDataSource(value.source);\n dropdown.wrapper.show();\n }\n else {\n dropdown.wrapper.hide();\n }\n\n this._mediaData = value;\n\n this._updateTitle();\n\n this._setPlayerUrl();\n },\n\n isPaused: function() {\n return this._paused;\n },\n\n isPlaying: function() {\n return !this.isEnded() && !this._paused;\n },\n\n _aria: function() {\n this.wrapper.attr(\"role\", \"region\");\n //this.wrapper.attr(\"aria-labelledby\", \"mediaplayerTitleBar\");\n //add onfocus with aria active descendant\n },\n\n _navigatable: function() {\n this._fullscreenHandler = this._fullscreen.bind(this);\n $(document)\n .on(\"webkitfullscreenchange mozfullscreenchange fullscreenchange\" + ns, this._fullscreenHandler);\n\n if (this.options.navigatable) {\n this.wrapper.attr(\"tabIndex\", 0);\n this._keyDownHandler = this._keyDown.bind(this);\n this.wrapper\n .on(\"keydown\" + ns, this._keyDownHandler);\n }\n },\n\n _fullscreen: function() {\n var isFullScreen = document.fullScreen ||\n document.mozFullScreen ||\n document.webkitIsFullScreen,\n fullscreenSpan = this.wrapper.find(FULLSCREEN_ENTER_SELECTOR);\n\n this._uiDisplay(true);\n this._slider.resize();\n\n if (!isFullScreen) {\n kendo.ui.icon(fullscreenSpan, { icon: FULLSCREEN_ENTER });\n this.fullScreen(false);\n }\n },\n\n _keyDown: function(e) {\n e.preventDefault();\n var fsButton = this.wrapper.find(FULLSCREEN_ENTER_SELECTOR);\n\n if (e.keyCode === keys.SPACEBAR) {\n if (this.isPlaying()) {\n this.pause();\n }\n else {\n this.play();\n }\n }\n else if (e.keyCode === keys.ENTER && !this._isInFullScreen) {\n kendo.ui.icon(fsButton, { icon: FULLSCREEN_EXIT });\n this.fullScreen(true);\n }\n else if (e.keyCode === 77) {\n var muted = this.mute();\n this.mute(!muted);\n }\n else if (e.keyCode === keys.ESC && this._isInFullScreen) {\n kendo.ui.icon(fsButton, { icon: FULLSCREEN_ENTER });\n this.fullScreen(false);\n }\n },\n\n _error: function() {\n },\n\n _progress: function() {\n }\n\n });\n\n ui.plugin(MediaPlayer);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}