3 exports.__esModule = true;
5 var _browser = require('../utils/browser.js');
7 var browser = _interopRequireWildcard(_browser);
9 var _document = require('global/document');
11 var _document2 = _interopRequireDefault(_document);
13 var _eventTarget = require('../event-target');
15 var _eventTarget2 = _interopRequireDefault(_eventTarget);
17 var _textTrack = require('../tracks/text-track');
19 var _textTrack2 = _interopRequireDefault(_textTrack);
21 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
23 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
25 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
29 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**
30 * @file html-track-element.js
34 * @typedef {HTMLTrackElement~ReadyState}
43 * A single track represented in the DOM.
45 * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
46 * @extends EventTarget
49 var HTMLTrackElement = function (_EventTarget) {
50 _inherits(HTMLTrackElement, _EventTarget);
53 * Create an instance of this class.
55 * @param {Object} options={}
56 * Object of option names and values
58 * @param {Tech} options.tech
59 * A reference to the tech that owns this HTMLTrackElement.
61 * @param {TextTrack~Kind} [options.kind='subtitles']
62 * A valid text track kind.
64 * @param {TextTrack~Mode} [options.mode='disabled']
65 * A valid text track mode.
67 * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
68 * A unique id for this TextTrack.
70 * @param {string} [options.label='']
71 * The menu label for this track.
73 * @param {string} [options.language='']
74 * A valid two character language code.
76 * @param {string} [options.srclang='']
77 * A valid two character language code. An alternative, but deprioritized
78 * vesion of `options.language`
80 * @param {string} [options.src]
81 * A url to TextTrack cues.
83 * @param {boolean} [options.default]
84 * If this track should default to on or off.
86 function HTMLTrackElement() {
87 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89 _classCallCheck(this, HTMLTrackElement);
91 var _this = _possibleConstructorReturn(this, _EventTarget.call(this));
93 var readyState = void 0;
94 var trackElement = _this; // eslint-disable-line
97 trackElement = _document2['default'].createElement('custom');
99 for (var prop in HTMLTrackElement.prototype) {
100 if (prop !== 'constructor') {
101 trackElement[prop] = HTMLTrackElement.prototype[prop];
106 var track = new _textTrack2['default'](options);
108 trackElement.kind = track.kind;
109 trackElement.src = track.src;
110 trackElement.srclang = track.language;
111 trackElement.label = track.label;
112 trackElement['default'] = track['default'];
115 * @member {HTMLTrackElement~ReadyState} readyState
116 * The current ready state of the track element.
118 Object.defineProperty(trackElement, 'readyState', {
119 get: function get() {
125 * @member {TextTrack} track
126 * The underlying TextTrack object.
128 Object.defineProperty(trackElement, 'track', {
129 get: function get() {
137 * @listens TextTrack#loadeddata
138 * @fires HTMLTrackElement#load
140 track.addEventListener('loadeddata', function () {
143 trackElement.trigger({
149 if (browser.IS_IE8) {
152 return _ret = trackElement, _possibleConstructorReturn(_this, _ret);
157 return HTMLTrackElement;
158 }(_eventTarget2['default']);
160 HTMLTrackElement.prototype.allowedEvents_ = {
164 HTMLTrackElement.NONE = NONE;
165 HTMLTrackElement.LOADING = LOADING;
166 HTMLTrackElement.LOADED = LOADED;
167 HTMLTrackElement.ERROR = ERROR;
169 exports['default'] = HTMLTrackElement;