src/js/tracks/html-track-element-list.js
/**
* @file html-track-element-list.js
*/
import * as browser from '../utils/browser.js';
import document from 'global/document';
class HtmlTrackElementList {
constructor(trackElements = []) {
let list = this;
if (browser.IS_IE8) {
list = document.createElement('custom');
for (let prop in HtmlTrackElementList.prototype) {
if (prop !== 'constructor') {
list[prop] = HtmlTrackElementList.prototype[prop];
}
}
}
list.trackElements_ = [];
Object.defineProperty(list, 'length', {
get() {
return this.trackElements_.length;
}
});
for (let i = 0, length = trackElements.length; i < length; i++) {
list.addTrackElement_(trackElements[i]);
}
if (browser.IS_IE8) {
return list;
}
}
addTrackElement_(trackElement) {
this.trackElements_.push(trackElement);
}
getTrackElementByTrack_(track) {
let trackElement_;
for (let i = 0, length = this.trackElements_.length; i < length; i++) {
if (track === this.trackElements_[i].track) {
trackElement_ = this.trackElements_[i];
break;
}
}
return trackElement_;
}
removeTrackElement_(trackElement) {
for (let i = 0, length = this.trackElements_.length; i < length; i++) {
if (trackElement === this.trackElements_[i]) {
this.trackElements_.splice(i, 1);
break;
}
}
}
}
export default HtmlTrackElementList;