UNPKG

@openveo/player

Version:

OpenVeo player to play a video with associated images and chapters

2 lines 107 kB
/* openveo-player v8.0.0 */ "use strict";!function(){var e=angular.module("ov.player",["ngCookies"]);e.constant("oplI18nTranslations",{en:{LOADING:"Loading...",MEDIA_ERR_NO_SOURCE:"A network error caused the video download to fail part-way.",MEDIA_ERR_NETWORK:"A network error caused the video download to fail part-way.",MEDIA_ERR_DECODE:"The video playback was aborted due to a corruption problem or because the video used features your browser did not support.",MEDIA_ERR_SRC_NOT_SUPPORTED:"The video could not be loaded, either because the server or network failed or because the format is not supported.",MEDIA_ERR_PERMISSION:"Video not available or private.",MEDIA_ERR_DEFAULT:"An unknown error occurred.",PREVIEW_IMAGE_PRELOAD_ERROR:"Image not available",TILE_MORE_INFO_BUTTON_LABEL:"More info",TILE_CLOSE_BUTTON_LABEL:"Close",TILE_IMAGE_PRELOAD_ERROR:"Image not available",CONTROLS_VOLUME_MUTE_ARIA_LABEL:"Mute",CONTROLS_VOLUME_UNMUTE_ARIA_LABEL:"Mute",CONTROLS_VOLUME_CURSOR_ARIA_LABEL:"Change volume",CONTROLS_VOLUME_TEXT_ARIA_LABEL:"Volume %value%%",CONTROLS_TEMPLATE_SPLIT_50_50_ARIA_LABEL:"Mode 50/50",CONTROLS_TEMPLATE_FULL_1_ARIA_LABEL:"Mode video only",CONTROLS_TEMPLATE_FULL_2_ARIA_LABEL:"Mode presentation only",CONTROLS_TEMPLATE_SPLIT_25_75_ARIA_LABEL:"Mode with priority on presentation",CONTROLS_SETTINGS_ARIA_LABEL:"Settings",CONTROLS_SETTINGS_QUALITIES_TITLE:"Quality",CONTROLS_SETTINGS_SOURCES_TITLE:"Source",CONTROLS_SETTINGS_SOURCE_LABEL:"Source %source%",CONTROLS_PLAY_ARIA_LABEL:"Play",CONTROLS_PAUSE_ARIA_LABEL:"Pause",CONTROLS_TEMPLATES_SELECTOR_ARIA_LABEL:"Choose player template",CONTROLS_TIME_BAR_ARIA_LABEL:"Navigate in the video",CONTROLS_TIME_BAR_ARIA_VALUE_TEXT:"%value%% seen",CONTROLS_FULLSCREEN_ARIA_LABEL:"Fullscreen",CONTROLS_FULLSCREEN_EXIT_ARIA_LABEL:"Exit fullscreen",TABS_CHAPTERS_ARIA_LABEL:"Display chapters",TABS_TIMECODES_ARIA_LABEL:"Display images",TABS_TAGS_ARIA_LABEL:"Display tags"},fr:{LOADING:"Chargement...",MEDIA_ERR_NO_SOURCE:"Une erreur réseau à causé l'échec du téléchargement de la vidéo.",MEDIA_ERR_NETWORK:"Une erreur réseau à causé l'échec du téléchargement de la vidéo.",MEDIA_ERR_DECODE:"La lecture de la vidéo a été abandonnée en raison d' un problème de corruption ou parce que la vidéo utilise des fonctionnalités que votre navigateur ne supporte pas.",MEDIA_ERR_SRC_NOT_SUPPORTED:"La vidéo ne peut être chargée , soit parce que le serveur ou le réseau à échoué ou parce que le format ne sont pas supportées.",MEDIA_ERR_PERMISSION:"Vidéo indisponible ou privée.",MEDIA_ERR_DEFAULT:"Une erreur inconnue est survenue.",PREVIEW_IMAGE_PRELOAD_ERROR:"Image non disponible",TILE_MORE_INFO_BUTTON_LABEL:"Plus d'info",TILE_CLOSE_BUTTON_LABEL:"Fermer",TILE_IMAGE_PRELOAD_ERROR:"Image non disponible",CONTROLS_VOLUME_MUTE_ARIA_LABEL:"Désactiver le son",CONTROLS_VOLUME_UNMUTE_ARIA_LABEL:"Activer le son",CONTROLS_VOLUME_CURSOR_ARIA_LABEL:"Modifier le volume",CONTROLS_VOLUME_TEXT_ARIA_LABEL:"Volume à %value%%",CONTROLS_TEMPLATE_SPLIT_50_50_ARIA_LABEL:"Mode 50/50",CONTROLS_TEMPLATE_FULL_1_ARIA_LABEL:"Mode vidéo seule",CONTROLS_TEMPLATE_FULL_2_ARIA_LABEL:"Mode présentation seule",CONTROLS_TEMPLATE_SPLIT_25_75_ARIA_LABEL:"Mode avec priorité sur la présentation",CONTROLS_SETTINGS_ARIA_LABEL:"Paramètres",CONTROLS_SETTINGS_QUALITIES_TITLE:"Qualité",CONTROLS_SETTINGS_SOURCES_TITLE:"Source",CONTROLS_SETTINGS_SOURCE_LABEL:"Source %source%",CONTROLS_PLAY_ARIA_LABEL:"Lire",CONTROLS_PAUSE_ARIA_LABEL:"Pause",CONTROLS_TEMPLATES_SELECTOR_ARIA_LABEL:"Choisir un modèle de player",CONTROLS_TIME_BAR_ARIA_LABEL:"Se déplacer dans la vidéo",CONTROLS_TIME_BAR_ARIA_VALUE_TEXT:"%value%% vu",CONTROLS_FULLSCREEN_ARIA_LABEL:"Plein écran",CONTROLS_FULLSCREEN_EXIT_ARIA_LABEL:"Quitter le plein écran",TABS_CHAPTERS_ARIA_LABEL:"Afficher les chapitres",TABS_TIMECODES_ARIA_LABEL:"Afficher les indexes",TABS_TAGS_ARIA_LABEL:"Afficher les tags"}}),e.constant("oplPlayerErrors",{MEDIA_ERR_NO_SOURCE:0,MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4,MEDIA_ERR_PERMISSION:5,MEDIA_ERR_UNKNOWN:6}),e.config(function(){"undefined"!=typeof videojs&&videojs.Html5DashJS&&videojs.Html5DashJS.hook&&videojs.Html5DashJS.hook("beforeinitialize",function(e,t){videojs&&videojs.log&&t.updateSettings({debug:{logLevel:dashjs.Debug.LOG_LEVEL_NONE}})})})}(),function(){function e(o){var n=navigator.language||navigator.browserLanguage;function t(e){return 0<=Object.keys(o).indexOf(e)}return{translate:function(e,t){var l=o[n]&&o[n][e]||e;return l===e&&(l=o.en[e]||e),t&&(e=new RegExp(Object.keys(t).join("|"),"gi"),l=l.replace(e,function(e){return t[e]})),l},isLanguageSupported:t,setLanguage:function(e){n=t(e)?e:"en"},getLanguage:function(){return n}}}angular.module("ov.player").service("oplI18nService",e),e.$inject=["oplI18nTranslations"]}(angular),function(){function e(r,a){function i(e,t){t=t||50;function l(){if(e())return r.when();var t=r.defer();return n=a(function(){return e()?t.resolve():void l().then(function(){t.resolve()}).catch(function(e){t.reject(e)})},10),t.promise}var o=r.defer(),n=null;return r.race([a(function(){return 0},t),l()]).then(function(e){0===e?o.reject("Timed out"):o.resolve()}).catch(function(e){o.reject(e)}).finally(function(){n&&a.cancel(n)}),o.promise}return{waitForElement:function(e,t,l){if(l=l||50,!e||!t)return r.reject("Parent element or selector not specified");var o=r.defer();return i(function(){return!!e.querySelector(t)},l).then(function(){o.resolve()}).catch(function(e){o.reject(e)}),o.promise},waitForElementDimension:function(o,n,e){if(e=e||50,!o)return r.reject("Element not specified");var t=r.defer(),a=null;return i(function(){var e=o.getBoundingClientRect();a={bottom:e.bottom,height:e.height,left:e.left,right:e.right,top:e.top,width:e.width,clientWidth:o.clientWidth,clientHeight:o.clientHeight};for(var t=0;t<n.length;t++){var l=n[t];if(void 0!==l.notEqual&&a[l.property]===l.notEqual||void 0!==l.equal&&a[l.property]!==l.equal)return!1}return!0},e).then(function(){t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},waitForController:function(e,t,l){if(l=l||50,!e)return r.reject("Element not specified");var o=r.defer(),n=null;return i(function(){return!!(n=angular.element(e).controller(t))},l).then(function(){o.resolve(n)}).catch(function(e){o.reject(e)}),o.promise}}}angular.module("ov.player").factory("oplDomFactory",e),e.$inject=["$q","$timeout"]}(),function(){function e(e){var t={};return e.PointerEvent?(t.UP="pointerup",t.DOWN="pointerdown",t.MOVE="pointermove",t.OVER="pointerover",t.OUT="pointerout"):e.TouchEvent?(t.UP="touchend",t.DOWN="touchstart",t.MOVE="touchmove"):(t.UP="mouseup",t.DOWN="mousedown",t.MOVE="mousemove",t.OVER="mouseover",t.OUT="mouseout"),{EVENTS:t,getUiEventCoordinates:function(e){var t={};return e.targetTouches&&0<e.targetTouches.length?(t.x=e.targetTouches[0].pageX,t.y=e.targetTouches[0].pageY):(t.x=e.pageX,t.y=e.pageY),t}}}angular.module("ov.player").factory("oplEventsFactory",e),e.$inject=["$window"]}(),angular.module("ov.player").factory("OplPlayer",function(){function e(){}return e.prototype.init=function(e,t){if(!e)throw new Error("A player JQLite Element is expected as Player argument");this.jPlayerElement=e,this.selectedSourceIndex=0,this.playerId=t},e.prototype.setMediaSource=function(e){this.selectedSourceIndex=e},e.prototype.getSourceIndex=function(){return this.selectedSourceIndex},e.prototype.getMediaIds=function(){return this.media.mediaId},e.prototype.getId=function(){return this.playerId},e.prototype.setMedia=function(e){if(!e)throw new Error("Player needs a valid media");this.media=e},e.prototype.getSourceUrl=function(){return null},e.prototype.getMediaMIME=function(e){return e&&e.mimeType?e.mimeType:"video/mp4"},e.prototype.getAvailableDefinitions=function(){throw new Error("getAvailableDefinitions method not implemented for this player")},e.prototype.getMediaThumbnail=function(){throw new Error("getMediaThumbnail method not implemented for this player")},e.prototype.initialize=function(){throw new Error("initialize method not implemented for this player")},e.prototype.load=function(){throw new Error("load method not implemented for this player")},e.prototype.isPaused=function(){throw new Error("isPaused method not implemented for this player")},e.prototype.isPlaying=function(){throw new Error("isPlaying method not implemented for this player")},e.prototype.playPause=function(){throw new Error("play method not implemented for this player")},e.prototype.setVolume=function(){throw new Error("setVolume method not implemented for this player")},e.prototype.setTime=function(){throw new Error("setTime method not implemented for this player")},e.prototype.getPlayerType=function(){throw new Error("getPlayerType method not implemented for this player")},e.prototype.destroy=function(){throw new Error("destroy method not implemented for this player")},e.prototype.getDefinition=function(){throw new Error("getDefinition method not implemented for this player")},e.prototype.setDefinition=function(e){throw new Error("setDefinition method not implemented for this player")},e.prototype.isOverlayPlayPauseSupported=function(){throw new Error("isOverlayPlayPauseSupported method not implemented for this player")},e}),function(){function e(l,e,o){var n=this,a=[];l.url=null,l.position={x:0,y:0},Object.defineProperties(n,{preloading:{value:!1,writable:!0},preloaded:{value:!1,writable:!0},error:{value:!1,writable:!0},$onChanges:{value:function(e){var t;e.oplImage&&e.oplImage.currentValue&&(n.error=!1,-1===a.indexOf(n.oplImage.url||n.oplImage)&&(n.preloaded=!1,n.preloading=!1,!(t=n.oplImage.url||n.oplImage)||n.preloading||n.preloaded||(n.preloading=!0,o.get(t).then(function(){n.preloading=!1,n.preloaded=!0,a.push(t)}).catch(function(){n.preloading=!1,n.preloaded=!0,n.error=!0}))),l.url=n.oplImage.url||n.oplImage,l.position.x=n.oplImage.x||0,l.position.y=n.oplImage.y||0)}}})}angular.module("ov.player").controller("OplPreviewController",e),e.$inject=["$scope","$element","$http"]}(),function(){function e(e,t,l,o){var n,a,r,i=this,s=!1;function u(e){for(var t=0,l=0;l<r.length;l++)if(angular.element(r[l]).controller("oplButton").isFocused()){t=l;break}e=e?t+1:t-1;(e=e>=r.length?0:e)<0&&(e=r.length-1),angular.element(r[e]).controller("oplButton").focus()}function c(){o(function(){r=angular.element(l[0].querySelectorAll(".opl-tabs opl-button"))})}function p(e){if("Tab"!==e.key&&9!==e.keyCode||!e.shiftKey){if("ArrowLeft"===e.key||37===e.keyCode||"ArrowUp"===e.key||38===e.keyCode)u(!1);else{if("ArrowRight"!==e.key&&39!==e.keyCode&&"ArrowDown"!==e.key&&40!==e.keyCode)return;u(!0)}e.preventDefault()}else s=!0}function d(e){a.addClass("opl-focus"),s?s=!1:angular.element(r[0]).controller("oplButton").focus()}function f(e){s=!1,a.removeClass("opl-focus")}Object.defineProperties(i,{views:{value:[]},selectViewById:{value:function(e){e=t("filter")(i.views,{oplViewId:e},!0);0!=e.length&&i.select(e[0])}},addView:{value:function(e){i.views.length||i.select(e),i.views.push(e),c()}},removeView:{value:function(e){e=i.views.indexOf(e);-1!==e&&i.views.splice(e,1),c()}},select:{value:function(e){angular.forEach(i.views,function(e){e.selected=!1}),e.selected=!0}},getSelectedView:{value:function(e){for(var t=0;t<i.views.length;t++)if(i.views[t].selected)return i.views[t];return null}},$onInit:{value:function(){a=angular.element(l[0].querySelector(".opl-tabs-wrapper")),(n=angular.element(l[0].querySelector(".opl-tabs ul"))).on("keydown",p),n.on("focus",d),n.on("blur",f)}},$postLink:{value:function(){c()}},$onDestroy:{value:function(){n.off("keydown focus blur")}}}),e.handleButtonAction=function(e){i.oplOnSelect&&i.oplOnSelect({view:e})}}angular.module("ov.player").controller("OplTabsController",e),e.$inject=["$scope","$filter","$element","$timeout"]}(),function(){function e(e,t){var l=this,o=t.controller("oplTabs");Object.defineProperties(l,{selected:{value:!1,writable:!0}}),o.addView(l),e.$watch("$ctrl.selected",function(e,t){e&&l.oplOnSelect&&l.oplOnSelect({id:l.oplViewId})}),e.$on("$destroy",function(){o.removeView(l)})}angular.module("ov.player").controller("OplViewController",e),e.$inject=["$scope","$element"]}(),function(e){function t(){this.media=null,this.cutStart=0,this.cutEnd=null,this.realDuration=null,this.cutsActivated=!1}function l(e,l){e.sort(function(e,t){return e[l]-t[l]})}t.prototype.setMedia=function(e){if(this.media=e,this.cutsActivated=!1,this.cutStart=0,this.cutEnd=null,this.hasCuts()){this.cutsActivated=!0;for(var t=0;t<this.media.cut.length;t++)"begin"===this.media.cut[t].type?this.cutStart=this.media.cut[t].value:"end"===this.media.cut[t].type&&(this.cutEnd=this.media.cut[t].value);this.cutStart<0&&(this.cutStart=0),null!==this.cutEnd&&this.cutStart>=this.cutEnd&&(this.cutStart=0,this.cutEnd=null)}this.media.timecodes&&l(this.media.timecodes,"timecode"),this.media.chapters&&l(this.media.chapters,"value"),this.media.tags&&l(this.media.tags,"value")},t.prototype.getMediaTimecodesByTime=function(){var e={},t=this.getMediaPointsOfInterest("timecodes");if(t)for(var l=0;l<t.length;l++){var o=t[l];e[o.timecode]={image:{small:o.image.small,large:o.image.large}}}return e},t.prototype.getMediaPointsOfInterest=function(e){var t="timecodes"===e?"timecode":"value";if(!this.media[e])return[];if(this.cutsActivated&&this.getRealDuration()){for(var l,o=[],n=this.getCutStart(),a=this.getCutEnd(),r=0;r<this.media[e].length;r++){var i=this.media[e][r][t],s=angular.copy(this.media[e][r]);if(s[t]=s[t]-this.cutStart,i<n)l=s;else{if(a<i)break;o.push(s)}}return void 0===l||0!==o.length&&0==o[0][t]||(l[t]=0,o.unshift(l)),o}return angular.copy(this.media[e])},t.prototype.getCutStart=function(){return this.cutsActivated&&this.cutStart||0},t.prototype.getCutEnd=function(){return this.cutsActivated?this.cutEnd||this.getRealDuration():0},t.prototype.getRealTime=function(e){return e+this.getCutStart()},t.prototype.getCutTime=function(e){return Math.max(e-this.getCutStart(),0)},t.prototype.getCutDuration=function(){return this.getRealDuration()?this.getCutEnd()-this.getCutStart():0},t.prototype.getCutPercent=function(e){if(this.getRealDuration()){var t=this.getRealDuration()*(e/100);return Math.min(Math.max((t-this.getCutStart())/this.getCutDuration()*100,0),100)}return e},t.prototype.getCutDurationPercent=function(e){if(this.getRealDuration()){var t=this.getRealDuration()*(e/100);return Math.min(t/this.getCutDuration()*100,100)}return e},t.prototype.setRealDuration=function(e){(this.cutStart>=e||this.cutEnd>e)&&(this.cutStart=0,this.cutEnd=null),this.realDuration=e},t.prototype.getRealDuration=function(){return this.realDuration},t.prototype.getDuration=function(){return this.cutsActivated?this.getCutDuration():this.getRealDuration()},t.prototype.getTime=function(e){return this.cutsActivated?this.getCutTime(e):e},t.prototype.setCutsStatus=function(e){this.cutsActivated=e},t.prototype.hasCuts=function(){return this.media&&this.media.cut&&this.media.cut.length},t.prototype.getPercent=function(e){e=e/this.getRealDuration()*100;return this.cutsActivated?this.getCutPercent(e):e},t.prototype.getTimeFromPercent=function(e){return this.getDuration()*(e/100)},t.prototype.getDurationPercent=function(e){return this.cutsActivated?this.getCutDurationPercent(e):e},t.prototype.findPointOfInterest=function(e,t){var l=this.getMediaPointsOfInterest(e),o="timecodes"===e?"timecode":"value";if(!l.length)return null;if(t<l[0][o])return null;for(var n=0;n<l.length;n++)if(t>=l[n][o]&&l[n+1]&&t<l[n+1][o])return l[n];return l[l.length-1]},e.value("oplPlayerService",t)}(angular.module("ov.player")),angular.module("ov.player").filter("oplMillisecondsToTime",function(){return function(e){if(e<0||isNaN(e))return"";e=parseInt(e);var t=parseInt(e/1e3%60),l=parseInt(e/6e4%60),e=parseInt(e/36e5%24);return("00"!==(e=e<10?"0"+e:e)?e+":":"")+(l=l<10?"0"+l:l)+":"+(t=t<10?"0"+t:t)}}),function(){function e(l){return function(e,t){return l.translate(e,t)}}angular.module("ov.player").filter("oplTranslate",e),e.$inject=["oplI18nService"]}(),function(re){function e(n,e,o,l,a,r,i,s,u,c,p,t){var d,f,m,g,h,v,y,E,T,S,O,b,I,A,w=this,_=e[0],C=i.children()[0],L=!1,P=!1,R=!0,D=null,V=null;function $(){return C.requestFullScreen||C.mozRequestFullScreen||C.webkitRequestFullScreen||C.msRequestFullscreen}function N(){return 1==("ontouchstart"in window||window.DocumentTouch&&_ instanceof DocumentTouch)}function k(e,t){return void 0===w[e]?t:JSON.parse(w[e])}function M(t){l(function(){var e=r.$root.$$phase;"$apply"===e||"$digest"===e?t():r.$apply(t)},1)}function F(e){var t;return"chapters"===e?t=i[0].querySelector(".opl-chapters-view opl-tiles"):"timecodes"===e?t=i[0].querySelector(".opl-timecodes-view opl-tiles"):"tags"===e&&(t=i[0].querySelector(".opl-tags-view opl-tiles")),re.element(t).controller("oplTiles")}function U(){if(f.hasClass("opl-masked"))return s.when();var t=s.defer();return requestAnimationFrame(function(){!function(){if(v)return s.when();var e=s.defer();return f.addClass("opl-masking"),v=l(function(){v=null,f.addClass("opl-masked"),f.removeClass("opl-masking"),e.resolve()},225),e.promise}().then(function(){t.resolve()}).catch(function(e){t.reject(e)})}),t.promise}function q(){if(!f.hasClass("opl-masking")&&!f.hasClass("opl-masked"))return s.when();var t=s.defer();return requestAnimationFrame(function(){!function(){if(v)return s.when();var e=s.defer();return f.removeClass("opl-masked"),f.addClass("opl-posting"),v=l(function(){v=null,f.removeClass("opl-posting"),e.resolve()},525),e.promise}().then(function(){t.resolve()}).catch(function(e){t.reject(e)})}),t.promise}function x(){if(!m.hasClass("opl-light-controls-posting")&&!m.hasClass("opl-light-controls-posted"))return s.when();var t=s.defer();return requestAnimationFrame(function(){!function(){if(y)return s.when();var e=s.defer();return m.removeClass("opl-light-controls-posted"),m.addClass("opl-light-controls-masking"),y=l(function(){y=null,m.removeClass("opl-light-controls-masking"),e.resolve()},150),e.promise}().then(function(){t.resolve()}).catch(function(e){t.reject(e)})}),t.promise}function B(){if(m.hasClass("opl-light-controls-posted"))return s.when();var t=s.defer();return requestAnimationFrame(function(){!function(){if(y)return s.when();var e=s.defer();return m.addClass("opl-light-controls-posting"),y=l(function(){y=null,m.addClass("opl-light-controls-posted"),m.removeClass("opl-light-controls-posting"),e.resolve()},150),e.promise}().then(function(){t.resolve()}).catch(function(e){t.reject(e)})}),t.promise}function j(){r.indexesDisplayed=w.timecodes.length&&k("oplIndexes",!0),r.chaptersDisplayed=w.chapters.length&&k("oplChapters",!0),r.tagsDisplayed=w.tags.length&&k("oplTags",!0);var e=r.chaptersDisplayed+r.tagsDisplayed+r.indexesDisplayed;r.tabsHidden=1===e||0===e,r.hidePoi=0===e;var t=I.getSelectedView();t&&3!==e&&(e=r.indexesDisplayed?"timecodes":r.chaptersDisplayed?"chapters":"tags",(!r.indexesDisplayed&&"timecodes"===t.oplViewId||!r.chaptersDisplayed&&"chapters"===t.oplViewId||!r.tagsDisplayed&&"tags"===t.oplViewId)&&r.handleViewSelect({oplViewId:e}))}function H(e){var t=[];if(e)for(var l=0;l<e.length;l++){var o=e[l],n=o.value;Object.prototype.hasOwnProperty.call(o,"timecode")&&(n=o.timecode);n={id:l,type:Object.prototype.hasOwnProperty.call(o,"image")?"image":"text",title:o.name,time:n,description:o.description,file:o.file,abstract:!0};o.image&&(n.image={small:{url:o.image.small.url||o.image.small,x:o.image.small.x||0,y:o.image.small.y||0},large:o.image.large}),t.push(n)}return t}function z(){var e;T&&(w.chapters=H(T.getMediaPointsOfInterest("chapters")),w.tags=H(T.getMediaPointsOfInterest("tags")),w.timecodes=H(T.getMediaPointsOfInterest("timecodes")),w.timecodes.length&&(e=T.findPointOfInterest("timecodes",w.time),w.area2ImageUrl=e?e.image.large:null),j())}function W(){var e;w.player&&(e=w.player&&w.player.getAvailableDefinitions()||null,r.settingsIconDisplayed=!!(e||w.mediaSources&&1<w.mediaSources.length)&&r.settingsIconDisplayed,r.volumeIconDisplayed=r.volumeIconDisplayed&&!N(),r.templateSelectorDisplayed=k("oplTemplateIcon",!0)&&r.indexesDisplayed)}function G(){var e,t;T&&(e=!1,D=re.copy(w.oplData)||{},(t=D)&&(t.mediaId&&!Array.isArray(t.mediaId)&&(t.mediaId=[t.mediaId]),t.sources&&!Array.isArray(t.sources)&&(t.sources=[t.sources])),T.setMedia(D),T.setCutsStatus(R),w.player?w.player.setMedia(D):(e=!0,function(){if(D.mediaId&&D.mediaId.length){var e=w.oplPlayerType||"html",t="player_"+(new Date).getUTCMilliseconds();switch(r.mediaTemplate="opl-"+e+".html",D.language=w.language,e.toLowerCase()){case"youtube":var l=n.get("OplYoutubePlayer");w.player=new l(i,D,t);break;case"vimeo":var o=n.get("OplVimeoPlayer");w.player=new o(i,D,t);break;case"html":o=n.get("OplHtmlPlayer");w.player=new o(i,D,t);break;default:throw new Error("Player "+e+" is not supported")}}}()),w.player&&(w.timecodes=[],w.chapters=[],w.tags=[],w.area2ImageUrl=null,w.playerId=w.player.getId(),w.selectedTemplate=A.FULL_1,w.playing=!1,w.fullscreenEnabled=!1,w.loading=!0,w.initializing=!0,w.error=null,w.volume=100,w.loadedStart=0,w.loadedPercent=0,w.seenPercent=0,w.time=0,w.duration=0,r.lightVolume=100,r.overlayPlayPauseSupported=w.player.isOverlayPlayPauseSupported(),!P||(t=a.getObject("videoStopped_"+D.mediaId))&&(w.seenPercent=t.percent,w.time=t.time,h=w.time),null!==V&&(w.time=V,h=w.time),w.mediaDefinitions=w.player.getAvailableDefinitions(),w.sourceUrl=w.player.getSourceUrl(),w.mediaSources=function(e){for(var t=[],l=0;l<e.length;l++)t.push({id:e[l],label:o("oplTranslate")("CONTROLS_SETTINGS_SOURCE_LABEL",{"%source%":l+1})});return t}(D.mediaId),w.mediaQualities=re.copy(w.mediaDefinitions),w.selectedSource=w.mediaSources[w.player.getSourceIndex()].id,w.selectedDefinition=w.player.getDefinition(),j(),W(),r.fullViewportActivated&&!$()&&(w.fullscreenEnabled=!0,E=!0),c.setLanguage(w.language),e||(h=0,w.player.load())))}function Q(e){return e.stopImmediatePropagation(),M(function(){r.updateVolume(),w.error=null,w.loading=!1,w.initializing=!1,w.setTime(h),w.selectedDefinition=w.player.getDefinition(),i.triggerHandler("ready"),!L&&!S||w.player.isPlaying()||(S=!1,w.playPause())}),!1}function X(e){return e.stopImmediatePropagation(),M(function(){w.loading=!0,i.triggerHandler("waiting")}),!1}function Y(e){return e.stopImmediatePropagation(),M(function(){w.loading=!1,w.playing=!0,i.triggerHandler("playing")}),!1}function K(e,t){e.stopImmediatePropagation(),M(function(){T.setRealDuration(t),w.duration=T.getDuration(),!0===D.needPointsOfInterestUnitConversion?i.triggerHandler("needPoiConversion",t):(w.setTime(h),w.seenPercent=T.getPercent(h),z(),w.selectTemplate(w.oplTemplate),W(),O.reset(),i.triggerHandler("durationChange",w.duration))})}function J(e){return e.stopImmediatePropagation(),M(function(){w.mediaDefinitions=w.player.getAvailableDefinitions(),w.selectedDefinition=w.player.getDefinition(),w.mediaQualities=re.copy(w.mediaDefinitions),W(),w.loading=!1,w.playing=!0,i.triggerHandler("play")}),!1}function Z(e){return e.stopImmediatePropagation(),M(function(){w.playing=!1,i.triggerHandler("pause")}),!1}function ee(e,t){return e.stopImmediatePropagation(),M(function(){w.loadedStart=T.getTime(t.loadedStart),w.loadedPercent=T.getDurationPercent(t.loadedPercent),i.triggerHandler("loadProgress",{loadedStart:w.loadedStart,loadedPercent:w.loadedPercent})}),!1}function te(e,l){if(e.stopImmediatePropagation(),!w.initializing)return w.loading=!1,w.duration&&T.getTime(l.time)>=T.getDuration()?(w.setTime(0),P&&a.remove("videoStopped_"+D.mediaId),h=0,w.player.playPause(),i.triggerHandler("end")):M(function(){w.time=T.getTime(l.time),w.seenPercent=T.getPercent(l.time);var e=T.findPointOfInterest("timecodes",w.time);w.area2ImageUrl=e?e.image.large:null;var t={time:w.time,percent:w.seenPercent};i.triggerHandler("playProgress",t);e=new Date;e.setDate(e.getDate()+1),P&&a.putObject("videoStopped_"+D.mediaId,t,{expires:e})}),!1}function le(e){return e.stopImmediatePropagation(),M(function(){P&&a.remove("videoStopped_"+D.mediaId),w.time=w.seenPercent=0,h=0,w.playing=!1;var e=T.findPointOfInterest("timecodes",w.time);w.area2ImageUrl=e?e.image.large:null,T.hasCuts()&&w.setTime(0),i.triggerHandler("end")}),!1}function oe(e,t){M(function(){switch(w.loading=!1,w.initializing=!1,t.code){case p.MEDIA_ERR_NO_SOURCE:w.error=o("oplTranslate")("MEDIA_ERR_NO_SOURCE");break;case p.MEDIA_ERR_NETWORK:w.error=o("oplTranslate")("MEDIA_ERR_NETWORK");break;case p.MEDIA_ERR_DECODE:w.error=o("oplTranslate")("MEDIA_ERR_DECODE");break;case p.MEDIA_ERR_SRC_NOT_SUPPORTED:w.error=o("oplTranslate")("MEDIA_ERR_SRC_NOT_SUPPORTED");break;case p.MEDIA_ERR_PERMISSION:w.error=o("oplTranslate")("MEDIA_ERR_PERMISSION");break;default:w.error=o("oplTranslate")("MEDIA_ERR_DEFAULT")}i.triggerHandler("error",{code:t.code,message:w.error})})}function ne(e){w.controlsDisplayed&&!function e(t){return!!t&&(!!(t=re.element(t)).hasClass("opl-media-wrapper")||e(t.parent()[0]))}(e.relatedTarget)&&M(function(){w.controlsDisplayed=!1})}function ae(e){d&&l.cancel(d),w.controlsDisplayed||M(function(){w.controlsDisplayed=!0}),d=l(function(){M(function(){w.controlsDisplayed=!1})},5e3)}r.volumeIconDisplayed=!0,r.timeDisplayed=!0,r.indexesDisplayed=!1,r.chaptersDisplayed=!1,r.tagsDisplayed=!1,r.mediaTemplate=null,r.settingsIconDisplayed=!0,r.fullViewportActivated=!1,r.templateSelectorDisplayed=!0,r.fullscreenIconDisplayed=!0,r.overlayPlayPauseSupported=!1,Object.defineProperties(w,{language:{value:null,writable:!0},timecodes:{value:[],writable:!0},chapters:{value:[],writable:!0},tags:{value:[],writable:!0},volume:{value:100,writable:!0},player:{value:null,writable:!0},duration:{value:0,writable:!0},time:{value:0,writable:!0},seenPercent:{value:0,writable:!0},loadedStart:{value:0,writable:!0},loadedPercent:{value:0,writable:!0},selectedTemplate:{value:"split_50_50",writable:!0},area2ImageUrl:{value:null,writable:!0},fullscreenEnabled:{value:!1,writable:!0},playing:{value:!1,writable:!0},playerId:{value:null,writable:!0},mediaDefinitions:{value:[],writable:!0},selectedDefinition:{value:null,writable:!0},selectedSource:{value:null,writable:!0},sourceUrl:{value:null,writable:!0},loading:{value:!1,writable:!0},initializing:{value:!1,writable:!0},error:{value:null,writable:!0},mediaSources:{value:[],writable:!0},mediaQualities:{value:[],writable:!0},controlsDisplayed:{value:!0,writable:!0},$onInit:{value:function(){f=re.element(i[0].querySelector(".opl-media-wrapper")),g=re.element(i[0].querySelector(".opl-index-preview")),h=0,E=!1,r.previewDisplayed=!1,r.touchDevice=N(),f.on("mousemove "+t.EVENTS.DOWN,ae),f.on("mouseout",ne),i.on("oplReady",Q),i.on("oplWaiting",X),i.on("oplPlaying",Y),i.on("oplDurationChange",K),i.on("oplPlay",J),i.on("oplPause",Z),i.on("oplLoadProgress",ee),i.on("oplPlayProgress",te),i.on("oplEnd",le),i.on("oplError",oe)}},$postLink:{value:function(){l(function(){T=new u,m=re.element(i[0].querySelector(".opl-light-controls")),I=re.element(i[0].querySelector(".opl-tabs")).controller("oplTabs");var e=re.element(i[0].querySelector(".opl-template-selector")),t=re.element(i[0].querySelector(".opl-controls .opl-time-bar .opl-slider")),l=re.element(m[0].querySelector(".opl-time-bar .opl-slider"));O=t.controller("oplSlider"),b=l.controller("oplSlider"),A=e.controller("oplTemplateSelector").TEMPLATES,G()})}},$onDestroy:{value:function(){w.player&&w.player.destroy(),f.off(t.EVENTS.OUT+" "+t.EVENTS.MOVE+" "+t.EVENTS.DOWN),i.off("oplReady oplWaiting oplPlaying oplDurationChange oplPlay oplPause oplLoadProgress oplPlayProgress oplEnd oplError")}},$onChanges:{value:function(e){var t;(e.oplFullscreenIcon&&e.oplFullscreenIcon.currentValue||e.oplVolumeIcon&&e.oplVolumeIcon.currentValue||e.oplTemplateIcon&&e.oplTemplateIcon.currentValue||e.oplSettingsIcon&&e.oplSettingsIcon.currentValue||e.oplFullViewport&&e.oplFullViewport.currentValue)&&(e.oplFullscreenIcon&&e.oplFullscreenIcon.currentValue&&(r.fullscreenIconDisplayed=$()&&k("oplFullscreenIcon",!0)),e.oplVolumeIcon&&e.oplVolumeIcon.currentValue&&(r.volumeIconDisplayed=k("oplVolumeIcon",!0)),e.oplTemplateIcon&&e.oplTemplateIcon.currentValue&&(r.templateSelectorDisplayed=k("oplTemplateIcon",!0)),e.oplSettingsIcon&&e.oplSettingsIcon.currentValue&&(r.settingsIconDisplayed=k("oplSettingsIcon",!0)),e.oplFullViewport&&e.oplFullViewport.currentValue&&(r.fullViewportActivated=k("oplFullViewport",!1),r.fullViewportActivated&&!$()&&(w.fullscreenEnabled=!0,E=!0)),W()),e.oplTime&&e.oplTime.currentValue&&(r.timeDisplayed=k("oplTime",!0)),e.oplRememberPosition&&e.oplRememberPosition.currentValue&&(P=k("oplRememberPosition",!1)),e.oplStartTime&&e.oplStartTime.currentValue&&(t=e.oplStartTime.currentValue,V=void 0===t?null:Number(t)),e.oplLanguage&&e.oplLanguage.currentValue&&(t=e.oplLanguage.currentValue,w.language=void 0===t?"en":t,c.setLanguage(w.language)),e.oplAutoPlay&&e.oplAutoPlay.currentValue&&(L=k("oplAutoPlay",!1)),(e.oplChapters&&e.oplChapters.currentValue||e.oplIndexes&&e.oplIndexes.currentValue||e.oplTags&&e.oplTags.currentValue)&&z(),e.oplTemplate&&e.oplTemplate.currentValue&&w.selectTemplate(e.oplTemplate.currentValue),e.oplCuts&&e.oplCuts.currentValue&&(R=k("oplCuts",!0),!w.duration||e.oplData&&e.oplData.currentValue||(G(),w.duration=T.getDuration(),z(),w.selectTemplate(w.oplTemplate),W(),i.triggerHandler("durationChange",w.duration),w.setTime(0))),e.oplData&&e.oplData.currentValue&&(e=e.oplData,w.player&&w.player.setMediaSource(0),G(),e.previousValue&&!0===e.previousValue.needPointsOfInterestUnitConversion&&!e.currentValue.needPointsOfInterestUnitConversion&&(w.setTime(h),z(),w.selectTemplate(w.oplTemplate),W(),i.triggerHandler("durationChange",w.duration)))}},selectTemplate:{value:function(e){A&&(r.indexesDisplayed?w.selectedTemplate=e&&-1<Object.values(A).indexOf(e)?e:A.SPLIT_50_50:w.selectedTemplate=A.FULL_1)}},playPause:{value:function(e){w.loading||w.error||!w.player||w.player.playPause()}},setVolume:{value:function(e){w.volume=e,r.updateVolume()}},setTime:{value:function(e){w.player.setTime(T.getRealTime(e))}},setDefinition:{value:function(e){e&&e!==w.selectedDefinition&&(h=w.time,S=!w.player.isPaused(),w.loading=!0,w.initializing=!0,M(function(){w.player.setDefinition(e)}))}},setSource:{value:function(e){e!=w.player.getSourceIndex()&&(h=w.time,S=!w.player.isPaused(),w.player.setMediaSource(e),w.selectedSource=w.mediaSources[e].id,w.loading=!0,w.initializing=!0,M(function(){w.sourceUrl=w.player.getSourceUrl(),w.player.load(),w.mediaDefinitions=w.player.getAvailableDefinitions(),w.selectedDefinition=w.player.getDefinition(),w.mediaQualities=re.copy(w.mediaDefinitions)}))}}}),r.updateVolume=function(){w.player&&w.player.setVolume(w.volume)},r.handleTimeBarUpdate=function(e){w.setTime(e*w.duration/100)},r.toggleFullscreen=function(){$()?"undefined"!==_.fullScreenElement&&null===_.fullScreenElement||"undefined"!==_.msFullscreenElement&&null===_.msFullscreenElement||"undefined"!==_.mozFullScreen&&!1===_.mozFullScreen||"undefined"!==_.webkitFullscreenElement&&null===_.webkitFullscreenElement?(C.requestFullScreen?C.requestFullScreen():C.mozRequestFullScreen?C.mozRequestFullScreen():C.webkitRequestFullScreen?C.webkitRequestFullScreen():C.msRequestFullscreen&&C.msRequestFullscreen(),w.fullscreenEnabled=!0):(_.exitFullscreen?_.exitFullscreen():_.mozCancelFullScreen?_.mozCancelFullScreen():_.webkitExitFullscreen?_.webkitExitFullscreen():_.msExitFullscreen&&_.msExitFullscreen(),w.fullscreenEnabled=!1):(E=r.fullViewportActivated=!E,w.fullscreenEnabled=E)},r.handleSettingsUpdate=function(e,t){var l;if(e)return w.setDefinition(e);if(t)for(l=0;l<w.mediaSources.length;l++)if(w.mediaSources[l].id===t)return w.setSource(l)},r.handleViewSelect=function(e){var t=I.getSelectedView();if(!t)return I.selectViewById(e.oplViewId);F(t.oplViewId).reduceTile().then(function(){return x(),q()}).then(function(){I.selectViewById(e.oplViewId)})},r.handleViewSelected=function(e){l(function(){F(e).reset()})},r.handleControlFocus=function(){M(function(){w.controlsDisplayed=!0})},r.handleTimeBarOver=function(){w.timecodes.length&&M(function(){r.previewDisplayed=!0})},r.handleTimeBarOut=function(){w.timecodes.length&&M(function(){r.previewDisplayed=!1})},r.handleTimeBarMove=function(o,e,t){var n;w.timecodes.length&&(n=Math.max(t.width*(o/100),0),M(function(){var e,t,l;e=T.getTimeFromPercent(o),t=n,w.timecodes.length&&(l=T.findPointOfInterest("timecodes",e),r.previewTime=e,r.previewImage=l.image&&l.image.small,g.attr("style","transform: translateX("+(t-71)+"px);"))}))},r.handleTileSelect=function(e){w.setTime(e.time)},r.handleTileInfo=function(e,t){t=F(t);U().then(function(){B()}),t.enlargeTile(e.id)},r.handleTileClose=function(e,t){F(t).reduceTile(e.id),x(),q()},r.handleLightVolumeToggle=function(){b.reset()},r.$on("$includeContentLoaded",function(){l(function(){w.player.initialize()},1)})}angular.module("ov.player").controller("OplPlayerController",e),e.$inject=["$injector","$document","$filter","$timeout","$cookies","$scope","$element","$q","oplPlayerService","oplI18nService","oplPlayerErrors","oplEventsFactory"]}(angular),function(e){var B={FULL_1:"split_1",SPLIT_50_50:"split_50_50",SPLIT_25_75:"split_25_75",FULL_2:"split_2"};function t(e,r,n,t,i,l,a){var s,u,c,o,p=this,d=!1,f=!1,m=!1,g=!1,h=!1,v=!1,y=!1,E=[],T=[{id:B.SPLIT_50_50,label:t("oplTranslate")("CONTROLS_TEMPLATE_SPLIT_50_50_ARIA_LABEL"),hidden:!0},{id:B.FULL_1,label:t("oplTranslate")("CONTROLS_TEMPLATE_FULL_1_ARIA_LABEL"),hidden:!0},{id:B.FULL_2,label:t("oplTranslate")("CONTROLS_TEMPLATE_FULL_2_ARIA_LABEL"),hidden:!0},{id:B.SPLIT_25_75,label:t("oplTranslate")("CONTROLS_TEMPLATE_SPLIT_25_75_ARIA_LABEL"),hidden:!0}];function S(e){if(!c)return null;for(var t=0;t<c.length;t++)if(angular.element(c[t]).attr("data-id")===e)return c[t];return null}function O(t){T.forEach(function(e){e.id===t&&(e.hidden=!1)})}function b(t){T.forEach(function(e){e.id===t&&(e.hidden=!0)})}function I(){E.forEach(function(e){e=S(e);e&&(e=angular.element(e),angular.element(e[0]).attr("data-id")===r.selectedTemplate?(e.addClass("opl-selected"),e.attr("style","opacity: 1;transform: translateX(0px);"),O(angular.element(e).attr("data-id"))):(e.removeClass("opl-selected"),e.attr("style","opacity: 0;transform: translateX(0px);"),b(angular.element(e).attr("data-id"))))})}function A(){E.splice(0,E.length),T.forEach(function(e){e.id!==r.selectedTemplate&&E.push(e.id)}),E.unshift(r.selectedTemplate)}function w(e,t,l){return"transition-property: "+e+";-moz-transition-property: "+e+";-o-transition-property: "+e+";-webkit-transition-property: "+e+";transition-timing-function: "+t+";-moz-transition-timing-function: "+t+";-o-transition-timing-function: "+t+";-webkit-transition-timing-function: "+t+";transition-duration: "+l+";-moz-transition-duration: "+l+";-o-transition-duration: "+l+";-webkit-transition-duration: "+l+";"}function _(e){var t=S(e);if(!t.deactivationAnimationRequested||t.activationTimer)return i.when();var l=i.defer();return t.deactivationAnimationRequested=!1,t.activated=!1,angular.element(t).removeClass("opl-template-activation"),angular.element(t).addClass("opl-template-deactivation"),t.deactivationTimer=n(function(){angular.element(t).removeClass("opl-template-deactivation"),l.resolve()},150),l.promise}function C(){if(f||u.hasClass("opl-posted"))return i.when();var l=i.defer(),o=0,n=0;return f=!0,E.forEach(function(e){var t=S(e);t&&(t=angular.element(t)).attr("data-id")!==r.selectedTemplate&&(t.attr("style",w("transform, opacity","cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1)","150ms, 150ms")+"opacity: 0.60;transform: translateX(-"+32*++o+"px);"),t.on("transitionend",function(){t.off("transitionend"),O(t.attr("data-id")),++n==E.length-1&&(u.addClass("opl-posted"),f=!1,r.$apply(),l.resolve())}))}),l.promise}function L(){if(m||!u.hasClass("opl-posted"))return i.when();var l=i.defer(),o=0;return m=!0,E.forEach(function(e){var t=S(e);t&&(t=angular.element(t)).attr("data-id")!==r.selectedTemplate&&(t.attr("style",w("transform, opacity","linear, linear","75ms, 75ms")+"opacity: 0;transform: translateX(0);"),t.on("transitionend",function(){t.off("transitionend"),b(t.attr("data-id")),++o==E.length-1&&(u.removeClass("opl-posted"),m=!1,r.$apply(),l.resolve())}))}),l.promise}function P(e){for(var t=0;t<c.length;t++)if(angular.element(c[t]).attr("data-id")===e){c[t].focus();break}}function R(e){for(var t,l=0;l<c.length;l++)if(angular.element(c[l]).hasClass("opl-template-focus")){t=angular.element(c[l]).attr("data-id");break}var o=E.indexOf(t),o=e?o+1:o-1;(o=o>=E.length?0:o)<0&&(o=E.length-1),P(E[o])}function D(){u.removeClass("opl-focus"),c.forEach(function(e){angular.element(e).removeClass("opl-template-focus")}),requestAnimationFrame(function(){L()})}function V(e){p.oplOnUpdate&&e!==r.selectedTemplate&&p.oplOnUpdate({template:e})}function $(){d||requestAnimationFrame(function(){C().then(function(){o=n(function(){d||(o&&n.cancel(o),requestAnimationFrame(function(){L()}))},5e3)})})}function N(e){if("ArrowLeft"!==e.key&&37!==e.keyCode&&"ArrowDown"!==e.key&&40!==e.keyCode||d)if("ArrowUp"!==e.key&&38!==e.keyCode&&"ArrowRight"!==e.key&&39!==e.keyCode||d){if("Enter"!==e.key&&13!==e.keyCode)return"Tab"===e.key||9===e.keyCode?(h=!(g=!1),void((y=!!e.shiftKey)&&v&&(g=!0))):void 0;r.$apply(function(){V(angular.element(e.target).attr("data-id"))})}else requestAnimationFrame(function(){C()}),R(!1);else requestAnimationFrame(function(){C()}),R(!0);e.preventDefault()}function k(e){g?g=!1:(g=!0,u.addClass("opl-focus"),P(r.selectedTemplate),requestAnimationFrame(function(){C()}),p.oplOnFocus&&p.oplOnFocus())}function M(e){g||(D(),h=!1)}function F(e){angular.element(e.target).addClass("opl-template-focus"),v=!0}function U(e){!1===y&&h&&(h=g=!1,D()),v=!1,angular.element(e.target).removeClass("opl-template-focus")}function q(e){d||(e=angular.element(e.target).attr("data-id")?e.target:e.target.parentNode,s.off(a.EVENTS.UP,q),c.forEach(function(e){requestAnimationFrame(function(){e.deactivationAnimationRequested=!0,_(angular.element(e).attr("data-id"))}),e.activated=!1}),V(angular.element(e).attr("data-id")))}function x(e){var o;d||((o=angular.element(e.target).attr("data-id")?e.target:e.target.parentNode).activated||(u.hasClass("opl-posted")||$(),s.on(a.EVENTS.UP,q),o.activated=!0,requestAnimationFrame(function(){var e,t,l;e=angular.element(o).attr("data-id"),t=i.defer(),l=S(e),angular.element(l).removeClass("opl-template-deactivation"),l.activationTimer&&n.cancel(l.activationTimer),l.deactivationTimer&&n.cancel(l.deactivationTimer),angular.element(l).addClass("opl-template-activation"),l.activationTimer=n(function(){l.activationTimer=null,requestAnimationFrame(function(){_(angular.element(l).attr("data-id")).then(function(){t.resolve()})})},225),t.promise})))}r.selectedTemplate=B.SPLIT_50_50,r.templates=T,Object.defineProperties(p,{TEMPLATES:{value:B},$onInit:{value:function(){s=angular.element(l.document.body),u=angular.element(e[0].querySelector(".opl-template-selector")),n(function(){c=e[0].querySelectorAll("button"),I(),angular.element(c).on("focus",F),angular.element(c).on("blur",U)}),u.on("keydown",N),u.on("focus",k),u.on("blur",M),u.on(a.EVENTS.DOWN,x)}},$onDestroy:{value:function(){u.off(a.EVENTS.DOWN+" focus blur keydown"),c&&angular.element(c).off("focus blur transitionend"),s.off(a.EVENTS.UP,q)}},$onChanges:{value:function(e){if(e.oplTemplate&&e.oplTemplate.currentValue){r.selectedTemplate;for(var t=0;t<T.length&&e.oplTemplate.currentValue!==T[t].id;t++);r.selectedTemplate=-1===t?T[0].id:e.oplTemplate.currentValue,u&&u.hasClass("opl-posted")?(o&&n.cancel(o),requestAnimationFrame(function(){!function(l){if(d||!u.hasClass("opl-posted"))return i.when();var o=i.defer(),n=0,a=0;return d=!0,E.forEach(function(e){var t=S(e);t&&((t=angular.element(t)).attr("data-id")===l?(t.addClass("opl-selected"),t.attr("style",w("transform, opacity","linear, linear","150ms, 150ms")+"opacity: 1;transform: translateX(0);")):(t.removeClass("opl-selected"),t.attr("style",w("transform, opacity","linear, linear","50ms, 50ms")+"opacity: 0;transform: translateX(-"+32*n+"px) translateY(32px);")),n++,t.on("transitionend",function(){t.off("transitionend"),(t.attr("data-id")===l?O:b)(t.attr("data-id")),++a===E.length&&(u.removeClass("opl-posted"),d=!1,r.$apply(),o.resolve())}))}),o.promise}(r.selectedTemplate).then(function(){I(),A(),P(r.selectedTemplate)})})):(A(),I())}}}})}e.controller("OplTemplateSelectorController",t),t.$inject=["$element","$scope","$timeout","$filter","$q","$window","oplEventsFactory"]}(angular.module("ov.player")),angular.module("ov.player").component("oplPlayer",{templateUrl:"opl-player.html",controller:"OplPlayerController",bindings:{oplData:"<",oplFullscreenIcon:"@?",oplVolumeIcon:"@?",oplTemplate:"@?",oplTemplateIcon:"@?",oplSettingsIcon:"@?",oplTime:"@?",oplFullViewport:"@?",oplLanguage:"@?",oplPlayerType:"@?",oplAutoPlay:"@?",oplRememberPosition:"@?",oplChapters:"@?",oplIndexes:"@?",oplTags:"@?",oplCuts:"@?",oplStartTime:"@?"}}),angular.module("ov.player").component("oplTemplateSelector",{templateUrl:"opl-templateSelector.html",controller:"OplTemplateSelectorController",bindings:{oplTemplate:"@?",oplLabel:"@?",oplOnUpdate:"&",oplOnFocus:"&"}}),function(){function e(o,l,t,e,n,a,r,i,s){var u,c,p,d,f,m,g,h,v,y,E,T,S,O,b,I,A,w,_,C,L,P,R=this,D=!1,V=!1,$=!1,N=!1,k=!1;function M(){if(!C||I)return a.when();var e=a.defer();return O=C=!1,c.removeClass("opl-activation"),c.addClass("opl-deactivation"),w=t(function(){c.removeClass("opl-deactivation"),e.resolve()},150),e.promise}function F(){if(!L||A)return a.when();var e=a.defer();return b=L=!1,E.removeClass("opl-attachment-activation"),E.addClass("opl-attachment-deactivation"),_=t(function(){E.removeClass("opl-attachment-deactivation"),e.resolve()},150),e.promise}function U(){return g&&g.length?g[0].clientHeight:0}function q(){return y&&y.length?y[0].clientHeight:0}function x(e){u.off(s.EVENTS.UP,x),requestAnimationFrame(function(){C=!0,M()}),O=!1,R.oplOnSelect&&R.oplOnSelect({tile:R.oplData})}function B(e){O||(O=!0,requestAnimationFrame(function(){var e;e=a.defer(),c.removeClass("opl-deactivation"),I&&t.cancel(I),w&&t.cancel(w),c.addClass("opl-activation"),I=t(function(){I=null,requestAnimationFrame(function(){M().then(function(){e.resolve()})})},225),e.promise}),u.on(s.EVENTS.UP,x))}function j(e){u.off(s.EVENTS.UP,j),requestAnimationFrame(function(){L=!0,F()}),b=!1}function H(e){b||(b=!0,requestAnimationFrame(function(){var e;e=a.defer(),E.removeClass("opl-attachment-deactivation"),A&&t.cancel(A),_&&t.cancel(_),E.addClass("opl-attachment-activation"),A=t(function(){A=null,requestAnimationFrame(function(){F().then(function(){e.resolve()})})},225),e.promise}),u.on(s.EVENTS.UP,j))}function z(e){(R.oplAbstract?function(e){if("Enter"===e.key||13===e.keyCode)R.oplOnSelect&&R.oplOnSelect({tile:R.oplData});else{if("ArrowUp"!==e.key&&38!==e.keyCode&&"ArrowDown"!==e.key&&40!==e.keyCode)return;var t=p.controller("oplButton");(t.isFocused()?R:t).focus()}e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault()}:function(e){if("ArrowUp"===e.key||38===e.keyCode||"ArrowLeft"===e.key||37===e.keyCode)if(S.isFocused())E?E[0].focus():v&&v.focus();else if(v&&v.isFocused())S.focus();else{if(!E||!E.hasClass("opl-focus"))return;(v||S).focus()}else if("ArrowDown"===e.key||40===e.keyCode||"ArrowRight"===e.key||39===e.keyCode)if(S.isFocused())v?v.focus():E&&E[0].focus();else if(v&&v.isFocused())(E?E[0]:S).focus();else{if(!E||!E.hasClass("opl-focus"))return;S.focus()}else{if(("Enter"!==e.key&&13!==e.keyCode||!S.isFocused())&&"Escape"!==e.key&&27!==e.keyCode)return;R.oplOnClose&&R.oplOnClose()}e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault()})(e)}function W(e){c.addClass("opl-focus")}function G(e){c.removeClass("opl-focus")}function Q(e){E.addClass("opl-focus")}function X(e){E.removeClass("opl-focus")}function Y(e){c.hasClass("opl-over")||c.addClass("opl-over")}function K(e){c.hasClass("opl-over")&&c.removeClass("opl-over")}function J(){c.off(s.EVENTS.DOWN+" focus blur keydown"),s.EVENTS.OVER&&(d&&d.off(s.EVENTS.OVER+" "+s.EVENTS.OUT),f&&f.off(s.EVENTS.OVER+" "+s.EVENTS.OUT),m&&m.off(s.EVENTS.OVER+" "+s.EVENTS.OUT)),E&&E.off(s.EVENTS.DOWN+" focus blur"),u.off(s.EVENTS.UP,x),u.off(s.EVENTS.UP,j)}Object.defineProperties(R,{smallImagePreloading:{value:!1,writable:!0},smallImageError:{value:!1,writable:!0},largeImagePreloading:{value:!1,writable:!0},smallImagePreloaded:{value:!1,writable:!0},largeImageSize:{value:null,writable:!0},largeImageError:{value:!1,writable:!0},fileName:{value:null,writable:!0},focus:{value:function(){c&&c.length&&(R.oplAbstract?c[0].focus():S&&S.focus())}},isFocused:{value:function(){return c.hasClass("opl-focus")}},preload:{value:function(){"image"!==R.oplData.type||R.smallImagePreloaded||R.oplData.image&&R.oplData.image.small&&!R.smallImagePreloading&&(R.smallImagePreloading=!0,e.get(R.oplData.image.small.url).then(function(){R.smallImagePreloading=!1,R.smallImageError=!1,R.smallImagePreloaded=!0}).catch(function(){R.smallImagePreloading=!1,R.smallImagePreloaded=!0,R.smallImageError=!0}))}},getTileHeight:{value:function(){return U()+o.descriptionHeight+q()+16}},reset:{value:function(){var e;k&&($?N=!0:($=!(D=!(e=[])),V=!R.oplData.description,c=angular.element(l[0].querySelector(".opl-tile")),R.oplAbstract?e.push(i.waitForElement(l[0],".opl-abstract")):e.push(i.waitForElement(l[0],".opl-full")),a.all(e).then(function(){var e,t;return R.oplAbstract?(d=angular.element(l[0].querySelector(".opl-abstract .opl-title")),m=angular.element(l[0].querySelector(".opl-abstract .opl-access-time")),p=angular.element(l[0].querySelector(".opl-abstract opl-button")),f=angular.element(l[0].querySelector(".opl-abstract .opl-access-time-icon"))):(R.oplData.title&&(g=angular.element(l[0].querySelector(".opl-full .opl-title"))),R.oplData.description&&(h=angular.element(l[0].querySelector(".opl-full opl-scroller"))),R.oplData.file&&(y=angular.element(l[0].querySelector(".opl-full .opl-attachment")),E=angular.element(y[0].querySelector("a"))),T=angular.element(l[0].querySelector(".opl-close-button opl-button"))),J(),R.oplAbstract?(s.EVENTS.OVER&&(d.on(s.EVENTS.OVER,Y),d.on(s.EVENTS.OUT,K),f.on(s.EVENTS.OVER,Y),f.on(s.EVENTS.OUT,K),m.on(s.EVENTS.OVER,Y),m.on(s.EVENTS.OUT,K)),c.on(s.EVENTS.DOWN,B)):E&&(E.on(s.EVENTS.DOWN,H),E.on("focus",Q),E.on("blur",X)),c.on("focus",W),c.on("blur",G),c.on("keydown",z),R.oplData.file&&(e=R.oplData.file.url.match(/.*\/([^#?]*)/),R.fileName=e[1]),t=a.defer(),i.waitForElementDimension(c[0],[{property:"clientHeight",notEqual:0}]).then(function(e){t.resolve(e.clientHeight)},function(){t.resolve(c[0].clientHeight)}),t.promise}).then(function(e){P=e;var t,l=[];R.oplAbstract?R.oplOnReady&&($=!(D=!0),R.oplOnReady&&R.oplOnReady(),N&&(N=!1,R.reset())):(o.descriptionHeight=P&&R.oplData.description?P-U()-q()-16:0,R.oplData.description&&(e=i.waitForController(h[0],"oplScroller"),l.push(e),e.then(function(e){(v=e).reset()})),R.oplData.image&&R.oplData.image&&R.oplData.image.large&&!R.largeImagePreloading&&(R.largeImagePreloading=!0,(t=new Image).onload=function(){R.largeImagePreloading=!1,R.largeImageError=!1,R.largeImageSize={width:this.naturalWidth,height:this.naturalHeight},R.oplOnImagePreloaded&&R.oplOnImagePreloaded({tile:R.oplData,size:R.largeImageSize})},t.onerror=function(){R.largeImagePreloading=!1,R.largeImageError=!0,R.oplOnImageError&&R.oplOnImageError({tile:R.oplData})},t.src=R.oplData.image.large),t=i.waitForController(T[0],"oplButton"),l.push(t),t.then(function(e){S=e}),a.all(l).then(function(){$=!(D=!0),R.oplOnReady&&V&&R.oplOnReady(),N&&(N=!1,R.reset())}))})))}},$onInit:{value:function(){u=angular.element(r.document.body),o.descriptionHeight=0}},$postLink:{value:function(){k=!0,R.reset()}},$onChanges:{value:function(e){e.oplAbstract&&void 0!==e.oplAbstract.currentValue?t(function(){R.reset()}):e.oplData&&e.oplData.currentValue&&R.reset()}},$onDestroy:{value:function(){J()}}}),o.getTrustedHtml=function(e){return n.trustAsHtml(e)},o.handleMoreInfoAction=function(){R.oplOnMore&&R.oplOnMore({tile:R.oplData})},o.handleCloseAction=function(){R.oplOnClose&&R.oplOnClose({tile:R.oplData})},o.handleDescriptionScrollerOnReady=function(){V=!0,D&&R.oplOnReady&&R.oplOnReady()}}angular.module("ov.player").controller("OplTileController",e),e.$inject=["$scope","$element","$timeout","$http","$sce","$q","$window","oplDomFactory","oplEventsFactory"]}(),function(){function e(e,l,i,o,t,s,u,c,p){var d,f,m,n,g,h,v,y,a,E,r,T,S,O,b=this,I=null,A=null,w=8,_=40,C=t[0],L=0,P=!1,R=!1,D=!1,V=!1;function $(e,t){e=e||0,t=t||0;var l=h.controller("oplScroller").getScrollValue(),o=v&&v.height||0,n=v&&v.width||0,a=y.height-2*w-_,r=y.width-2*w;d.attr("style","--opl-tiles-enlarged-height: "+o+"px;--opl-tiles-enlarged-width: "+n+"px;--opl-tiles-enlarged-xpos: "+(l+w+(r-n)/2)+"px;--opl-tiles-enlarged-ypos: "+-(a-o)/2+"px;--opl-tiles-resized-height: "+t+"px;--opl-tiles-resized-width: "+e+"px;--opl-tiles-resized-xpos: "+(l+w+(r-e)/2)+"px;--opl-tiles-resized-ypos: "+-(a-t)/2+"px;")}function N(e){angular.element(f[e]).controller("oplTile").focus()}function k(e){for(var t=0,l=0;l<f.length;l++)if(angular.element(f[l]).controller("oplTile").isFocused()){t=l;break}e=e?t+1:t-1;N(e=(e=e>=f.length?0:e)<0?f.length-1:e)}function M(e){var t,l;m&&m.length&&(l=a.width,t=m[e],l=(e+1)*w+e*l,angular.element(t).attr("style","transform: translateX("+(I===e?"var(--opl-tiles-enlarged-xpos)":l+"px")+") translateY("+(I===e?"var(--opl-tiles-enlarged-ypos)":"0")+");--opl-tiles-reduced-xpos: "+l+"px;--opl-tiles-reduced-ypos: 0px;"))}function F(){var e=function(){if(y&&a){var e=h.controller("oplScroller").getScrollValue(),t=Math.round(m.length-(E-e)/(w+a.width)),e=Math.round(y.width/(w+a.width));return m.slice(t,t+e).map(function(e){return e.querySelector("opl-tile")})}}();e&&e.forEach(function(e){angular.element(e).controller("oplTile")&&angular.element(e).controller("oplTile").preload()})}function U(e){if(b.oplData&&f)for(var t,l=function(e){for(var t=0,l=0;l<f.length;l++){var o=angular.element(f[l]).controller("oplTile");if(o&&o.oplData.time>e)break;t=l}retu