@playkit-js/player-caption-manager
Version:
playkit-js-player-caption-manager is a [Kaltura Player] plugin that allows admins to control which caption languages are visible to end users by comparing a configurable whitelist (whiteListedLanguages) with the entry’s available caption tracks and displa
2 lines • 6.01 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("KalturaPlayer",[],t):"object"==typeof exports?exports.KalturaPlayer=t():(e.KalturaPlayer=e.KalturaPlayer||{},e.KalturaPlayer.plugins=e.KalturaPlayer.plugins||{},e.KalturaPlayer.plugins["player-caption-manager"]=t())}(self,(()=>(()=>{"use strict";var e={};(e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})})(e);const t=KalturaPlayer;function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e){var t=function(e,t){if("object"!=o(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:String(t)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function c(e,t,r){return t=l(t),function(e,t){if(t&&("object"===o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,f()?Reflect.construct(t,r||[],l(e).constructor):t.apply(e,r))}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}var s,y,p,d=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,t,arguments)}var r,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(t,e),r=t,i=[{key:"isValid",value:function(){return!0}}],(o=[{key:"hideCaptionsAndUI",value:function(){this.logger.info("Hiding captions menu and UI elements"),this.player.hideTextTrack(),this.watchForNewElements(".playkit-control-button-container.playkit-control-closed-captions",(function(e){e.remove()})),this.watchForNewElements(".playkit-smart-container-item.playkit-select-menu-item",(function(e){e.querySelector('label[id="captions"]')&&e.remove()}))}},{key:"loadMedia",value:function(){var e=this;this.eventManager.listen(this.player,this.player.Event.Core.LOADED_METADATA,(function(t){var r=e.player.getTracks(),o=Array.isArray(e.config.whiteListedLanguages)&&e.config.whiteListedLanguages.length>0,i=r.filter((function(e){var t=e;return("subtitles"===t._kind||"captions"===t._kind)&&t._language}));if(o&&0!==i.length){var a=i.filter((function(t){var r,n=t;return null===(r=e.config.whiteListedLanguages)||void 0===r?void 0:r.includes(n._language)})).map((function(e){return e._label})),l=n(new Set(a));if(0!==l.length){var u=[].concat(n(l),["Off","Advanced captions settings"]);e.player.hideTextTrack(),e.watchForNewElements('.playkit-dropdown[name="captions"] .playkit-dropdown-menu .playkit-dropdown-menu-item',(function(e){var t=e.querySelector("span"),r=null==t?void 0:t.getAttribute("aria-label");r&&!u.includes(r)&&e.remove()}))}else e.hideCaptionsAndUI()}else e.hideCaptionsAndUI()}))}},{key:"watchForNewElements",value:function(e,t){var r=document.querySelectorAll(e);r.length>0&&r.forEach((function(e){return t(e)}));var n=new MutationObserver((function(r){r.forEach((function(r){"childList"===r.type&&r.addedNodes.forEach((function(r){if(1===r.nodeType){var n=r;if(n.matches&&n.matches(e)&&t(n),n.querySelectorAll){var o=n.querySelectorAll(e);o.length>0&&o.forEach((function(e){return t(e)}))}}}))}))}));return n.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}),n}},{key:"reset",value:function(){this.logger.info("'reset' lifecycle hook - called on change media'\n '(every time player.setMedia() / player.loadMedia() API are called)'\n 'state reset/re-initialization (for new media/entry) should be executed here...'")}},{key:"destroy",value:function(){this.logger.info("'destroy' lifecycle hook - called when player.destroy() API is called)'\n 'cleanup logic should be executed here...'")}}])&&a(r.prototype,o),i&&a(r,i),Object.defineProperty(r,"prototype",{writable:!1}),t}(t.BasePlugin);return s=d,p={whiteListedLanguages:[]},(y=i(y="defaultConfig"))in s?Object.defineProperty(s,y,{value:p,enumerable:!0,configurable:!0,writable:!0}):s[y]=p,(0,t.registerPlugin)("playkit-player-caption-manager",d),e})()));
//# sourceMappingURL=playkit-player-caption-manager.js.map