aboutsummaryrefslogtreecommitdiffstats
path: root/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js')
-rw-r--r--src/js/captions.js24
-rw-r--r--src/js/plyr.js22
2 files changed, 25 insertions, 21 deletions
diff --git a/src/js/captions.js b/src/js/captions.js
index 6682d6f0..24962387 100644
--- a/src/js/captions.js
+++ b/src/js/captions.js
@@ -7,7 +7,7 @@ import controls from './controls';
import i18n from './i18n';
import support from './support';
import browser from './utils/browser';
-import { createElement, emptyElement, getAttributesFromSelector, insertAfter, removeElement, toggleClass } from './utils/elements';
+import { createElement, emptyElement, getAttributesFromSelector, insertAfter, removeElement, toggleClass, toggleState } from './utils/elements';
import { on, triggerEvent } from './utils/events';
import fetch from './utils/fetch';
import is from './utils/is';
@@ -128,6 +128,28 @@ const captions = {
}
},
+ toggle(input) {
+ // If there's no full support
+ if (!this.supported.ui) {
+ return;
+ }
+
+ // If the method is called without parameter, toggle based on current value
+ const active = is.boolean(input) ? input : !this.elements.container.classList.contains(this.config.classNames.captions.active);
+
+ // Toggle state
+ toggleState(this.elements.buttons.captions, active);
+
+ // Add class hook
+ toggleClass(this.elements.container, this.config.classNames.captions.active, active);
+
+ // Update state and trigger event
+ if (active !== this.captions.active) {
+ this.captions.active = active;
+ triggerEvent.call(this, this.media, this.captions.active ? 'captionsenabled' : 'captionsdisabled');
+ }
+ },
+
set(index, setLanguage = true, show = true) {
const tracks = captions.getTracks.call(this);
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 543291e7..4b9697ce 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -19,7 +19,7 @@ import Storage from './storage';
import support from './support';
import ui from './ui';
import { closest } from './utils/arrays';
-import { createElement, hasClass, removeElement, replaceElement, toggleClass, toggleState, wrap } from './utils/elements';
+import { createElement, hasClass, removeElement, replaceElement, toggleClass, wrap } from './utils/elements';
import { off, on, once, triggerEvent, unbindListeners } from './utils/events';
import is from './utils/is';
import loadSprite from './utils/loadSprite';
@@ -833,25 +833,7 @@ class Plyr {
* @param {boolean} input - Whether to enable captions
*/
toggleCaptions(input) {
- // If there's no full support
- if (!this.supported.ui) {
- return;
- }
-
- // If the method is called without parameter, toggle based on current value
- const active = is.boolean(input) ? input : !this.elements.container.classList.contains(this.config.classNames.captions.active);
-
- // Toggle state
- toggleState(this.elements.buttons.captions, active);
-
- // Add class hook
- toggleClass(this.elements.container, this.config.classNames.captions.active, active);
-
- // Update state and trigger event
- if (active !== this.captions.active) {
- this.captions.active = active;
- triggerEvent.call(this, this.media, this.captions.active ? 'captionsenabled' : 'captionsdisabled');
- }
+ captions.toggle.call(this, input);
}
/**