30 lines
		
	
	
		
			874 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			874 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
(() => {
 | 
						|
  function findActiveStep(steps) {
 | 
						|
    for (let i = 0; i < steps.length; i++) {
 | 
						|
      if (steps[i].className === 'is-active') {
 | 
						|
        return i + 1;
 | 
						|
      }
 | 
						|
    }
 | 
						|
    // The final "Finished" step is never "active".
 | 
						|
    if (steps[steps.length - 1].className === 'done') {
 | 
						|
      return steps.length;
 | 
						|
    }
 | 
						|
    return 0;
 | 
						|
  }
 | 
						|
 | 
						|
  function installStepsSetup() {
 | 
						|
    const steps = document.querySelectorAll('.task-list li');
 | 
						|
    if (steps.length) {
 | 
						|
      const header = document.querySelector('header[role="banner"]');
 | 
						|
      const stepIndicator = document.createElement('div');
 | 
						|
      stepIndicator.className = 'step-indicator';
 | 
						|
      stepIndicator.innerHTML = `${findActiveStep(steps)}/${steps.length}`;
 | 
						|
      header.appendChild(stepIndicator);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  if (document.addEventListener) {
 | 
						|
    document.addEventListener('DOMContentLoaded', installStepsSetup);
 | 
						|
  }
 | 
						|
})();
 |