progress.js (811B)
1 import ko from 'knockout'; 2 import './style.css'; 3 import '~/lib/controls-styles/controls-styles.css'; 4 5 ko.components.register('progress-indicator', { 6 template: ` 7 <div class="ko-progress-unknown icon-spinner-nuclear" data-bind="visible: progress() === undefined"></div> 8 <div class="ko-progress" data-bind="visible: progress() !== undefined"> 9 <div class="ko-progress-bkg"> 10 <div class="ko-progress-bar" data-bind="style: {width: progress() + '%'}"></div> 11 </div> 12 </div>`, 13 viewModel: function(params) { 14 this.progress = ko.pureComputed(function() { 15 var range = params.progressRange(), 16 done = params.progressDone(); 17 return done === undefined ? undefined : done * 100 / range; 18 }); 19 } 20 });