v3.2.4
This commit is contained in:
		
							
								
								
									
										61
									
								
								src/js/controls.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								src/js/controls.js
									
									
									
									
										vendored
									
									
								
							| @ -210,7 +210,6 @@ const controls = { | ||||
|  | ||||
|             // Add aria attributes | ||||
|             attributes['aria-pressed'] = false; | ||||
|             attributes['aria-label'] = i18n.get(label, this.config); | ||||
|         } else { | ||||
|             button.appendChild(controls.createIcon.call(this, icon)); | ||||
|             button.appendChild(controls.createLabel.call(this, label)); | ||||
| @ -327,22 +326,14 @@ const controls = { | ||||
|  | ||||
|     // Create time display | ||||
|     createTime(type) { | ||||
|         const container = utils.createElement('div', { | ||||
|             class: 'plyr__time', | ||||
|         }); | ||||
|         const attributes = utils.getAttributesFromSelector(this.config.selectors.display[type]); | ||||
|  | ||||
|         container.appendChild( | ||||
|             utils.createElement( | ||||
|                 'span', | ||||
|                 { | ||||
|                     class: this.config.classNames.hidden, | ||||
|                 }, | ||||
|                 i18n.get(type, this.config), | ||||
|             ), | ||||
|         ); | ||||
|  | ||||
|         container.appendChild(utils.createElement('span', utils.getAttributesFromSelector(this.config.selectors.display[type]), '00:00')); | ||||
|         const container = utils.createElement('div', utils.extend(attributes, { | ||||
|             class: `plyr__time ${attributes.class}`, | ||||
|             'aria-label': i18n.get(type, this.config), | ||||
|         }), '0:00'); | ||||
|  | ||||
|         // Reference for updates | ||||
|         this.elements.display[type] = container; | ||||
|  | ||||
|         return container; | ||||
| @ -1204,17 +1195,21 @@ const controls = { | ||||
|         let container = null; | ||||
|         this.elements.controls = null; | ||||
|  | ||||
|         // HTML or Element passed as the option | ||||
|         // Set template properties | ||||
|         const props = { | ||||
|             id: this.id, | ||||
|             seektime: this.config.seekTime, | ||||
|             title: this.config.title, | ||||
|         }; | ||||
|         let update = true; | ||||
|  | ||||
|         if (utils.is.string(this.config.controls) || utils.is.element(this.config.controls)) { | ||||
|             // String or HTMLElement passed as the option | ||||
|             container = this.config.controls; | ||||
|         } else if (utils.is.function(this.config.controls)) { | ||||
|             // A custom function to build controls | ||||
|             // The function can return a HTMLElement or String | ||||
|             container = this.config.controls({ | ||||
|                 id: this.id, | ||||
|                 seektime: this.config.seekTime, | ||||
|                 title: this.config.title, | ||||
|             }); | ||||
|             container = this.config.controls.call(this, props); | ||||
|         } else { | ||||
|             // Create controls | ||||
|             container = controls.create.call(this, { | ||||
| @ -1226,6 +1221,30 @@ const controls = { | ||||
|                 // TODO: Looping | ||||
|                 // loop: 'None', | ||||
|             }); | ||||
|             update = false; | ||||
|         } | ||||
|  | ||||
|         // Replace props with their value | ||||
|         const replace = input => { | ||||
|             let result = input; | ||||
|  | ||||
|             Object.entries(props).forEach(([ | ||||
|                 key, | ||||
|                 value, | ||||
|             ]) => { | ||||
|                 result = utils.replaceAll(result, `{${key}}`, value); | ||||
|             }); | ||||
|  | ||||
|             return result; | ||||
|         }; | ||||
|  | ||||
|         // Update markup | ||||
|         if (update) { | ||||
|             if (utils.is.string(this.config.controls)) { | ||||
|                 container = replace(container); | ||||
|             } else if (utils.is.element(container)) { | ||||
|                 container.innerHTML = replace(container.innerHTML); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Controls container | ||||
|  | ||||
| @ -56,7 +56,7 @@ const defaults = { | ||||
|     // Sprite (for icons) | ||||
|     loadSprite: true, | ||||
|     iconPrefix: 'plyr', | ||||
|     iconUrl: 'https://cdn.plyr.io/3.2.3/plyr.svg', | ||||
|     iconUrl: 'https://cdn.plyr.io/3.2.4/plyr.svg', | ||||
|  | ||||
|     // Blank video (used to prevent errors on source change) | ||||
|     blankVideo: 'https://cdn.plyr.io/static/blank.mp4', | ||||
|  | ||||
| @ -70,7 +70,7 @@ class Fullscreen { | ||||
|         // Fullscreen toggle on double click | ||||
|         utils.on(this.player.elements.container, 'dblclick', event => { | ||||
|             // Ignore double click in controls | ||||
|             if (this.player.elements.controls.contains(event.target)) { | ||||
|             if (utils.is.element(this.player.elements.controls) && this.player.elements.controls.contains(event.target)) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|  | ||||
| @ -253,7 +253,7 @@ class Listeners { | ||||
|         utils.on(this.player.media, 'timeupdate seeking', event => ui.timeUpdate.call(this.player, event)); | ||||
|  | ||||
|         // Display duration | ||||
|         utils.on(this.player.media, 'durationchange loadedmetadata', event => ui.durationUpdate.call(this.player, event)); | ||||
|         utils.on(this.player.media, 'durationchange loadeddata loadedmetadata', event => ui.durationUpdate.call(this.player, event)); | ||||
|  | ||||
|         // Check for audio tracks on load | ||||
|         // We can't use `loadedmetadata` as it doesn't seem to have audio tracks at that point | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| // ========================================================================== | ||||
| // Plyr | ||||
| // plyr.js v3.2.3 | ||||
| // plyr.js v3.2.4 | ||||
| // https://github.com/sampotts/plyr | ||||
| // License: The MIT License (MIT) | ||||
| // ========================================================================== | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| // ========================================================================== | ||||
| // Plyr Polyfilled Build | ||||
| // plyr.js v3.2.3 | ||||
| // plyr.js v3.2.4 | ||||
| // https://github.com/sampotts/plyr | ||||
| // License: The MIT License (MIT) | ||||
| // ========================================================================== | ||||
|  | ||||
| @ -48,11 +48,6 @@ const ui = { | ||||
|             this.listeners.controls(); | ||||
|         } | ||||
|  | ||||
|         // If there's no controls, bail | ||||
|         if (!utils.is.element(this.elements.controls)) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // Remove native controls | ||||
|         ui.toggleNativeControls.call(this); | ||||
|  | ||||
| @ -277,10 +272,10 @@ const ui = { | ||||
|         } | ||||
|  | ||||
|         // Always display hours if duration is over an hour | ||||
|         const displayHours = utils.getHours(this.duration) > 0; | ||||
|         const forceHours = utils.getHours(this.duration) > 0; | ||||
|  | ||||
|         // eslint-disable-next-line no-param-reassign | ||||
|         target.textContent = utils.formatTime(time, displayHours, inverted); | ||||
|         target.textContent = utils.formatTime(time, forceHours, inverted); | ||||
|     }, | ||||
|  | ||||
|     // Handle time change event | ||||
|  | ||||
| @ -468,8 +468,8 @@ const utils = { | ||||
|             // Display | ||||
|             this.elements.display = { | ||||
|                 buffer: utils.getElement.call(this, this.config.selectors.display.buffer), | ||||
|                 duration: utils.getElement.call(this, this.config.selectors.display.duration), | ||||
|                 currentTime: utils.getElement.call(this, this.config.selectors.display.currentTime), | ||||
|                 duration: utils.getElement.call(this, this.config.selectors.display.duration), | ||||
|             }; | ||||
|  | ||||
|             // Seek tooltip | ||||
|  | ||||
		Reference in New Issue
	
	Block a user