ng-table-async
Version:
ngTable wrapper that offers some basic functionality and abstractions for working with asynchronous tables.
11 lines (10 loc) • 6.88 kB
JavaScript
/*
* ng-table-async
* ngTable wrapper that offers some basic functionality and abstractions for working with asynchronous tables.
* @author Andrés Mata Suárez <amatasuarez@gmail.com>
* @version 0.0.20
* @link https://andresmatasuarez.github.io/ng-table-async
* @license MIT
*/
(function(){"use strict";angular.module("ngTableAsync",["ngTable"])}).call(this),function(){"use strict";var n,t,e,a;n=angular.module("ngTableAsync"),e=function(n){var t,e,a;return n=angular.element(n),t=n.html(),t?(a=_.isEmpty(n.find("nta-content"))?n:n.find("nta-content"),t="<td>"+a[0].outerHTML+"</td>"):(e=n.attr("content"),t=e?'<td ng-bind="'+e+'"></td>':"<td></td>"),t},a=function(n){var t;return n=angular.element(n),t=_.isEmpty(n.attr("header"))?"":n.attr("header"),t?t='<th ng-bind="'+t+'"></th>':(_.isEmpty(n.find("nta-content"))||(t=n.find("nta-header").html()),t="<th>"+t+"</th>"),t},t=function(n){return{header:a(n),content:e(n)}},n.directive("ngTableAsync",function(){return{restrict:"E",scope:{options:"="},template:function(n,e){var a,r,l,i,o,s,c,u,d,T;return a=n.find("nta-column"),T=_.map(a,t),l=_.map(T,"header"),r=_.map(T,"content"),s=_.last(n.find("nta-no-data")),c=s?s.outerHTML:"<nta-no-data></nta-no-data>",u=_.last(n.find("nta-pager")),d=u?u.outerHTML:"<nta-pager></nta-pager>",i=_.last(n.find("nta-loading")),o=i?i.outerHTML:"<nta-loading></nta-loading>",'<div class="container-fluid nta-container" ng-show="options.headerIfEmpty || tableParams.total()">\n <div class="row">\n <div class="col-md-12">\n\n <div ng-if="options.pagerOnTop">\n '+d+'\n </div>\n\n <div class="nta-content row">\n <div class="panel panel-default">\n <table ng-table="tableParams" class="table ng-table ng-table-responsive nta-table">\n <thead>\n <tr>\n '+l.join(" ")+'\n </tr>\n </thead>\n\n <tbody>\n <tr ng-repeat="item in $data track by $index">\n '+r.join(" ")+'\n </tr>\n\n <tr class="no-data-container" ng-show="!tableParams.total()">\n <td colspan="'+l.length+'">'+c+'</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div ng-show="loading" class="nta-loading-container">\n '+o+'\n </div>\n\n </div>\n\n <div ng-if="options.pagerOnBottom">\n '+d+'\n </div>\n\n </div>\n </div>\n\n</div>\n\n<div class="container-fluid no-data-container" ng-if="!options.headerIfEmpty" ng-show="!tableParams.total()">\n '+c+"\n</div>\n"},controller:["$scope","$element","$q","ngTableAsyncDefaults","NgTableParams",function(n,t,e,a,r){return n.options=_.merge({pagerOnTop:a.PAGER_ON_TOP,pagerOnBottom:a.PAGER_ON_BOTTOM,defaultPage:a.DEFAULT_PAGE,pageSize:a.PAGE_SIZE,headerIfEmpty:a.HEADER_IF_EMPTY},n.options),n.mainScope=n,n.tableParams=new r({page:n.options.defaultPage,count:n.options.pageSize},{getData:function(t){var a,r,l;return n.loading=!0,l=(t.page()-1)*t.count(),a=t.count(),r=n.options.getPage(l,a),r.then||(r=e.all(r)),r.then(function(t){return n.tableParams.total(t[0]),delete n.loading,t[1]})}}),n.$on("ng-table-async:reload",function(){return n.loading=!0,n.tableParams.reload().then(function(){return delete n.loading})})}]}})}.call(this),function(){"use strict";var n;n=angular.module("ngTableAsync"),n.value("ngTableAsyncDefaults",{DEFAULT_PAGE:1,PAGE_SIZE:10,NO_DATA_TEXT:"No available results to show",PAGER_ON_TOP:!1,PAGER_ON_BOTTOM:!0,HEADER_IF_EMPTY:!0,SUPPORTED_VALUES:{NTA_ACTION_SIZE:["xs","sm","lg"],NTA_ACTION_STYLE:["default","primary","success","info","warning","danger","link"]},DEFAULT_VALUES:{NTA_ACTION_SIZE:"",NTA_ACTION_STYLE:"default"},DEFAULT_TEMPLATES:{NTA_ACTION:"/_ng_table_async_action.html",NTA_LOADING:"/_ng_table_async_loading.html",NTA_NO_DATA:"/_ng_table_async_no_data.html",NTA_PAGER:"/_ng_table_async_pager.html"}})}.call(this),function(){"use strict";var n,t,e=[].indexOf||function(n){for(var t=0,e=this.length;t<e;t++)if(t in this&&this[t]===n)return t;return-1};n=angular.module("ngTableAsync"),t=function(n){var t;return t=n&&n.templateUrl?n:void 0,_.isUndefined(t)||_.isEmpty(t.params)||_.isFunction(t.params)?t:(t.params=function(){_.isEmpty(t.params)},t.params=function(n){if(_.isObject(t.params))return t.params},_.isString(t.params)&&(t.params=function(n){var e;return e={},e[t.params]=n,e}),t.params=function(n,t){return{item:n,index:t}},t)},n.directive("ntaAction",["ngTableAsyncDefaults",function(n){return{restrict:"E",scope:!0,templateUrl:function(t,e){return e.templateUrl&&"undefined"!==e.templateUrl?e.templateUrl:n.DEFAULT_TEMPLATES.NTA_ACTION},controller:["$scope","$attrs","$q","$injector",function(a,r,l,i){var o,s,c,u,d,T,m,p,g,f,A,E;if(c=n,s=a.options.actions[r.action],T=_.isFunction(s)?s:s.method,A=!!_.isUndefined(s.reload)||s.reload,u=t(s.dialog),a.label=r.label,a.icon=r.icon&&"undefined"!==r.icon?r.icon:void 0,g=r.size,e.call(c.SUPPORTED_VALUES.NTA_ACTION_SIZE,g)>=0?a.size="btn-"+r.size:a.size=c.DEFAULT_VALUES.NTA_ACTION_SIZE,f=r.style,e.call(c.SUPPORTED_VALUES.NTA_ACTION_STYLE,f)>=0?a.style="btn-"+r.style:a.style="btn-"+c.DEFAULT_VALUES.NTA_ACTION_STYLE,m=function(n,t){return a.mainScope.loading=!0,l.when().then(function(){return T(n,t)}).then(function(){if(A)return a.tableParams.reload()})["finally"](function(){return delete a.mainScope.loading})},_.isEmpty(s.dialog))E=m;else try{o=i.get("$modal"),p=function(n,t){var e,r,l;return l=u.params(n,t),r=_.merge(a.$new(!0),l),e=o.open({templateUrl:u.templateUrl,scope:r}),e.result.then(function(){return m(n,t)})["catch"](function(){if(u&&u.onCancel)return u.onCancel(n,l)})},E=p}catch(b){d=b,E=m}return a["do"]=function(){return E(a.item,a.$index)}}]}}])}.call(this),function(){"use strict";var n;n=angular.module("ngTableAsync"),n.directive("ntaLoading",["ngTableAsyncDefaults",function(n){return{restrict:"E",templateUrl:function(t,e){return e.templateUrl&&"undefined"!==e.templateUrl?e.templateUrl:n.DEFAULT_TEMPLATES.NTA_LOADING}}}])}.call(this),function(){"use strict";var n;n=angular.module("ngTableAsync"),n.directive("ntaNoData",["ngTableAsyncDefaults",function(n){return{restrict:"E",scope:!0,templateUrl:function(t,e){return e.templateUrl&&"undefined"!==e.templateUrl?e.templateUrl:n.DEFAULT_TEMPLATES.NTA_NO_DATA},controller:["$scope","$element","$attrs",function(t,e,a){return a.text&&"undefined"!==a.text||(a.text=n.NO_DATA_TEXT),t.text=a.text}]}}])}.call(this),function(){"use strict";var n;n=angular.module("ngTableAsync"),n.directive("ntaPager",["ngTableAsyncDefaults",function(n){return{restrict:"E",template:function(t,e){return e.templateUrl&&"undefined"!==e.templateUrl||(e.templateUrl=n.DEFAULT_TEMPLATES.NTA_PAGER),'<div ng-table-pagination="tableParams" template-url="\''+e.templateUrl+"'\"></div>"}}}])}.call(this);
//# sourceMappingURL=ng-table-async.min.js.map