1. 1 : /**
  2. 2 : * @file loading-spinner.js
  3. 3 : */
  4. 4 : import Component from './component';
  5. 5 : import * as Dom from './utils/dom';
  6. 6 :
  7. 7 : /**
  8. 8 : * A loading spinner for use during waiting/loading events.
  9. 9 : *
  10. 10 : * @extends Component
  11. 11 : */
  12. 12 : class LoadingSpinner extends Component {
  13. 13 :
  14. 14 : /**
  15. 15 : * Create the `LoadingSpinner`s DOM element.
  16. 16 : *
  17. 17 : * @return {Element}
  18. 18 : * The dom element that gets created.
  19. 19 : */
  20. 20 : createEl() {
  21. 21 : const isAudio = this.player_.isAudio();
  22. 22 : const playerType = this.localize(isAudio ? 'Audio Player' : 'Video Player');
  23. 23 : const controlText = Dom.createEl('span', {
  24. 24 : className: 'vjs-control-text',
  25. 25 : textContent: this.localize('{1} is loading.', [playerType])
  26. 26 : });
  27. 27 :
  28. 28 : const el = super.createEl('div', {
  29. 29 : className: 'vjs-loading-spinner',
  30. 30 : dir: 'ltr'
  31. 31 : });
  32. 32 :
  33. 33 : el.appendChild(controlText);
  34. 34 :
  35. 35 : return el;
  36. 36 : }
  37. 37 :
  38. 38 : /**
  39. 39 : * Update control text on languagechange
  40. 40 : */
  41. 41 : handleLanguagechange() {
  42. 42 : this.$('.vjs-control-text').textContent = this.localize('{1} is loading.', [
  43. 43 : this.player_.isAudio() ? 'Audio Player' : 'Video Player'
  44. 44 : ]);
  45. 45 : }
  46. 46 : }
  47. 47 :
  48. 48 : Component.registerComponent('LoadingSpinner', LoadingSpinner);
  49. 49 : export default LoadingSpinner;