diff --git a/bower.json b/bower.json
index e6c0293c..b5785e27 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "ng-table",
- "version": "0.4.3",
+ "version": "0.5.0",
"main": [
"./dist/ng-table.min.js",
"./dist/ng-table.min.css"
diff --git a/dist/ng-table.js b/dist/ng-table.js
index ab531bc6..73d79bea 100644
--- a/dist/ng-table.js
+++ b/dist/ng-table.js
@@ -67,14 +67,15 @@ app.value('ngTableDefaults', {
/**
* @ngdoc service
- * @name ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams
* @description Parameters manager for ngTable
*/
-app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log, ngTableDefaults) {
+
+app.factory('NgTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log, ngTableDefaults) {
var isNumber = function(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
};
- var ngTableParams = function(baseParameters, baseSettings) {
+ var NgTableParams = function(baseParameters, baseSettings) {
var self = this,
log = function() {
if (settings.debugMode && $log.debug) {
@@ -86,8 +87,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#parameters
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#parameters
+ * @methodOf ngTable.factory:NgTableParams
* @description Set new parameters or get current parameters
*
* @param {string} newParameters New parameters
@@ -126,8 +127,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#settings
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#settings
+ * @methodOf ngTable.factory:NgTableParams
* @description Set new settings for table
*
* @param {string} newSettings New settings or undefined
@@ -148,8 +149,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#page
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#page
+ * @methodOf ngTable.factory:NgTableParams
* @description If parameter page not set return current page else set current page
*
* @param {string} page Page number
@@ -163,8 +164,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#total
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#total
+ * @methodOf ngTable.factory:NgTableParams
* @description If parameter total not set return current quantity else set quantity
*
* @param {string} total Total quantity of items
@@ -178,8 +179,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#count
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#count
+ * @methodOf ngTable.factory:NgTableParams
* @description If parameter count not set return current count per page else set count per page
*
* @param {string} count Count per number
@@ -195,8 +196,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#filter
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#filter
+ * @methodOf ngTable.factory:NgTableParams
* @description If parameter page not set return current filter else set current filter
*
* @param {string} filter New filter
@@ -211,8 +212,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#sorting
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#sorting
+ * @methodOf ngTable.factory:NgTableParams
* @description If 'sorting' parameter is not set, return current sorting. Otherwise set current sorting.
*
* @param {string} sorting New sorting
@@ -234,8 +235,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#isSortBy
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#isSortBy
+ * @methodOf ngTable.factory:NgTableParams
* @description Checks sort field
*
* @param {string} field Field name
@@ -248,8 +249,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#orderBy
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#orderBy
+ * @methodOf ngTable.factory:NgTableParams
* @description Return object of sorting parameters for angular filter
*
* @returns {Array} Array like: [ '-name', '+age' ]
@@ -264,8 +265,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#getData
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#getData
+ * @methodOf ngTable.factory:NgTableParams
* @description Called when updated some of parameters for get new data
*
* @param {Object} $defer promise object
@@ -282,8 +283,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#getGroups
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#getGroups
+ * @methodOf ngTable.factory:NgTableParams
* @description Return groups for table grouping
*/
this.getGroups = function($defer, column) {
@@ -312,8 +313,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#generatePagesArray
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#generatePagesArray
+ * @methodOf ngTable.factory:NgTableParams
* @description Generate array of pages
*
* @param {boolean} currentPage which page must be active
@@ -376,8 +377,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#url
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#url
+ * @methodOf ngTable.factory:NgTableParams
* @description Return groups for table grouping
*
* @param {boolean} asString flag indicates return array of string or object
@@ -415,8 +416,8 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
/**
* @ngdoc method
- * @name ngTable.factory:ngTableParams#reload
- * @methodOf ngTable.factory:ngTableParams
+ * @name ngTable.factory:NgTableParams#reload
+ * @methodOf ngTable.factory:NgTableParams
* @description Reload table data
*/
this.reload = function() {
@@ -489,7 +490,16 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
this.parameters(baseParameters, true);
return this;
};
- return ngTableParams;
+ return NgTableParams;
+}]);
+
+/**
+ * @ngdoc service
+ * @name ngTable.factory:ngTableParams
+ * @description Backwards compatible shim for lowercase 'n' in NgTableParams
+ */
+app.factory('ngTableParams', ['NgTableParams', function(NgTableParams) {
+ return NgTableParams;
}]);
/**
* ngTable: Table + Angular JS
@@ -506,12 +516,18 @@ app.factory('ngTableParams', ['$q', '$log', 'ngTableDefaults', function($q, $log
* @description
* Each {@link ngTable.directive:ngTable ngTable} directive creates an instance of `ngTableController`
*/
-var ngTableController = ['$scope', 'ngTableParams', '$timeout', function($scope, ngTableParams, $timeout) {
+app.controller('ngTableController', ['$scope', 'NgTableParams', '$timeout', '$parse', '$compile', '$attrs', '$element',
+ 'ngTableColumn',
+function($scope, NgTableParams, $timeout, $parse, $compile, $attrs, $element, ngTableColumn) {
var isFirstTimeLoad = true;
+ $scope.$filterRow = {};
$scope.$loading = false;
+ // until such times as the directive uses an isolated scope, we need to ensure that the check for
+ // the params field only consults the "own properties" of the $scope. This is to avoid seeing the params
+ // field on a $scope higher up in the prototype chain
if (!$scope.hasOwnProperty("params")) {
- $scope.params = new ngTableParams();
+ $scope.params = new NgTableParams();
$scope.params.isNullInstance = true;
}
$scope.params.settings().$scope = $scope;
@@ -552,8 +568,101 @@ var ngTableController = ['$scope', 'ngTableParams', '$timeout', function($scope,
}, true);
- $scope.sortBy = function(column, event) {
- var parsedSortable = $scope.parse(column.sortable);
+ this.compileDirectiveTemplates = function () {
+ if (!$element.hasClass('ng-table')) {
+ $scope.templates = {
+ header: ($attrs.templateHeader ? $attrs.templateHeader : 'ng-table/header.html'),
+ pagination: ($attrs.templatePagination ? $attrs.templatePagination : 'ng-table/pager.html')
+ };
+ $element.addClass('ng-table');
+ var headerTemplate = null;
+ if ($element.find('> thead').length === 0) {
+ headerTemplate = angular.element(document.createElement('thead')).attr('ng-include', 'templates.header');
+ $element.prepend(headerTemplate);
+ }
+ var paginationTemplate = angular.element(document.createElement('div')).attr({
+ 'ng-table-pagination': 'params',
+ 'template-url': 'templates.pagination'
+ });
+ $element.after(paginationTemplate);
+ if (headerTemplate) {
+ $compile(headerTemplate)($scope);
+ }
+ $compile(paginationTemplate)($scope);
+ }
+ };
+
+ this.loadFilterData = function ($columns) {
+ angular.forEach($columns, function ($column) {
+ var def;
+ def = $column.filterData($scope, {
+ $column: $column
+ });
+ if (!def) {
+ delete $column.filterData;
+ return;
+ }
+
+ // if we're working with a deferred object, let's wait for the promise
+ if ((angular.isObject(def) && angular.isObject(def.promise))) {
+ delete $column.filterData;
+ return def.promise.then(function(data) {
+ // our deferred can eventually return arrays, functions and objects
+ if (!angular.isArray(data) && !angular.isFunction(data) && !angular.isObject(data)) {
+ // if none of the above was found - we just want an empty array
+ data = [];
+ } else if (angular.isArray(data)) {
+ data.unshift({
+ title: '-',
+ id: ''
+ });
+ }
+ $column.data = data;
+ });
+ }
+ // otherwise, we just return what the user gave us. It could be a function, array, object, whatever
+ else {
+ return $column.data = def;
+ }
+ });
+ };
+
+ this.buildColumns = function (columns) {
+ return columns.map(function(col){
+ return ngTableColumn.buildColumn(col, $scope)
+ })
+ };
+
+ this.setupBindingsToInternalScope = function(tableParamsExpr){
+
+ // note: this we're setting up watches to simulate angular's isolated scope bindings
+
+ // note: is REALLY important to watch for a change to the ngTableParams *reference* rather than
+ // $watch for value equivalence. This is because ngTableParams references the current page of data as
+ // a field and it's important not to watch this
+ var tableParamsGetter = $parse(tableParamsExpr);
+ $scope.$watch(tableParamsGetter, (function (params) {
+ if (angular.isUndefined(params)) {
+ return;
+ }
+ $scope.paramsModel = tableParamsGetter;
+ $scope.params = params;
+ }), false);
+
+ if ($attrs.showFilter) {
+ $scope.$parent.$watch($attrs.showFilter, function(value) {
+ $scope.show_filter = value;
+ });
+ }
+ if ($attrs.disableFilter) {
+ $scope.$parent.$watch($attrs.disableFilter, function(value) {
+ $scope.$filterRow.disabled = value;
+ });
+ }
+ };
+
+ $scope.sortBy = function($column, event) {
+ var parsedSortable = $column.sortable && $column.sortable();
if (!parsedSortable) {
return;
}
@@ -566,7 +675,77 @@ var ngTableController = ['$scope', 'ngTableParams', '$timeout', function($scope,
sorting: sortingParams
});
};
-}];
+}]);
+
+
+/**
+ * @ngdoc service
+ * @name ngTable.factory:ngTableColumn
+ *
+ * @description
+ * Service to construct a $column definition used by {@link ngTable.directive:ngTable ngTable} directive
+ */
+app.factory('ngTableColumn', [function () {
+
+ var defaults = {
+ 'class': function(){ return ''; },
+ filter: function(){ return false; },
+ filterData: angular.noop,
+ headerTemplateURL: function(){ return false; },
+ headerTitle: function(){ return ' '; },
+ sortable: function(){ return false; },
+ show: function(){ return true; },
+ title: function(){ return ' '; },
+ titleAlt: function(){ return ''; }
+ };
+
+ /**
+ * @ngdoc method
+ * @name ngTable.factory:ngTableColumn#buildColumn
+ * @methodOf ngTable.factory:ngTableColumn
+ * @description Creates a $column for use within a header template
+ *
+ * @param {Object} column an existing $column or simple column data object
+ * @param {Scope} defaultScope the $scope to supply to the $column getter methods when not supplied by caller
+ * @returns {Object} a $column object
+ */
+ function buildColumn(column, defaultScope){
+ // note: we're not modifying the original column object. This helps to avoid unintended side affects
+ var extendedCol = Object.create(column);
+ for (var prop in defaults) {
+ if (extendedCol[prop] === undefined) {
+ extendedCol[prop] = defaults[prop];
+ }
+ if(!angular.isFunction(extendedCol[prop])){
+ // wrap raw field values with "getter" functions
+ // - this is to ensure consistency with how ngTable.compile builds columns
+ // - note that the original column object is being "proxied"; this is important
+ // as it ensure that any changes to the original object will be returned by the "getter"
+ (function(prop1){
+ extendedCol[prop1] = function(){
+ return column[prop1];
+ };
+ })(prop);
+ }
+ (function(prop1){
+ // satisfy the arguments expected by the function returned by parsedAttribute in the ngTable directive
+ var getterFn = extendedCol[prop1];
+ extendedCol[prop1] = function(){
+ if (arguments.length === 0){
+ return getterFn.call(column, defaultScope);
+ } else {
+ return getterFn.apply(column, arguments);
+ }
+ };
+ })(prop);
+ }
+ return extendedCol;
+ }
+
+ return {
+ buildColumn: buildColumn
+ };
+}]);
/**
* ngTable: Table + Angular JS
*
@@ -583,23 +762,20 @@ var ngTableController = ['$scope', 'ngTableParams', '$timeout', function($scope,
* @description
* Directive that instantiates {@link ngTable.directive:ngTable.ngTableController ngTableController}.
*/
-app.directive('ngTable', ['$compile', '$q', '$parse',
- function($compile, $q, $parse) {
+app.directive('ngTable', ['$q', '$parse',
+ function($q, $parse) {
'use strict';
return {
restrict: 'A',
priority: 1001,
scope: true,
- controller: ngTableController,
+ controller: 'ngTableController',
compile: function(element) {
var columns = [],
i = 0,
row = null;
- // custom header
- var thead = element.find('> thead');
-
// IE 8 fix :not(.ng-table-group) selector
angular.forEach(angular.element(element.find('tr')), function(tr) {
tr = angular.element(tr);
@@ -615,127 +791,127 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
if (el.attr('ignore-cell') && 'true' === el.attr('ignore-cell')) {
return;
}
- var parsedAttribute = function(attr, defaultValue) {
- return function(scope) {
- return $parse(el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr))(scope, {
+
+ var getAttrValue = function(attr){
+ return el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr);
+ };
+
+ var parsedAttribute = function(attr) {
+ var expr = getAttrValue(attr);
+ if (!expr){
+ return undefined;
+ }
+ return function(scope, locals) {
+ return $parse(expr)(scope, angular.extend(locals || {}, {
$columns: columns
- }) || defaultValue;
+ }));
};
};
- var parsedTitle = parsedAttribute('title', ' '),
- headerTemplateURL = parsedAttribute('header', false),
- filter = parsedAttribute('filter', false)(),
- filterTemplateURL = false,
- filterName = false;
-
- if (filter && filter.$$name) {
- filterName = filter.$$name;
- delete filter.$$name;
+ var titleExpr = getAttrValue('title-alt') || getAttrValue('title');
+ if (titleExpr){
+ el.attr('data-title-text', '{{' + titleExpr + '}}'); // this used in responsive table
}
- if (filter && filter.templateURL) {
- filterTemplateURL = filter.templateURL;
- delete filter.templateURL;
- }
-
- el.attr('data-title-text', parsedTitle()); // this used in responsive table
+ // NOTE TO MAINTAINERS: if you add extra fields to a $column be sure to extend ngTableColumn with
+ // a corresponding "safe" default
columns.push({
id: i++,
- title: parsedTitle,
- sortable: parsedAttribute('sortable', false),
- 'class': el.attr('x-data-header-class') || el.attr('data-header-class') || el.attr('header-class'),
- filter: filter,
- filterTemplateURL: filterTemplateURL,
- filterName: filterName,
- headerTemplateURL: headerTemplateURL,
- filterData: (el.attr("filter-data") ? el.attr("filter-data") : null),
- show: (el.attr("ng-show") ? function(scope) {
+ title: parsedAttribute('title'),
+ titleAlt: parsedAttribute('title-alt'),
+ headerTitle: parsedAttribute('header-title'),
+ sortable: parsedAttribute('sortable'),
+ 'class': parsedAttribute('header-class'),
+ filter: parsedAttribute('filter'),
+ headerTemplateURL: parsedAttribute('header'),
+ filterData: parsedAttribute('filter-data'),
+ show: (el.attr("ng-show") ? function (scope) {
return $parse(el.attr("ng-show"))(scope);
- } : function() {
- return true;
- })
+ } : undefined)
});
});
- return function(scope, element, attrs) {
- scope.$loading = false;
- scope.$columns = columns;
- scope.$filterRow = {};
-
- scope.$watch(attrs.ngTable, (function(params) {
- if (angular.isUndefined(params)) {
- return;
- }
- scope.paramsModel = $parse(attrs.ngTable);
- scope.params = params;
- }), true);
- scope.parse = function(text) {
- return angular.isDefined(text) ? text(scope) : '';
- };
- if (attrs.showFilter) {
- scope.$parent.$watch(attrs.showFilter, function(value) {
- scope.show_filter = value;
- });
- }
- if (attrs.disableFilter) {
- scope.$parent.$watch(attrs.disableFilter, function(value) {
- scope.$filterRow.disabled = value;
- });
- }
- angular.forEach(columns, function(column) {
- var def;
- if (!column.filterData) {
- return;
- }
- def = $parse(column.filterData)(scope, {
- $column: column
- });
- // if we're working with a deferred object, let's wait for the promise
- if ((angular.isObject(def) && angular.isObject(def.promise))) {
- delete column.filterData;
- return def.promise.then(function(data) {
- // our deferred can eventually return arrays, functions and objects
- if (!angular.isArray(data) && !angular.isFunction(data) && !angular.isObject(data)) {
- // if none of the above was found - we just want an empty array
- data = [];
- } else if (angular.isArray(data)) {
- data.unshift({
- title: '-',
- id: ''
- });
- }
- column.data = data;
- });
- }
- // otherwise, we just return what the user gave us. It could be a function, array, object, whatever
- else {
- return column.data = def;
- }
- });
- if (!element.hasClass('ng-table')) {
- scope.templates = {
- header: (attrs.templateHeader ? attrs.templateHeader : 'ng-table/header.html'),
- pagination: (attrs.templatePagination ? attrs.templatePagination : 'ng-table/pager.html')
- };
- var headerTemplate = thead.length > 0 ? thead : angular.element(document.createElement('thead')).attr('ng-include', 'templates.header');
- var paginationTemplate = angular.element(document.createElement('div')).attr({
- 'ng-table-pagination': 'params',
- 'template-url': 'templates.pagination'
- });
+ return function(scope, element, attrs, controller) {
+ scope.$columns = columns = controller.buildColumns(columns);
- element.find('> thead').remove();
-
- element.addClass('ng-table')
- .prepend(headerTemplate)
- .after(paginationTemplate);
-
- $compile(headerTemplate)(scope);
- $compile(paginationTemplate)(scope);
- }
+ controller.setupBindingsToInternalScope(attrs.ngTable);
+ controller.loadFilterData(columns);
+ controller.compileDirectiveTemplates();
};
}
}
}
]);
+
+/**
+ * @ngdoc directive
+ * @name ngTable.directive:ngTableDynamic
+ * @restrict A
+ *
+ * @description
+ * A dynamic version of the {@link ngTable.directive:ngTable ngTable} directive that accepts a dynamic list of columns
+ * definitions to render
+ */
+app.directive('ngTableDynamic', ['$parse', function ($parse){
+
+ function parseDirectiveExpression(attr) {
+ if (!attr || attr.indexOf(" with ") > -1) {
+ var parts = attr.split(/\s+with\s+/);
+ return {
+ tableParams: parts[0],
+ columns: parts[1]
+ };
+ } else {
+ throw new Error('Parse error (expected example: ng-table-dynamic=\'tableParams with cols\')');
+ }
+ }
+
+ return {
+ restrict: 'A',
+ priority: 1001,
+ scope: true,
+ controller: 'ngTableController',
+ compile: function(tElement) {
+ var row;
+
+ // IE 8 fix :not(.ng-table-group) selector
+ angular.forEach(angular.element(tElement.find('tr')), function(tr) {
+ tr = angular.element(tr);
+ if (!tr.hasClass('ng-table-group') && !row) {
+ row = tr;
+ }
+ });
+ if (!row) {
+ return;
+ }
+
+ angular.forEach(row.find('td'), function(item) {
+ var el = angular.element(item);
+ var getAttrValue = function(attr){
+ return el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr);
+ };
+
+ // this used in responsive table
+ var titleExpr = getAttrValue('title');
+ if (!titleExpr){
+ el.attr('data-title-text', '{{$columns[$index].titleAlt(this) || $columns[$index].title(this)}}');
+ }
+ var showExpr = el.attr('ng-show');
+ if (!showExpr){
+ el.attr('ng-show', '$columns[$index].show(this)');
+ }
+ });
+
+ return function(scope, element, attrs, controller) {
+ var expr = parseDirectiveExpression(attrs.ngTableDynamic);
+ var columns = $parse(expr.columns)(scope) || [];
+ scope.$columns = controller.buildColumns(columns);
+
+ controller.setupBindingsToInternalScope(expr.tableParams);
+ controller.loadFilterData(scope.$columns);
+ controller.compileDirectiveTemplates();
+ };
+ }
+ };
+}]);
/**
* ngTable: Table + Angular JS
*
@@ -782,10 +958,10 @@ app.directive('ngTablePagination', ['$compile',
}
]);
angular.module('ngTable').run(['$templateCache', function ($templateCache) {
- $templateCache.put('ng-table/filters/select-multiple.html', '');
- $templateCache.put('ng-table/filters/select.html', '');
- $templateCache.put('ng-table/filters/text.html', '');
- $templateCache.put('ng-table/header.html', '
|
|
');
+ $templateCache.put('ng-table/filters/select-multiple.html', '');
+ $templateCache.put('ng-table/filters/select.html', '');
+ $templateCache.put('ng-table/filters/text.html', '');
+ $templateCache.put('ng-table/header.html', ' |
|
');
$templateCache.put('ng-table/pager.html', ' ');
}]);
return app;
diff --git a/dist/ng-table.min.css b/dist/ng-table.min.css
index 54914558..d393de82 100644
--- a/dist/ng-table.min.css
+++ b/dist/ng-table.min.css
@@ -1,3 +1,3 @@
-/*! ngTable v0.4.3 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */
+/*! ngTable v0.5.0 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */
.ng-table th{text-align:center;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ng-table th.sortable{cursor:pointer}.ng-table th.sortable div{padding-right:18px;position:relative}.ng-table th.sortable div:after,.ng-table th.sortable div:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:8px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable div:before{margin-top:2px;border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000}.ng-table th.sortable div:hover:after,.ng-table th.sortable div:hover:before{opacity:1;visibility:visible}.ng-table th.sortable.sort-desc,.ng-table th.sortable.sort-asc{background-color:rgba(141,192,219,.25);text-shadow:0 1px 1px rgba(255,255,255,.75)}.ng-table th.sortable.sort-desc div:after,.ng-table th.sortable.sort-asc div:after{margin-top:-2px}.ng-table th.sortable.sort-desc div:before,.ng-table th.sortable.sort-asc div:before{visibility:hidden}.ng-table th.sortable.sort-asc div:after,.ng-table th.sortable.sort-asc div:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc div:after{border-bottom:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.filter .input-filter{margin:0;display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-table+.pagination{margin-top:0}@media only screen and (max-width:800px){.ng-table-responsive{border-bottom:1px solid #999}.ng-table-responsive tr{border-top:1px solid #999;border-left:1px solid #999;border-right:1px solid #999}.ng-table-responsive td:before{position:absolute;padding:8px;left:0;top:0;width:50%;white-space:nowrap;text-align:left;font-weight:700}.ng-table-responsive thead tr th{text-align:left}.ng-table-responsive thead tr.ng-table-filters th{padding:0}.ng-table-responsive thead tr.ng-table-filters th form>div{padding:8px}.ng-table-responsive td{border:0;border-bottom:1px solid #eee;position:relative;padding-left:50%;white-space:normal;text-align:left}.ng-table-responsive td:before{content:attr(data-title-text)}.ng-table-responsive,.ng-table-responsive thead,.ng-table-responsive tbody,.ng-table-responsive th,.ng-table-responsive td,.ng-table-responsive tr{display:block}}
\ No newline at end of file
diff --git a/dist/ng-table.min.js b/dist/ng-table.min.js
index 1f0a572c..b4cc4146 100644
--- a/dist/ng-table.min.js
+++ b/dist/ng-table.min.js
@@ -1,4 +1,4 @@
-/*! ngTable v0.4.3 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */
+/*! ngTable v0.5.0 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */
-!function(a,b){"use strict";return"function"==typeof define&&define.amd?void define(["angular"],function(a){return b(a)}):b(a)}(angular||null,function(a){"use strict";var b=a.module("ngTable",[]);b.value("ngTableDefaults",{params:{},settings:{}}),b.factory("ngTableParams",["$q","$log","ngTableDefaults",function(b,c,d){var e=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},f=function(f,g){var h=this,i=function(){k.debugMode&&c.debug&&c.debug.apply(this,arguments)};this.data=[],this.parameters=function(b,c){if(c=c||!1,a.isDefined(b)){for(var d in b){var f=b[d];if(c&&d.indexOf("[")>=0){for(var g=d.split(/\[(.*)\]/).reverse(),h="",k=0,l=g.length;l>k;k++){var m=g[k];if(""!==m){var n=f;f={},f[h=m]=e(n)?parseFloat(n):n}}"sorting"===h&&(j[h]={}),j[h]=a.extend(j[h]||{},f[h])}else j[d]=e(b[d])?parseFloat(b[d]):b[d]}return i("ngTable: set parameters",j),this}return j},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),k=a.extend(k,b),i("ngTable: set settings",k),this):k},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):j.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):k.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):j.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b,page:1}):j.filter},this.sorting=function(b){if(2==arguments.length){var c={};return c[b]=arguments[1],this.parameters({sorting:c}),this}return a.isDefined(b)?this.parameters({sorting:b}):j.sorting},this.isSortBy=function(b,c){return a.isDefined(j.sorting[b])&&a.equals(j.sorting[b],c)},this.orderBy=function(){var a=[];for(var b in j.sorting)a.push(("asc"===j.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){return b.resolve(a.isArray(this.data)&&a.isObject(c)?this.data.slice((c.page()-1)*c.count(),c.page()*c.count()):[]),b.promise},this.getGroups=function(c,d){var e=b.defer();return e.promise.then(function(b){var e={};a.forEach(b,function(b){var c=a.isFunction(d)?d(b):b[d];e[c]=e[c]||{data:[]},e[c].value=c,e[c].data.push(b)});var f=[];for(var g in e)f.push(e[g]);i("ngTable: refresh groups",f),c.resolve(f)}),this.getData(e,h)},this.generatePagesArray=function(a,b,c){var d,e,f,g,h,i;if(d=11,i=[],h=Math.ceil(b/c),h>1){i.push({type:"prev",number:Math.max(1,a-1),active:a>1}),i.push({type:"first",number:1,active:a>1,current:1===a}),f=Math.round((d-5)/2),g=Math.max(2,a-f),e=Math.min(h-1,a+2*f-(a-g)),g=Math.max(2,g-(2*f-(e-g)));for(var j=g;e>=j;)i.push(j===g&&2!==j||j===e&&j!==h-1?{type:"more",active:!1}:{type:"page",number:j,active:a!==j,current:a===j}),j++;i.push({type:"last",number:h,active:a!==h,current:a===h}),i.push({type:"next",number:Math.min(h,a+1),active:h>a})}return i},this.url=function(b){b=b||!1;var c=b?[]:{};for(var d in j)if(j.hasOwnProperty(d)){var e=j[d],f=encodeURIComponent(d);if("object"==typeof e){for(var g in e)if(!a.isUndefined(e[g])&&""!==e[g]){var h=f+"["+encodeURIComponent(g)+"]";b?c.push(h+"="+e[g]):c[h]=e[g]}}else a.isFunction(e)||a.isUndefined(e)||""===e||(b?c.push(f+"="+encodeURIComponent(e)):c[f]=encodeURIComponent(e))}return c},this.reload=function(){var a=b.defer(),c=this,d=null;if(k.$scope)return k.$loading=!0,d=k.groupBy?k.getGroups(a,k.groupBy,this):k.getData(a,this),i("ngTable: reload data"),d||(d=a.promise),d.then(function(a){return k.$loading=!1,i("ngTable: current scope",k.$scope),k.groupBy?(c.data=a,k.$scope&&(k.$scope.$groups=a)):(c.data=a,k.$scope&&(k.$scope.$data=a)),k.$scope&&(k.$scope.pages=c.generatePagesArray(c.page(),c.total(),c.count())),k.$scope.$emit("ngTableAfterReloadData"),a})},this.reloadPages=function(){var a=this;k.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var j=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null};a.extend(j,d.params);var k={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterDelay:750,counts:[10,25,50,100],getGroups:this.getGroups,getData:this.getData};return a.extend(k,d.settings),this.settings(g),this.parameters(f,!0),this};return f}]);var c=["$scope","ngTableParams","$timeout",function(b,c,d){function e(){b.params.$params.page=1}var f=!0;b.$loading=!1,b.hasOwnProperty("params")||(b.params=new c,b.params.isNullInstance=!0),b.params.settings().$scope=b;var g=function(){var a=0;return function(b,c){d.cancel(a),a=d(b,c)}}();b.$watch("params.$params",function(c,d){if(c!==d){if(b.params.settings().$scope=b,a.equals(c.filter,d.filter))b.params.reload();else{var h=f?a.noop:e;g(function(){h(),b.params.reload()},b.params.settings().filterDelay)}b.params.isNullInstance||(f=!1)}},!0),b.sortBy=function(a,c){var d=b.parse(a.sortable);if(d){var e=b.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=b.params.sorting()&&b.params.sorting()[d]&&b.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?b.params.sorting():{};h[d]=g?f:e,b.params.parameters({sorting:h})}}}];return b.directive("ngTable",["$compile","$q","$parse",function(b,d,e){return{restrict:"A",priority:1001,scope:!0,controller:c,compile:function(c){var d=[],f=0,g=null,h=c.find("thead");return a.forEach(a.element(c.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||g||(g=b)}),g?(a.forEach(g.find("td"),function(b){var c=a.element(b);if(!c.attr("ignore-cell")||"true"!==c.attr("ignore-cell")){var g=function(a,b){return function(f){return e(c.attr("x-data-"+a)||c.attr("data-"+a)||c.attr(a))(f,{$columns:d})||b}},h=g("title"," "),i=g("header",!1),j=g("filter",!1)(),k=!1,l=!1;j&&j.$$name&&(l=j.$$name,delete j.$$name),j&&j.templateURL&&(k=j.templateURL,delete j.templateURL),c.attr("data-title-text",h()),d.push({id:f++,title:h,sortable:g("sortable",!1),"class":c.attr("x-data-header-class")||c.attr("data-header-class")||c.attr("header-class"),filter:j,filterTemplateURL:k,filterName:l,headerTemplateURL:i,filterData:c.attr("filter-data")?c.attr("filter-data"):null,show:c.attr("ng-show")?function(a){return e(c.attr("ng-show"))(a)}:function(){return!0}})}}),function(c,f,g){if(c.$loading=!1,c.$columns=d,c.$filterRow={},c.$watch(g.ngTable,function(b){a.isUndefined(b)||(c.paramsModel=e(g.ngTable),c.params=b)},!0),c.parse=function(b){return a.isDefined(b)?b(c):""},g.showFilter&&c.$parent.$watch(g.showFilter,function(a){c.show_filter=a}),g.disableFilter&&c.$parent.$watch(g.disableFilter,function(a){c.$filterRow.disabled=a}),a.forEach(d,function(b){var d;if(b.filterData)return d=e(b.filterData)(c,{$column:b}),a.isObject(d)&&a.isObject(d.promise)?(delete b.filterData,d.promise.then(function(c){a.isArray(c)||a.isFunction(c)||a.isObject(c)?a.isArray(c)&&c.unshift({title:"-",id:""}):c=[],b.data=c})):b.data=d}),!f.hasClass("ng-table")){c.templates={header:g.templateHeader?g.templateHeader:"ng-table/header.html",pagination:g.templatePagination?g.templatePagination:"ng-table/pager.html"};var i=h.length>0?h:a.element(document.createElement("thead")).attr("ng-include","templates.header"),j=a.element(document.createElement("div")).attr({"ng-table-pagination":"params","template-url":"templates.pagination"});f.find("thead").remove(),f.addClass("ng-table").prepend(i).after(j),b(i)(c),b(j)(c)}}):void 0}}}]),b.directive("ngTablePagination",["$compile",function(b){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(c,d){c.params.settings().$scope.$on("ngTableAfterReloadData",function(){c.pages=c.params.generatePagesArray(c.params.page(),c.params.total(),c.params.count())},!0),c.$watch("templateUrl",function(e){if(!a.isUndefined(e)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),d.append(f),b(f)(c)}})}}}]),a.module("ngTable").run(["$templateCache",function(a){a.put("ng-table/filters/select-multiple.html",''),a.put("ng-table/filters/select.html",''),a.put("ng-table/filters/text.html",''),a.put("ng-table/header.html",' |
|
'),a.put("ng-table/pager.html",' ')}]),b});
+!function(a,b){"use strict";return"function"==typeof define&&define.amd?void define(["angular"],function(a){return b(a)}):b(a)}(angular||null,function(a){"use strict";var b=a.module("ngTable",[]);return b.value("ngTableDefaults",{params:{},settings:{}}),b.factory("NgTableParams",["$q","$log","ngTableDefaults",function(b,c,d){var e=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},f=function(f,g){var h=this,i=function(){k.debugMode&&c.debug&&c.debug.apply(this,arguments)};this.data=[],this.parameters=function(b,c){if(c=c||!1,a.isDefined(b)){for(var d in b){var f=b[d];if(c&&d.indexOf("[")>=0){for(var g=d.split(/\[(.*)\]/).reverse(),h="",k=0,l=g.length;l>k;k++){var m=g[k];if(""!==m){var n=f;f={},f[h=m]=e(n)?parseFloat(n):n}}"sorting"===h&&(j[h]={}),j[h]=a.extend(j[h]||{},f[h])}else j[d]=e(b[d])?parseFloat(b[d]):b[d]}return i("ngTable: set parameters",j),this}return j},this.settings=function(b){return a.isDefined(b)?(a.isArray(b.data)&&(b.total=b.data.length),k=a.extend(k,b),i("ngTable: set settings",k),this):k},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):j.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):k.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):j.count},this.filter=function(b){return a.isDefined(b)?this.parameters({filter:b,page:1}):j.filter},this.sorting=function(b){if(2==arguments.length){var c={};return c[b]=arguments[1],this.parameters({sorting:c}),this}return a.isDefined(b)?this.parameters({sorting:b}):j.sorting},this.isSortBy=function(b,c){return a.isDefined(j.sorting[b])&&a.equals(j.sorting[b],c)},this.orderBy=function(){var a=[];for(var b in j.sorting)a.push(("asc"===j.sorting[b]?"+":"-")+b);return a},this.getData=function(b,c){return b.resolve(a.isArray(this.data)&&a.isObject(c)?this.data.slice((c.page()-1)*c.count(),c.page()*c.count()):[]),b.promise},this.getGroups=function(c,d){var e=b.defer();return e.promise.then(function(b){var e={};a.forEach(b,function(b){var c=a.isFunction(d)?d(b):b[d];e[c]=e[c]||{data:[]},e[c].value=c,e[c].data.push(b)});var f=[];for(var g in e)f.push(e[g]);i("ngTable: refresh groups",f),c.resolve(f)}),this.getData(e,h)},this.generatePagesArray=function(a,b,c){var d,e,f,g,h,i;if(d=11,i=[],h=Math.ceil(b/c),h>1){i.push({type:"prev",number:Math.max(1,a-1),active:a>1}),i.push({type:"first",number:1,active:a>1,current:1===a}),f=Math.round((d-5)/2),g=Math.max(2,a-f),e=Math.min(h-1,a+2*f-(a-g)),g=Math.max(2,g-(2*f-(e-g)));for(var j=g;e>=j;)i.push(j===g&&2!==j||j===e&&j!==h-1?{type:"more",active:!1}:{type:"page",number:j,active:a!==j,current:a===j}),j++;i.push({type:"last",number:h,active:a!==h,current:a===h}),i.push({type:"next",number:Math.min(h,a+1),active:h>a})}return i},this.url=function(b){b=b||!1;var c=b?[]:{};for(var d in j)if(j.hasOwnProperty(d)){var e=j[d],f=encodeURIComponent(d);if("object"==typeof e){for(var g in e)if(!a.isUndefined(e[g])&&""!==e[g]){var h=f+"["+encodeURIComponent(g)+"]";b?c.push(h+"="+e[g]):c[h]=e[g]}}else a.isFunction(e)||a.isUndefined(e)||""===e||(b?c.push(f+"="+encodeURIComponent(e)):c[f]=encodeURIComponent(e))}return c},this.reload=function(){var a=b.defer(),c=this,d=null;if(k.$scope)return k.$loading=!0,d=k.groupBy?k.getGroups(a,k.groupBy,this):k.getData(a,this),i("ngTable: reload data"),d||(d=a.promise),d.then(function(a){return k.$loading=!1,i("ngTable: current scope",k.$scope),k.groupBy?(c.data=a,k.$scope&&(k.$scope.$groups=a)):(c.data=a,k.$scope&&(k.$scope.$data=a)),k.$scope&&(k.$scope.pages=c.generatePagesArray(c.page(),c.total(),c.count())),k.$scope.$emit("ngTableAfterReloadData"),a})},this.reloadPages=function(){var a=this;k.$scope.pages=a.generatePagesArray(a.page(),a.total(),a.count())};var j=this.$params={page:1,count:1,filter:{},sorting:{},group:{},groupBy:null};a.extend(j,d.params);var k={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterDelay:750,counts:[10,25,50,100],getGroups:this.getGroups,getData:this.getData};return a.extend(k,d.settings),this.settings(g),this.parameters(f,!0),this};return f}]),b.factory("ngTableParams",["NgTableParams",function(a){return a}]),b.controller("ngTableController",["$scope","NgTableParams","$timeout","$parse","$compile","$attrs","$element","ngTableColumn",function(b,c,d,e,f,g,h,i){function j(){b.params.$params.page=1}var k=!0;b.$filterRow={},b.$loading=!1,b.hasOwnProperty("params")||(b.params=new c,b.params.isNullInstance=!0),b.params.settings().$scope=b;var l=function(){var a=0;return function(b,c){d.cancel(a),a=d(b,c)}}();b.$watch("params.$params",function(c,d){if(c!==d){if(b.params.settings().$scope=b,a.equals(c.filter,d.filter))b.params.reload();else{var e=k?a.noop:j;l(function(){e(),b.params.reload()},b.params.settings().filterDelay)}b.params.isNullInstance||(k=!1)}},!0),this.compileDirectiveTemplates=function(){if(!h.hasClass("ng-table")){b.templates={header:g.templateHeader?g.templateHeader:"ng-table/header.html",pagination:g.templatePagination?g.templatePagination:"ng-table/pager.html"},h.addClass("ng-table");var c=null;0===h.find("> thead").length&&(c=a.element(document.createElement("thead")).attr("ng-include","templates.header"),h.prepend(c));var d=a.element(document.createElement("div")).attr({"ng-table-pagination":"params","template-url":"templates.pagination"});h.after(d),c&&f(c)(b),f(d)(b)}},this.loadFilterData=function(c){a.forEach(c,function(c){var d;return d=c.filterData(b,{$column:c}),d?a.isObject(d)&&a.isObject(d.promise)?(delete c.filterData,d.promise.then(function(b){a.isArray(b)||a.isFunction(b)||a.isObject(b)?a.isArray(b)&&b.unshift({title:"-",id:""}):b=[],c.data=b})):c.data=d:void delete c.filterData})},this.buildColumns=function(a){return a.map(function(a){return i.buildColumn(a,b)})},this.setupBindingsToInternalScope=function(c){var d=e(c);b.$watch(d,function(c){a.isUndefined(c)||(b.paramsModel=d,b.params=c)},!1),g.showFilter&&b.$parent.$watch(g.showFilter,function(a){b.show_filter=a}),g.disableFilter&&b.$parent.$watch(g.disableFilter,function(a){b.$filterRow.disabled=a})},b.sortBy=function(a,c){var d=a.sortable&&a.sortable();if(d){var e=b.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=b.params.sorting()&&b.params.sorting()[d]&&b.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?b.params.sorting():{};h[d]=g?f:e,b.params.parameters({sorting:h})}}}]),b.factory("ngTableColumn",[function(){function b(b,d){var e=Object.create(b);for(var f in c)void 0===e[f]&&(e[f]=c[f]),a.isFunction(e[f])||!function(a){e[a]=function(){return b[a]}}(f),function(a){var c=e[a];e[a]=function(){return 0===arguments.length?c.call(b,d):c.apply(b,arguments)}}(f);return e}var c={"class":function(){return""},filter:function(){return!1},filterData:a.noop,headerTemplateURL:function(){return!1},headerTitle:function(){return" "},sortable:function(){return!1},show:function(){return!0},title:function(){return" "},titleAlt:function(){return""}};return{buildColumn:b}}]),b.directive("ngTable",["$q","$parse",function(b,c){return{restrict:"A",priority:1001,scope:!0,controller:"ngTableController",compile:function(b){var d=[],e=0,f=null;return a.forEach(a.element(b.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||f||(f=b)}),f?(a.forEach(f.find("td"),function(b){var f=a.element(b);if(!f.attr("ignore-cell")||"true"!==f.attr("ignore-cell")){var g=function(a){return f.attr("x-data-"+a)||f.attr("data-"+a)||f.attr(a)},h=function(b){var e=g(b);return e?function(b,f){return c(e)(b,a.extend(f||{},{$columns:d}))}:void 0},i=g("title-alt")||g("title");i&&f.attr("data-title-text","{{"+i+"}}"),d.push({id:e++,title:h("title"),titleAlt:h("title-alt"),headerTitle:h("header-title"),sortable:h("sortable"),"class":h("header-class"),filter:h("filter"),headerTemplateURL:h("header"),filterData:h("filter-data"),show:f.attr("ng-show")?function(a){return c(f.attr("ng-show"))(a)}:void 0})}}),function(a,b,c,e){a.$columns=d=e.buildColumns(d),e.setupBindingsToInternalScope(c.ngTable),e.loadFilterData(d),e.compileDirectiveTemplates()}):void 0}}}]),b.directive("ngTableDynamic",["$parse",function(b){function c(a){if(!a||a.indexOf(" with ")>-1){var b=a.split(/\s+with\s+/);return{tableParams:b[0],columns:b[1]}}throw new Error("Parse error (expected example: ng-table-dynamic='tableParams with cols')")}return{restrict:"A",priority:1001,scope:!0,controller:"ngTableController",compile:function(d){var e;return a.forEach(a.element(d.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||e||(e=b)}),e?(a.forEach(e.find("td"),function(b){var c=a.element(b),d=function(a){return c.attr("x-data-"+a)||c.attr("data-"+a)||c.attr(a)},e=d("title");e||c.attr("data-title-text","{{$columns[$index].titleAlt(this) || $columns[$index].title(this)}}");var f=c.attr("ng-show");f||c.attr("ng-show","$columns[$index].show(this)")}),function(a,d,e,f){var g=c(e.ngTableDynamic),h=b(g.columns)(a)||[];a.$columns=f.buildColumns(h),f.setupBindingsToInternalScope(g.tableParams),f.loadFilterData(a.$columns),f.compileDirectiveTemplates()}):void 0}}}]),b.directive("ngTablePagination",["$compile",function(b){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(c,d){c.params.settings().$scope.$on("ngTableAfterReloadData",function(){c.pages=c.params.generatePagesArray(c.params.page(),c.params.total(),c.params.count())},!0),c.$watch("templateUrl",function(e){if(!a.isUndefined(e)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),d.append(f),b(f)(c)}})}}}]),a.module("ngTable").run(["$templateCache",function(a){a.put("ng-table/filters/select-multiple.html",''),a.put("ng-table/filters/select.html",''),a.put("ng-table/filters/text.html",''),a.put("ng-table/header.html",' |
|
'),a.put("ng-table/pager.html",' ')}]),b});
//# sourceMappingURL=./dist/ng-table.min.js.map
\ No newline at end of file
diff --git a/dist/ng-table.min.js.map b/dist/ng-table.min.js.map
index 5e8cf383..7cbc50c3 100644
--- a/dist/ng-table.min.js.map
+++ b/dist/ng-table.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"./dist/ng-table.min.js","sources":["./dist/ng-table.js"],"names":["angular","factory","define","amd","app","module","value","params","settings","$q","$log","ngTableDefaults","isNumber","n","isNaN","parseFloat","isFinite","ngTableParams","baseParameters","baseSettings","self","this","log","debugMode","debug","apply","arguments","data","parameters","newParameters","parseParamsFromUrl","isDefined","key","indexOf","keys","split","reverse","lastKey","i","len","length","name","v","extend","newSettings","isArray","total","page","count","filter","sorting","sortArray","isSortBy","field","direction","equals","orderBy","column","push","getData","$defer","resolve","isObject","slice","promise","getGroups","defer","then","groups","forEach","item","groupName","isFunction","result","generatePagesArray","currentPage","totalItems","pageSize","maxBlocks","maxPage","maxPivotPages","minPage","numPages","pages","Math","ceil","type","number","max","active","current","round","min","url","asString","pairs","hasOwnProperty","encodeURIComponent","subkey","isUndefined","pname","reload","pData","$scope","$loading","groupBy","$groups","$data","$emit","reloadPages","$params","group","defaultSort","filterDelay","counts","ngTableController","$timeout","resetPage","isFirstTimeLoad","isNullInstance","delayFilter","timer","callback","ms","cancel","$watch","newParams","oldParams","maybeResetPage","noop","sortBy","event","parsedSortable","parse","sortable","inverseSort","sortingParams","ctrlKey","metaKey","directive","$compile","$parse","restrict","priority","scope","controller","compile","element","columns","row","thead","find","tr","hasClass","el","attr","parsedAttribute","defaultValue","$columns","parsedTitle","headerTemplateURL","filterTemplateURL","filterName","$$name","templateURL","id","title","class","filterData","show","attrs","$filterRow","ngTable","paramsModel","text","showFilter","$parent","show_filter","disableFilter","disabled","def","$column","unshift","templates","header","templateHeader","pagination","templatePagination","headerTemplate","document","createElement","paginationTemplate","ng-table-pagination","template-url","remove","addClass","prepend","after","templateUrl","replace","link","$on","template","ng-include","append","run","$templateCache","put"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"./dist/ng-table.min.js","sources":["./dist/ng-table.js"],"names":["angular","factory","define","amd","app","module","value","params","settings","$q","$log","ngTableDefaults","isNumber","n","isNaN","parseFloat","isFinite","NgTableParams","baseParameters","baseSettings","self","this","log","debugMode","debug","apply","arguments","data","parameters","newParameters","parseParamsFromUrl","isDefined","key","indexOf","keys","split","reverse","lastKey","i","len","length","name","v","extend","newSettings","isArray","total","page","count","filter","sorting","sortArray","isSortBy","field","direction","equals","orderBy","column","push","getData","$defer","resolve","isObject","slice","promise","getGroups","defer","then","groups","forEach","item","groupName","isFunction","result","generatePagesArray","currentPage","totalItems","pageSize","maxBlocks","maxPage","maxPivotPages","minPage","numPages","pages","Math","ceil","type","number","max","active","current","round","min","url","asString","pairs","hasOwnProperty","encodeURIComponent","subkey","isUndefined","pname","reload","pData","$scope","$loading","groupBy","$groups","$data","$emit","reloadPages","$params","group","defaultSort","filterDelay","counts","controller","$timeout","$parse","$compile","$attrs","$element","ngTableColumn","resetPage","isFirstTimeLoad","$filterRow","isNullInstance","delayFilter","timer","callback","ms","cancel","$watch","newParams","oldParams","maybeResetPage","noop","compileDirectiveTemplates","hasClass","templates","header","templateHeader","pagination","templatePagination","addClass","headerTemplate","find","element","document","createElement","attr","prepend","paginationTemplate","ng-table-pagination","template-url","after","loadFilterData","$columns","$column","def","filterData","unshift","title","id","buildColumns","columns","map","col","buildColumn","setupBindingsToInternalScope","tableParamsExpr","tableParamsGetter","paramsModel","showFilter","$parent","show_filter","disableFilter","disabled","sortBy","event","parsedSortable","sortable","inverseSort","sortingParams","ctrlKey","metaKey","defaultScope","extendedCol","Object","create","prop","defaults","undefined","prop1","getterFn","call","class","headerTemplateURL","headerTitle","show","titleAlt","directive","restrict","priority","scope","compile","row","tr","el","getAttrValue","parsedAttribute","expr","locals","titleExpr","attrs","ngTable","parseDirectiveExpression","parts","tableParams","Error","tElement","showExpr","ngTableDynamic","templateUrl","replace","link","$on","template","ng-include","append","run","$templateCache","put"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index e327dfe7..4dd4ad02 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ng-table",
- "version": "0.4.3",
+ "version": "0.5.0",
"author": "Vitalii Savchuk ",
"license": "BSD",
"repository": {