forked from lorenzofox3/Smart-Table
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsmart-table.min.js
5 lines (5 loc) · 5.27 KB
/
smart-table.min.js
1
2
3
4
5
/**
* @version 1.4.11
* @license MIT
*/
!function(t,e){"use strict";t.module("smart-table",[]).run(["$templateCache",function(t){t.put("template/smart-table/pagination.html",'<div class="pagination" ng-if="pages.length >= 2"><ul class="pagination"><li ng-repeat="page in pages" ng-class="{active: page==currentPage}"><a ng-click="selectPage(page)">{{page}}</a></li></ul></div>')}]),t.module("smart-table").controller("stTableController",["$scope","$parse","$filter","$attrs",function(a,n,s,r){function i(t){return t?[].concat(t):[]}function c(){m=i(l(a)),b===!0&&S.pipe()}var l,o,u=r.stTable,p=n(u),g=p.assign,f=s("orderBy"),d=s("filter"),m=i(p(a)),h={sort:{},search:{},pagination:{start:0}},b=!0,S=this;r.stSafeSrc&&(l=n(r.stSafeSrc),a.$watch(function(){var t=l(a);return t?t.length:0},function(t){t!==m.length&&c()}),a.$watch(function(){return l(a)},function(t,e){t!==e&&c()})),this.sortBy=function(e,a){return h.sort.predicate=e,h.sort.reverse=a===!0,t.isFunction(e)?h.sort.functionName=e.name:delete h.sort.functionName,h.pagination.start=0,this.pipe()},this.search=function(e,a){var n=h.search.predicateObject||{},s=a?a:"$";return e=t.isString(e)?e.trim():e,n[s]=e,e||delete n[s],h.search.predicateObject=n,h.pagination.start=0,this.pipe()},this.pipe=function(){var t=h.pagination,n=h.search.predicateObject?d(m,h.search.predicateObject):m;h.sort.predicate&&(n=f(n,h.sort.predicate,h.sort.reverse)),t.number!==e&&(t.numberOfPages=n.length>0?Math.ceil(n.length/t.number):1,t.start=t.start>=n.length?(t.numberOfPages-1)*t.number:t.start,n=n.slice(t.start,t.start+parseInt(t.number))),g(a,n)},this.select=function(t,a){var n=m,s=n.indexOf(t);-1!==s&&("single"===a?(t.isSelected=t.isSelected!==!0,o&&(o.isSelected=!1),o=t.isSelected===!0?t:e):n[s].isSelected=!n[s].isSelected)},this.slice=function(t,e){return h.pagination.start=t,h.pagination.number=e,this.pipe()},this.tableState=function(){return h},this.setFilterFunction=function(t){d=s(t)},this.setSortFunction=function(t){f=s(t)},this.preventPipeOnWatch=function(){b=!1}}]).directive("stTable",function(){return{restrict:"A",controller:"stTableController",link:function(t,e,a,n){a.stSetFilter&&n.setFilterFunction(a.stSetFilter),a.stSetSort&&n.setSortFunction(a.stSetSort)}}}),t.module("smart-table").directive("stSearch",["$timeout",function(t){return{require:"^stTable",scope:{predicate:"=?stSearch"},link:function(e,a,n,s){var r=s,i=null,c=n.stDelay||400;e.$watch("predicate",function(t,e){t!==e&&(s.tableState().search={},r.search(a[0].value||"",t))}),e.$watch(function(){return s.tableState().search},function(t){var n=e.predicate||"$";t.predicateObject&&t.predicateObject[n]!==a[0].value&&(a[0].value=t.predicateObject[n]||"")},!0),a.bind("input",function(a){a=a.originalEvent||a,null!==i&&t.cancel(i),i=t(function(){r.search(a.target.value,e.predicate||""),i=null},c)})}}}]),t.module("smart-table").directive("stSelectRow",function(){return{restrict:"A",require:"^stTable",scope:{row:"=stSelectRow"},link:function(t,e,a,n){var s=a.stSelectMode||"single";e.bind("click",function(){t.$apply(function(){n.select(t.row,s)})}),t.$watch("row.isSelected",function(t){t===!0?e.addClass("st-selected"):e.removeClass("st-selected")})}}}),t.module("smart-table").directive("stSort",["$parse",function(a){return{restrict:"A",require:"^stTable",link:function(n,s,r,i){function c(){p++,o=t.isFunction(u(n))?u(n):r.stSort,p%3===0&&r.stSkipNatural===e?(p=0,i.tableState().sort={},i.tableState().pagination.start=0,i.pipe()):i.sortBy(o,p%2===0)}var l,o=r.stSort,u=a(o),p=0,g=r.stClassAscent||"st-sort-ascent",f=r.stClassDescent||"st-sort-descent",d=[g,f];r.stSortDefault&&(l=n.$eval(r.stSortDefault)!==e?n.$eval(r.stSortDefault):r.stSortDefault),s.bind("click",function(){o&&n.$apply(c)}),l&&(p="reverse"===r.stSortDefault?1:0,c()),n.$watch(function(){return i.tableState().sort},function(t){t.predicate!==o?(p=0,s.removeClass(g).removeClass(f)):(p=t.reverse===!0?2:1,s.removeClass(d[p%2]).addClass(d[p-1]))},!0)}}}]),t.module("smart-table").directive("stPagination",function(){return{restrict:"EA",require:"^stTable",scope:{stItemsByPage:"=?",stDisplayedPages:"=?",stPageChange:"&"},templateUrl:function(t,e){return e.stTemplate?e.stTemplate:"template/smart-table/pagination.html"},link:function(t,e,a,n){function s(){var e,a,s=n.tableState().pagination,r=1,i=t.currentPage;for(t.currentPage=Math.floor(s.start/s.number)+1,r=Math.max(r,t.currentPage-Math.abs(Math.floor(t.stDisplayedPages/2))),e=r+t.stDisplayedPages,e>s.numberOfPages&&(e=s.numberOfPages+1,r=Math.max(1,e-t.stDisplayedPages)),t.pages=[],t.numPages=s.numberOfPages,a=r;e>a;a++)t.pages.push(a);i!==t.currentPage&&t.stPageChange({newPage:t.currentPage})}t.stItemsByPage=t.stItemsByPage?+t.stItemsByPage:10,t.stDisplayedPages=t.stDisplayedPages?+t.stDisplayedPages:5,t.currentPage=1,t.pages=[],t.$watch(function(){return n.tableState().pagination},s,!0),t.$watch("stItemsByPage",function(e,a){e!==a&&t.selectPage(1)}),t.$watch("stDisplayedPages",s),t.selectPage=function(e){e>0&&e<=t.numPages&&n.slice((e-1)*t.stItemsByPage,t.stItemsByPage)},n.tableState().pagination.number||n.slice(0,t.stItemsByPage)}}}),t.module("smart-table").directive("stPipe",function(){return{require:"stTable",scope:{stPipe:"="},link:{pre:function(e,a,n,s){t.isFunction(e.stPipe)&&(s.preventPipeOnWatch(),s.pipe=function(){return e.stPipe(s.tableState(),s)})},post:function(t,e,a,n){n.pipe()}}}})}(angular);