progressbar.js 1.58 KB
define(["css!cmpts/progressbar/progressbar.css"],function(){var r=Dom7;app.setProgressbar=function(s,a,n){if(s=r(s||"body"),0!==s.length){a&&(a=Math.min(Math.max(a,0),100));var e;if(e=s.hasClass("progressbar")?s:s.children(".progressbar"),0!==e.length&&!e.hasClass("progressbar-infinite")){e[0].clientLeft;return e.children("span").transform("translate3d("+(-100+a)+"%,0,0)"),"undefined"!=typeof n?e.children("span").transition(n):e.children("span").transition(""),e[0]}}},app.showProgressbar=function(s,a,n){if("number"==typeof s&&(s="body",a=arguments[0],n=arguments[1]),a&&"string"==typeof a&&parseFloat(a)!==1*a&&(n=a,a=void 0),s=r(s||"body"),0!==s.length){var e;return s.hasClass("progressbar")?e=s:(e=s.children(".progressbar:not(.progressbar-out), .progressbar-infinite:not(.progressbar-out)"),0===e.length&&(e=r("undefined"!=typeof a?'<span class="progressbar progressbar-in'+(n?" color-"+n:"")+'"><span></span></span>':'<span class="progressbar-infinite progressbar-in'+(n?" color-"+n:"")+'"></span>'),s.append(e))),a&&app.setProgressbar(s,a),e[0]}},app.hideProgressbar=function(s){if(s=r(s||"body"),0!==s.length){var a;a=s.hasClass("progressbar")?s:s.children(".progressbar, .progressbar-infinite"),0!==a.length&&a.hasClass("progressbar-in")&&!a.hasClass("progressbar-out")&&a.removeClass("progressbar-in").addClass("progressbar-out").animationEnd(function(){a.remove(),a=null})}},app.initPageProgressbar=function(s){s=r(s),s.find(".progressbar").each(function(){var s=r(this);0===s.children("span").length&&s.append("<span></span>"),s.attr("data-progress")&&app.setProgressbar(s,s.attr("data-progress"))})}});