: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
return arguments.length <= 4 ? undefined : arguments[4];
if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
return arguments.length <= 1 ? undefined : arguments[1];
} else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
return arguments.length <= 2 ? undefined : arguments[2];
return arguments.length <= 3 ? undefined : arguments[3];
return _pluralForms[form].apply(null, [number].concat(input));
if (i18n[language] !== undefined) {
str = i18n[language][message];
if (pluralParam !== null && typeof pluralParam === 'number') {
pluralForm = i18n[language]['mejs.plural-form'];
str = _plural.apply(null, [str, pluralParam, pluralForm]);
if (pluralParam !== null && typeof pluralParam === 'number') {
pluralForm = i18n.en['mejs.plural-form'];
str = _plural.apply(null, [str, pluralParam, pluralForm]);
if (pluralParam !== null && typeof pluralParam === 'number') {
str = str.replace('%1', pluralParam);
return (0, _general.escapeHTML)(str);
_mejs2.default.i18n = i18n;
if (typeof mejsL10n !== 'undefined') {
_mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings);
},{"18":18,"7":7,"9":9}],6:[function(_dereq_,module,exports){
Object.defineProperty(exports, "__esModule", {
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _window = _dereq_(3);
var _window2 = _interopRequireDefault(_window);
var _document = _dereq_(2);
var _document2 = _interopRequireDefault(_document);
var _mejs2 = _interopRequireDefault(_mejs);
var _general = _dereq_(18);
var _media2 = _dereq_(19);
var _renderer = _dereq_(8);
var _constants = _dereq_(16);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var MediaElement = function MediaElement(idOrNode, options, sources) {
_classCallCheck(this, MediaElement);
sources = Array.isArray(sources) ? sources : null;
fakeNodeName: 'mediaelementwrapper',
shimScriptAccess: 'sameDomain'
options = Object.assign(t.defaults, options);
t.mediaElement = _document2.default.createElement(options.fakeNodeName);
if (typeof idOrNode === 'string') {
t.mediaElement.originalNode = _document2.default.getElementById(idOrNode);
t.mediaElement.originalNode = idOrNode;
if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) {
t.mediaElement.options = options;
id = id || 'mejs_' + Math.random().toString().slice(2);
t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs');
var tagName = t.mediaElement.originalNode.tagName.toLowerCase();
if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) {
t.mediaElement.originalNode.setAttribute('preload', 'none');
t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode);
t.mediaElement.appendChild(t.mediaElement.originalNode);
var processURL = function processURL(url, type) {
if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
var _url = _window2.default.URL || _window2.default.webkitURL,
blobUrl = _url.createObjectURL(this.response);
t.mediaElement.originalNode.setAttribute('src', blobUrl);
xhr.responseType = 'blob';
} else if (t.mediaElement.originalNode !== null) {
switch (t.mediaElement.originalNode.nodeName.toLowerCase()) {
src: t.mediaElement.originalNode.getAttribute('src')
var _sources = t.mediaElement.originalNode.children.length,
nodeSource = t.mediaElement.originalNode.getAttribute('src');
var node = t.mediaElement.originalNode,
type = (0, _media2.formatType)(nodeSource, node.getAttribute('type'));
src: processURL(nodeSource, type)
for (var i = 0; i < _sources; i++) {
var n = t.mediaElement.originalNode.children[i];
if (n.tagName.toLowerCase() === 'source') {
var src = n.getAttribute('src'),
_type = (0, _media2.formatType)(src, n.getAttribute('type'));
mediaFiles.push({ type: _type, src: processURL(src, _type) });
t.mediaElement.renderers = {};
t.mediaElement.events = {};
t.mediaElement.promises = [];
t.mediaElement.renderer = null;
t.mediaElement.rendererName = null;
t.mediaElement.changeRenderer = function (rendererName, mediaFiles) {
media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src;
if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) {
t.mediaElement.renderer.pause();
if (t.mediaElement.renderer.stop) {
t.mediaElement.renderer.stop();
t.mediaElement.renderer.show();
t.mediaElement.renderer.setSrc(media);
if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
t.mediaElement.renderer.pause();
if (t.mediaElement.renderer.stop) {
t.mediaElement.renderer.stop();
t.mediaElement.renderer.hide();
var newRenderer = t.mediaElement.renderers[rendererName],
if (newRenderer !== undefined && newRenderer !== null) {
newRenderer.setSrc(media);
t.mediaElement.renderer = newRenderer;
t.mediaElement.rendererName = rendererName;
var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order;
for (var _i = 0, total = rendererArray.length; _i < total; _i++) {
var index = rendererArray[_i];
if (index === rendererName) {
var rendererList = _renderer.renderer.renderers;
newRendererType = rendererList[index];
var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options);
newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles);
newRenderer.name = rendererName;
t.mediaElement.renderers[newRendererType.name] = newRenderer;
t.mediaElement.renderer = newRenderer;
t.mediaElement.rendererName = rendererName;
t.mediaElement.setSize = function (width, height) {
if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
t.mediaElement.renderer.setSize(width, height);
t.mediaElement.generateError = function (message, urlList) {
urlList = Array.isArray(urlList) ? urlList : [];
var event = (0, _general.createEvent)('error', t.mediaElement);
t.mediaElement.dispatchEvent(event);
var props = _mejs2.default.html5media.properties,
methods = _mejs2.default.html5media.methods,
addProperty = function addProperty(obj, name, onGet, onSet) {
var oldValue = obj[name];
var getFn = function getFn() {
return onGet.apply(obj, [oldValue]);
setFn = function setFn(newValue) {
oldValue = onSet.apply(obj, [newValue]);
Object.defineProperty(obj, name, {
assignGettersSetters = function assignGettersSetters(propName) {
if (propName !== 'src') {
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1),
getFn = function getFn() {
return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null;
setFn = function setFn(value) {
if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') {
t.mediaElement.renderer['set' + capName](value);
addProperty(t.mediaElement, propName, getFn, setFn);
t.mediaElement['get' + capName] = getFn;
t.mediaElement['set' + capName] = setFn;
getSrc = function getSrc() {
return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null;
setSrc = function setSrc(value) {
if (typeof value === 'string') {
type: value ? (0, _media2.getTypeFromFile)(value) : ''
} else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) {
var _src = (0, _media2.absolutizeUrl)(value.src),
media = Object.assign(value, {
type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2
} else if (Array.isArray(value)) {
for (var _i2 = 0, total = value.length; _i2 < total; _i2++) {
var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src),
_type3 = value[_i2].type,
_media = Object.assign(value[_i2], {
type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3
var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []),
if (!t.mediaElement.paused && !(t.mediaElement.src == null || t.mediaElement.src === '')) {
event = (0, _general.createEvent)('pause', t.mediaElement);
t.mediaElement.dispatchEvent(event);
t.mediaElement.originalNode.src = mediaFiles[0].src || '';
if (renderInfo === null && mediaFiles[0].src) {
t.mediaElement.generateError('No renderer found', mediaFiles);
var shouldChangeRenderer = !(mediaFiles[0].src == null || mediaFiles[0].src === '');
return shouldChangeRenderer ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null;
triggerAction = function triggerAction(methodName, args) {
if (methodName === 'play' && (t.mediaElement.rendererName === 'native_dash' || t.mediaElement.rendererName === 'native_hls' || t.mediaElement.rendererName === 'vimeo_iframe')) {
var response = t.mediaElement.renderer[methodName](args);
if (response && typeof response.then === 'function') {
response.catch(function () {
if (t.mediaElement.paused) {
var tmpResponse = t.mediaElement.renderer.play();
if (tmpResponse !== undefined) {
tmpResponse.catch(function () {
if (!t.mediaElement.renderer.paused) {
t.mediaElement.renderer.pause();
t.mediaElement.renderer[methodName](args);
t.mediaElement.generateError(e, mediaFiles);
assignMethods = function assignMethods(methodName) {
t.mediaElement[methodName] = function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') {
if (t.mediaElement.promises.length) {
Promise.all(t.mediaElement.promises).then(function () {
triggerAction(methodName, args);
t.mediaElement.generateError(e, mediaFiles);
triggerAction(methodName, args);
addProperty(t.mediaElement, 'src', getSrc, setSrc);
t.mediaElement.getSrc = getSrc;
t.mediaElement.setSrc = setSrc;
for (var _i3 = 0, total = props.length; _i3 < total; _i3++) {
assignGettersSetters(props[_i3]);
for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) {
assignMethods(methods[_i4]);
t.mediaElement.addEventListener = function (eventName, callback) {
t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || [];
t.mediaElement.events[eventName].push(callback);
t.mediaElement.removeEventListener = function (eventName, callback) {
t.mediaElement.events = {};
var callbacks = t.mediaElement.events[eventName];
t.mediaElement.events[eventName] = [];
for (var _i5 = 0; _i5 < callbacks.length; _i5++) {
if (callbacks[_i5] === callback) {
t.mediaElement.events[eventName].splice(_i5, 1);
t.mediaElement.dispatchEvent = function (event) {
var callbacks = t.mediaElement.events[event.type];
for (var _i6 = 0; _i6 < callbacks.length; _i6++) {
callbacks[_i6].apply(null, [event]);
t.mediaElement.destroy = function () {
var mediaElement = t.mediaElement.originalNode.cloneNode(true);
var wrapper = t.mediaElement.parentElement;
mediaElement.removeAttribute('id');
wrapper.appendChild(mediaElement);
t.mediaElement.src = mediaFiles;
if (t.mediaElement.promises.length) {
Promise.all(t.mediaElement.promises).then(function () {
if (t.mediaElement.options.success) {
t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
if (error && t.mediaElement.options.error) {
t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
if (t.mediaElement.options.success) {
t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
if (error && t.mediaElement.options.error) {
t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);