diff options
author | Albin Larsson <mail@albinlarsson.com> | 2018-06-14 15:58:35 +0200 |
---|---|---|
committer | Albin Larsson <mail@albinlarsson.com> | 2018-06-14 15:58:35 +0200 |
commit | fa5d0ad3162151cb2ecd1737f42d81e18068db5e (patch) | |
tree | dbfacaec3f15d7c7d225dfb5c9dd3bc0ca0a79cb /src/js/captions.js | |
parent | 019e1f80cad34cf40516cd9f039c5220717bf7d0 (diff) | |
download | plyr-fa5d0ad3162151cb2ecd1737f42d81e18068db5e.tar.lz plyr-fa5d0ad3162151cb2ecd1737f42d81e18068db5e.tar.xz plyr-fa5d0ad3162151cb2ecd1737f42d81e18068db5e.zip |
Move toggleCaption internals to captions object
Diffstat (limited to 'src/js/captions.js')
-rw-r--r-- | src/js/captions.js | 24 |
1 files changed, 23 insertions, 1 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); |