6ea9c645d64f385018644071dad64672db9f9daa
[yaffs-website] / control-bar / text-track-controls / off-text-track-menu-item.js
1 'use strict';
2
3 exports.__esModule = true;
4
5 var _textTrackMenuItem = require('./text-track-menu-item.js');
6
7 var _textTrackMenuItem2 = _interopRequireDefault(_textTrackMenuItem);
8
9 var _component = require('../../component.js');
10
11 var _component2 = _interopRequireDefault(_component);
12
13 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
14
15 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16
17 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; }
18
19 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; } /**
20                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 * @file off-text-track-menu-item.js
21                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 */
22
23
24 /**
25  * A special menu item for turning of a specific type of text track
26  *
27  * @extends TextTrackMenuItem
28  */
29 var OffTextTrackMenuItem = function (_TextTrackMenuItem) {
30   _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
31
32   /**
33    * Creates an instance of this class.
34    *
35    * @param {Player} player
36    *        The `Player` that this class should be attached to.
37    *
38    * @param {Object} [options]
39    *        The key/value store of player options.
40    */
41   function OffTextTrackMenuItem(player, options) {
42     _classCallCheck(this, OffTextTrackMenuItem);
43
44     // Create pseudo track info
45     // Requires options['kind']
46     options.track = {
47       player: player,
48       kind: options.kind,
49       label: options.kind + ' off',
50       'default': false,
51       mode: 'disabled'
52     };
53
54     // MenuItem is selectable
55     options.selectable = true;
56
57     var _this = _possibleConstructorReturn(this, _TextTrackMenuItem.call(this, player, options));
58
59     _this.selected(true);
60     return _this;
61   }
62
63   /**
64    * Handle text track change
65    *
66    * @param {EventTarget~Event} event
67    *        The event that caused this function to run
68    */
69
70
71   OffTextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
72     var tracks = this.player().textTracks();
73     var selected = true;
74
75     for (var i = 0, l = tracks.length; i < l; i++) {
76       var track = tracks[i];
77
78       if (track.kind === this.track.kind && track.mode === 'showing') {
79         selected = false;
80         break;
81       }
82     }
83
84     this.selected(selected);
85   };
86
87   return OffTextTrackMenuItem;
88 }(_textTrackMenuItem2['default']);
89
90 _component2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
91 exports['default'] = OffTextTrackMenuItem;