'use strict' const Progress = keys => { const allKeys = new Set(keys.filter(key => key)) const loadedKeys = new Set() const failedKeys = new Set() const done = () => loadedKeys.size === allKeys.size const className = () => done() ? 'done' : 'busy' const formatPercentLoaded = () => ` ${Math.round(100 * loadedKeys.size / Math.max(allKeys.size, 1))}% loaded ` const formatFailureCount = () => failedKeys.size === 0 ? '' : `(${failedKeys.size} failed)` const formatProgress = () => done() ? '' : `
` const render = () => `${formatPercentLoaded()} ${formatFailureCount()}
${formatProgress()}