diff --git a/CHANGELOG.md b/CHANGELOG.md index d7c00913..dad3d1f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,60 @@ + +# 1.0.0-alpha.7 (2015-08-27) + + +## Bug Fixes + +- **NgTableParams:** the url method does not URI encoded all parameter values + ([6e7bf3a7](https://github.com/esvit/ng-table/commit/6e7bf3a733f15987b5b3aefeb738f3d5c03aaa8e)) + + +## Features + +- **NgTableParams:** improved support for grouping data + ([1cd90cde](https://github.com/esvit/ng-table/commit/1cd90cdeb1b3720945c246e875d602ea8d30c873)) +- **groupRow:** extend header with a data group picker + ([ffa617cb](https://github.com/esvit/ng-table/commit/ffa617cb53fd02d38d02b86d4b37e52813dcec1e)) +- **ngTableDefaultGetData:** allow NgTableParams to determine if sorting, filtering, and paging apply + ([6536d734](https://github.com/esvit/ng-table/commit/6536d734f865a101021639db311648e334b649a7)) + + +## Breaking Changes + +- **NgTableParams:** + - due to [1cd90cde](https://github.com/esvit/ng-table/commit/1cd90cdeb1b3720945c246e875d602ea8d30c873), + + +* `settings().groupBy` renamed and moved to `parameters().group` + +Previously: + +```js +var params = new NgTableParams({...}, { groupBy: 'role'}); +// changing value: +params.settings({ groupBy: 'age'}); + +``` + +Now: + +```js +var params = new NgTableParams({group: 'role'}, {...}); +// changing value: +params.group('age'); +// OR +params.parameters({ group: { age: undefined }}); +``` + +* paging is applied after grouping + +This means that groups will no longer be duplicated and split across pages. + + - due to [6e7bf3a7](https://github.com/esvit/ng-table/commit/6e7bf3a733f15987b5b3aefeb738f3d5c03aaa8e), + + +All parameter values are now URI encoded, thus a numerical filter value will now be returned as a quoted string + + # 1.0.0-alpha.6 (2015-08-17) diff --git a/bower.json b/bower.json index 1940d263..d7a773a2 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "ng-table", - "version": "1.0.0-alpha.6", + "version": "1.0.0-alpha.7", "main": [ "./dist/ng-table.min.js", "./dist/ng-table.min.css" diff --git a/dist/ng-table.css b/dist/ng-table.css index 8382dc73..6140657a 100644 --- a/dist/ng-table.css +++ b/dist/ng-table.css @@ -83,6 +83,15 @@ -moz-box-sizing: border-box; box-sizing: border-box; } +.ng-table .ng-table-group-header th { + text-align: left; +} +.ng-table .ng-table-group-selector { + display: block; +} +.ng-table .ng-table-group-selector > button { + float: right; +} .ng-table + .pagination { margin-top: 0; } @@ -134,11 +143,14 @@ display: block; } } +.ng-table-group-selector:before, +.ng-table-group-selector:after, .filter:before, .filter:after { display: table; content: " "; } +.ng-table-group-selector:after, .filter:after { clear: both; } diff --git a/dist/ng-table.js b/dist/ng-table.js index 9ea4e960..4e26ef6e 100644 --- a/dist/ng-table.js +++ b/dist/ng-table.js @@ -288,6 +288,12 @@ */ function ngTableDefaultGetData($filter) { + var defaultDataOptions = {applyFilter: true, applySort: true, applyPaging: true}; + + getData.applyPaging = applyPaging; + getData.getFilterFn = getFilterFn; + getData.getOrderByFn = getOrderByFn; + return getData; function getFilterFn(params) { @@ -299,7 +305,15 @@ } } + function getOrderByFn (/*params*/){ + return $filter(provider.sortingFilterName); + } + function applyFilter(data, params) { + if (!params.hasFilter()) { + return data; + } + var filter = params.filter(true); var filterKeys = Object.keys(filter); var parsedFilter = filterKeys.reduce(function(result, key){ @@ -310,17 +324,28 @@ return filterFn.call(params, data, parsedFilter, params.settings().filterComparator); } + function applyPaging(data, params) { + var pagedData = data.slice((params.page() - 1) * params.count(), params.page() * params.count()); + params.total(data.length); // set total for recalc pagination + return pagedData; + } + + function applySort(data, params) { + var orderBy = params.orderBy(); + var orderByFn = getOrderByFn(params); + return orderBy.length ? orderByFn(data, orderBy) : data; + } + function getData(data, params) { if (data == null){ return []; } - var fData = params.hasFilter() ? applyFilter(data, params) : data; - var orderBy = params.orderBy(); - var orderedData = orderBy.length ? $filter(provider.sortingFilterName)(fData, orderBy) : fData; - var pagedData = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()); - params.total(orderedData.length); // set total for recalc pagination - return pagedData; + var options = angular.extend({}, defaultDataOptions, params.settings().dataOptions); + + var fData = options.applyFilter ? applyFilter(data, params) : data; + var orderedData = options.applySort ? applySort(fData, params) : fData; + return options.applyPaging ? applyPaging(orderedData, params) : orderedData; } // Sets the value at any depth in a nested object based on the path @@ -401,17 +426,31 @@ */ angular.module('ngTable').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 ''; } - }; + function createDefaults(){ + return { + 'class': createGetterSetter(''), + filter: createGetterSetter(false), + groupable: createGetterSetter(false), + filterData: angular.noop, + headerTemplateURL: createGetterSetter(false), + headerTitle: createGetterSetter(''), + sortable: createGetterSetter(false), + show: createGetterSetter(true), + title: createGetterSetter(''), + titleAlt: createGetterSetter('') + }; + } + + function createGetterSetter(initialValue){ + var value = initialValue; + var getter = function (/*$scope, locals*/){ + return value; + }; + getter.assign = function($scope, newValue){ + value = newValue; + }; + return getter; + } /** * @ngdoc method @@ -425,6 +464,7 @@ 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); + var defaults = createDefaults(); for (var prop in defaults) { if (extendedCol[prop] === undefined) { extendedCol[prop] = defaults[prop]; @@ -435,21 +475,28 @@ // - 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(){ + var getterFn = function () { return column[prop1]; }; + getterFn.assign = function($scope, value){ + column[prop1] = value; + }; + extendedCol[prop1] = getterFn; })(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){ + extendedCol[prop1] = function () { + if (arguments.length === 0) { return getterFn.call(column, defaultScope); } else { return getterFn.apply(column, arguments); } }; + if (getterFn.assign){ + extendedCol[prop1].assign = getterFn.assign; + } })(prop); } return extendedCol; @@ -477,7 +524,7 @@ * @description Parameters manager for ngTable */ - angular.module('ngTable').factory('NgTableParams', ['$q', '$log', 'ngTableDefaults', 'ngTableGetDataBcShim', 'ngTableDefaultGetData', 'ngTableEventsChannel', function($q, $log, ngTableDefaults, ngTableGetDataBcShim, ngTableDefaultGetData, ngTableEventsChannel) { + angular.module('ngTable').factory('NgTableParams', ['$q', '$log', '$filter', 'ngTableDefaults', 'ngTableGetDataBcShim', 'ngTableDefaultGetData', 'ngTableEventsChannel', function($q, $log, $filter, ngTableDefaults, ngTableGetDataBcShim, ngTableDefaultGetData, ngTableEventsChannel) { var isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); }; @@ -490,13 +537,17 @@ } var self = this, - committedParams, - erroredParams, + prevParamsMemento, + errParamsMemento, isCommittedDataset = false, log = function() { if (settings.debugMode && $log.debug) { $log.debug.apply(this, arguments); } + }, + defaultGroupOptions = { + defaultSort: 'asc', // set to 'asc' or 'desc' to apply sorting to groups + isExpanded: true }; this.data = []; @@ -531,7 +582,11 @@ } params[lastKey] = angular.extend(params[lastKey] || {}, value[lastKey]); } else { - params[key] = (isNumber(newParameters[key]) ? parseFloat(newParameters[key]) : newParameters[key]); + if (key === 'group'){ + params[key] = parseGroup(newParameters[key]); + } else { + params[key] = (isNumber(newParameters[key]) ? parseFloat(newParameters[key]) : newParameters[key]); + } } } log('ngTable: set parameters', params); @@ -540,6 +595,18 @@ return params; }; + function parseGroup(group){ + if (angular.isFunction(group)) { + return group; + } else if (angular.isString(group)) { + var grp = {}; + grp[group] = settings.groupOptions && settings.groupOptions.defaultSort; + return grp; + } else { + return group; + } + } + /** * @ngdoc method * @name NgTableParams#settings @@ -550,6 +617,14 @@ */ this.settings = function(newSettings) { if (angular.isDefined(newSettings)) { + + // todo: don't modify newSettings object: this introduces unexpected side effects; + // instead take a copy of newSettings + + if (newSettings.groupOptions){ + newSettings.groupOptions = angular.extend({}, settings.groupOptions, newSettings.groupOptions); + } + if (angular.isArray(newSettings.data)) { //auto-set the total from passed in data newSettings.total = newSettings.data.length; @@ -660,6 +735,37 @@ } }; + /** + * @ngdoc method + * @name NgTableParams#group + * @description If 'group' parameter is not set, return current grouping. Otherwise set current group. + * + * @param {string|Function|Object} group New group field + * @param {string} sortDirection Optional direction that the list of groups should be sorted + * @returns {Object} Current grouping or `this` + */ + this.group = function(group, sortDirection) { + if (!angular.isDefined(group)){ + return params.group; + } + + var newParameters = { + page: 1 + }; + if (angular.isFunction(group) && angular.isDefined(sortDirection)){ + group.sortDirection = sortDirection; + newParameters.group = group; + } else if (angular.isDefined(group) && angular.isDefined(sortDirection)) { + var groupArray = {}; + groupArray[group] = sortDirection; + newParameters.group = groupArray; + } else { + newParameters.group = group; + } + this.parameters(newParameters); + return this; + }; + /** * @ngdoc method * @name NgTableParams#sorting @@ -707,13 +813,17 @@ * @returns {Array} Array like: [ '-name', '+age' ] */ this.orderBy = function() { - var sorting = []; - for (var column in params.sorting) { - sorting.push((params.sorting[column] === "asc" ? "+" : "-") + column); - } - return sorting; + return convertSortToOrderBy(params.sorting); }; + function convertSortToOrderBy(sorting){ + var result = []; + for (var column in sorting) { + result.push((sorting[column] === "asc" ? "+" : "-") + column); + } + return result; + } + /** * @ngdoc method * @name NgTableParams#generatePagesArray @@ -795,9 +905,17 @@ */ this.isDataReloadRequired = function(){ // note: using != as want to treat null and undefined the same - return !isCommittedDataset || !angular.equals(params, committedParams) || hasGlobalSearchFieldChanges(); + return !isCommittedDataset || !angular.equals(createComparableParams(), prevParamsMemento) + || hasGlobalSearchFieldChanges(); }; + function createComparableParams(){ + var result = {params: params}; + if (angular.isFunction(params.group)){ + result.groupSortDirection = params.group.sortDirection; + } + return result + } /** * @ngdoc method * @name NgTableParams#hasFilter @@ -809,6 +927,32 @@ return Object.keys(this.filter(true)).length > 0; }; + /** + * @ngdoc method + * @name NgTableParams#hasGroup + * @description Determines if at least one group has been set + * @returns {Boolean} + */ + this.hasGroup = function(group, sortDirection){ + if (group == null) { + return angular.isFunction(params.group) || Object.keys(params.group).length > 0 + } + + if (angular.isFunction(group)) { + if (sortDirection == null) { + return params.group === group; + } else { + return params.group === group && group.sortDirection === sortDirection; + } + } else { + if (sortDirection == null) { + return Object.keys(params.group).indexOf(group) !== -1; + } else { + return params.group[group] === sortDirection; + } + } + }; + /** * @ngdoc method * @name NgTableParams#hasFilterChanges @@ -816,13 +960,14 @@ * to be run so as to ensure the data presented to the user reflects these filters */ this.hasFilterChanges = function(){ - return !angular.equals((params && params.filter), (committedParams && committedParams.filter)) || - hasGlobalSearchFieldChanges(); + var previousFilter = (prevParamsMemento && prevParamsMemento.params.filter); + return !angular.equals((params.filter), previousFilter) || hasGlobalSearchFieldChanges(); }; function hasGlobalSearchFieldChanges(){ - var currentVal = (params && params.filter && params.filter.$); - var previousVal = (committedParams && committedParams.filter && committedParams.filter.$); + var currentVal = (params.filter && params.filter.$); + var previousVal = + (prevParamsMemento && prevParamsMemento.params.filter && prevParamsMemento.params.filter.$); return !angular.equals(currentVal, previousVal); } @@ -843,25 +988,29 @@ name = encodeURIComponent(key); if (typeof item === "object") { for (var subkey in item) { - if (!angular.isUndefined(item[subkey]) && item[subkey] !== "") { + if (isSignificantValue(item[subkey], key)) { var pname = name + "[" + encodeURIComponent(subkey) + "]"; - if (asString) { - pairs.push(pname + "=" + item[subkey]); - } else { - pairs[pname] = item[subkey]; - } + collectValue(item[subkey], pname); } } - } else if (!angular.isFunction(item) && !angular.isUndefined(item) && item !== "") { - if (asString) { - pairs.push(name + "=" + encodeURIComponent(item)); - } else { - pairs[name] = encodeURIComponent(item); - } + } else if (!angular.isFunction(item) && isSignificantValue(item, key)) { + collectValue(item, name); } } } return pairs; + + function collectValue(value, key){ + if (asString) { + pairs.push(key + "=" + encodeURIComponent(value)); + } else { + pairs[key] = encodeURIComponent(value); + } + } + + function isSignificantValue(value, key){ + return key === "group" ? true : angular.isDefined(value) && value !== ""; + } }; /** @@ -875,10 +1024,10 @@ settings.$loading = true; - committedParams = angular.copy(params); + prevParamsMemento = angular.copy(createComparableParams()); isCommittedDataset = true; - if (settings.groupBy) { + if (self.hasGroup()) { pData = runInterceptorPipeline(runGetGroups); } else { pData = runInterceptorPipeline(runGetData); @@ -889,7 +1038,7 @@ var oldData = self.data; return pData.then(function(data) { settings.$loading = false; - erroredParams = null; + errParamsMemento = null; self.data = data; // note: I think it makes sense to publish this event even when data === oldData @@ -904,8 +1053,8 @@ return data; }).catch(function(reason){ - erroredParams = committedParams; - committedParams = null; + errParamsMemento = prevParamsMemento; + prevParamsMemento = null; isCommittedDataset = false; // "rethrow" return $q.reject(reason); @@ -922,7 +1071,7 @@ * `parameter` values have changed */ this.hasErrorState = function(){ - return !!(erroredParams && angular.equals(erroredParams, params)); + return !!(errParamsMemento && angular.equals(errParamsMemento, createComparableParams())); }; this.reloadPages = (function() { @@ -989,35 +1138,60 @@ * @description Return groups of data to display in the table * * Called by `NgTableParams` whenever it considers new data is to be loaded - * and when the `settings` object has a `groupBy` value + * and when a `group` value has been assigned * * @param {Object} params the `NgTableParams` requesting data */ function getGroups(params) { + + var group = params.group(); + var groupFn; + var sortDirection = undefined; + if (angular.isFunction(group)) { + groupFn = group; + sortDirection = group.sortDirection; + } else { + // currently support for only one group implemented + var groupField = Object.keys(group)[0]; + sortDirection = group[groupField]; + groupFn = function(item){ + return item[groupField]; + }; + } + var settings = params.settings(); + var originalDataOptions = settings.dataOptions; + settings.dataOptions = { applyPaging: false }; var adaptedFn = settings.getDataFnAdaptor(settings.getData); var gotData = $q.when(adaptedFn.call(settings, params)); return gotData.then(function(data) { var groups = {}; + var groupOptions = settings.groupOptions || defaultGroupOptions; angular.forEach(data, function(item) { - var groupName; - if (angular.isFunction(settings.groupBy)) { - groupName = settings.groupBy(item); - } else { - groupName = item[settings.groupBy]; - } - + var groupName = groupFn(item); groups[groupName] = groups[groupName] || { - data: [] + data: [], + $hideRows: !groupOptions.isExpanded, + value: groupName }; - groups[groupName]['value'] = groupName; groups[groupName].data.push(item); }); var result = []; for (var i in groups) { result.push(groups[i]); } - return result; + if (sortDirection) { + var orderByFn = ngTableDefaultGetData.getOrderByFn(); + var orderBy = convertSortToOrderBy({ + value: sortDirection + }); + result = orderByFn(result, orderBy); + } + + return ngTableDefaultGetData.applyPaging(result, params); + }).finally(function(){ + // restore the real options + settings.dataOptions = originalDataOptions; }); } } @@ -1027,8 +1201,7 @@ count: 10, filter: {}, sorting: {}, - group: {}, - groupBy: null + group: {} }; angular.extend(params, ngTableDefaults.params); @@ -1050,6 +1223,7 @@ filterFilterName: undefined, // when defined overrides ngTableDefaultGetDataProvider.filterFilterName filterFn: undefined, // when defined overrides the filter function that ngTableDefaultGetData uses filterLayout: 'stack', // alternative: 'horizontal' + groupOptions: angular.copy(defaultGroupOptions), counts: [10, 25, 50, 100], interceptors: [], paginationMaxBlocks: 11, @@ -1261,6 +1435,24 @@ $scope.show_filter = value; }); } + + $scope.$groupRow = {}; + if ($attrs.showGroup) { + var showGroupGetter = $parse($attrs.showGroup); + $scope.$parent.$watch(showGroupGetter, function(value) { + $scope.$groupRow.show = value; + }); + if (showGroupGetter.assign){ + $scope.$watch('$groupRow.show', function(value) { + showGroupGetter.assign($scope.$parent, value); + }); + } + } else{ + $scope.$watch('params.hasGroup()', function(newValue) { + $scope.$groupRow.show = newValue; + }); + } + if ($attrs.disableFilter) { $scope.$parent.$watch($attrs.disableFilter, function(value) { $scope.$filterRow.disabled = value; @@ -1275,7 +1467,7 @@ ngTableEventsChannel.onPagesChanged(bindPagesToScope, $scope, isMyPublisher); function bindDataToScope(params, newDatapage){ - if (params.settings().groupBy) { + if (params.hasGroup()) { $scope.$groups = newDatapage; } else { $scope.$data = newDatapage; @@ -1325,19 +1517,24 @@ compile: function(element) { var columns = [], i = 0, - row = null; + dataRow, + groupRow, + rows = []; - // IE 8 fix :not(.ng-table-group) selector angular.forEach(angular.element(element.find('tr')), function(tr) { - tr = angular.element(tr); - if (!tr.hasClass('ng-table-group') && !row) { - row = tr; - } + rows.push(angular.element(tr)) }); - if (!row) { + dataRow = rows.filter(function(tr){ + return !tr.hasClass('ng-table-group'); + })[0]; + groupRow = rows.filter(function(tr){ + return tr.hasClass('ng-table-group'); + })[0]; + + if (!dataRow) { return; } - angular.forEach(row.find('td'), function(item) { + angular.forEach(dataRow.find('td'), function(item) { var el = angular.element(item); if (el.attr('ignore-cell') && 'true' === el.attr('ignore-cell')) { return; @@ -1346,19 +1543,43 @@ var getAttrValue = function(attr){ return el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr); }; + var setAttrValue = function(attr, value){ + if (el.attr('x-data-' + attr)){ + el.attr('x-data-' + attr, value) + } else if (el.attr('data' + attr)){ + el.attr('data' + attr, value) + } else { + el.attr(attr, value) + } + }; var parsedAttribute = function(attr) { var expr = getAttrValue(attr); if (!expr){ return undefined; } - return function(scope, locals) { + + var localValue; + var getter = function (scope, locals) { + if (localValue !== undefined){ + return localValue; + } return $parse(expr)(scope, angular.extend(locals || {}, { $columns: columns })); }; + getter.assign = function($scope, value){ + var parsedExpr = $parse(expr); + if (parsedExpr.assign) { + // we should be writing back to the parent scope as this is where the expression + // came from + parsedExpr.assign($scope.$parent, value); + } else { + localValue = value; + } + }; + return getter; }; - var titleExpr = getAttrValue('title-alt') || getAttrValue('title'); if (titleExpr){ el.attr('data-title-text', '{{' + titleExpr + '}}'); // this used in responsive table @@ -1373,12 +1594,19 @@ sortable: parsedAttribute('sortable'), 'class': parsedAttribute('header-class'), filter: parsedAttribute('filter'), + groupable: parsedAttribute('groupable'), headerTemplateURL: parsedAttribute('header'), filterData: parsedAttribute('filter-data'), - show: (el.attr("ng-if") ? function (scope) { - return $parse(el.attr("ng-if"))(scope); - } : undefined) + show: el.attr("ng-if") ? parsedAttribute('ng-if') : undefined }); + + if (groupRow){ + // change ng-if to bind to our column definition which we know will be writable + // because this will potentially increase the $watch count, only do so when we definitely + // need to change visibility of the columns. + // currently only ngTableGroupRow directive needs this + setAttrValue('ng-if', '$columns[' + (columns.length - 1) + '].show(this)'); + } }); return function(scope, element, attrs, controller) { scope.$columns = columns = controller.buildColumns(columns); @@ -1413,7 +1641,7 @@ * A dynamic version of the {@link ngTable ngTable} directive that accepts a dynamic list of columns * definitions to render */ - angular.module('ngTable').directive('ngTableDynamic', ['$parse', function ($parse){ + angular.module('ngTable').directive('ngTableDynamic', [function (){ return { restrict: 'A', @@ -1586,6 +1814,149 @@ } })(); +/** + * ngTable: Table + Angular JS + * + * @author Vitalii Savchuk + * @url https://github.com/esvit/ng-table/ + * @license New BSD License + */ + +(function(){ + 'use strict'; + + angular.module('ngTable') + .controller('ngTableGroupRowController', ngTableGroupRowController); + + ngTableGroupRowController.$inject = ['$scope']; + + function ngTableGroupRowController($scope){ + + var groupFns = []; + + init(); + + function init(){ + $scope.getGroupables = getGroupables; + $scope.getGroupTitle = getGroupTitle; + $scope.getVisibleColumns = getVisibleColumns; + $scope.groupBy = groupBy; + $scope.isSelectedGroup = isSelectedGroup; + + $scope.$watch('params.group()', setGroup, true); + } + + function changeSortDirection(){ + var newDirection; + if ($scope.params.hasGroup($scope.$selGroup, 'asc')) { + newDirection = 'desc'; + } else if ($scope.params.hasGroup($scope.$selGroup, 'desc')){ + newDirection = ''; + } else { + newDirection = 'asc'; + } + $scope.params.group($scope.$selGroup, newDirection); + } + + function findGroupColumn(groupKey) { + return $scope.$columns.filter(function ($column) { + return $column.groupable($scope) === groupKey; + })[0]; + } + + function getGroupTitle(group){ + return angular.isFunction(group) ? group.title : group.title($scope); + } + + function getGroupables(){ + var groupableCols = $scope.$columns.filter(function ($column) { + return $column.groupable($scope); + }); + return groupFns.concat(groupableCols); + } + + function getVisibleColumns(){ + return $scope.$columns.filter(function($column){ + return $column.show($scope); + }) + } + + function groupBy(group){ + if (group.groupable){ + if (group.groupable($scope) === $scope.$selGroup){ + changeSortDirection(); + } else { + var existingGroupCol = findGroupColumn($scope.$selGroup); + if (existingGroupCol && existingGroupCol.show.assign && group.show.assign){ + existingGroupCol.show.assign($scope, true); + group.show.assign($scope, false); + } + $scope.params.group(group.groupable($scope)); + } + } else{ + if (group === $scope.$selGroup){ + changeSortDirection(); + } else { + $scope.params.group(group); + } + } + } + + function isSelectedGroup(group){ + if (group.groupable){ + return group.groupable($scope) === $scope.$selGroup; + } else { + return group === $scope.$selGroup; + } + } + + function setGroup(group){ + if (angular.isFunction(group)) { + groupFns = [group]; + $scope.$selGroup = group; + $scope.$selGroupTitle = group.title; + } else { + // note: currently only one group is implemented + var groupKey = Object.keys(group || {})[0]; + var groupedColumn = findGroupColumn(groupKey); + if (groupedColumn) { + $scope.$selGroupTitle = groupedColumn.title($scope); + $scope.$selGroup = groupKey; + } + } + } + } +})(); + +/** + * ngTable: Table + Angular JS + * + * @author Vitalii Savchuk + * @url https://github.com/esvit/ng-table/ + * @license New BSD License + */ + +(function(){ + 'use strict'; + + angular.module('ngTable') + .directive('ngTableGroupRow', ngTableGroupRow); + + ngTableGroupRow.$inject = []; + + function ngTableGroupRow(){ + var directive = { + restrict: 'E', + replace: true, + templateUrl: 'ng-table/groupRow.html', + scope: true, + controller: 'ngTableGroupRowController', + controllerAs: 'dctrl' + }; + return directive; + } +})(); + /** * ngTable: Table + Angular JS * @@ -1735,9 +2106,10 @@ 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/groupRow.html', ' {{$selGroupTitle}} '); + $templateCache.put('ng-table/header.html', ' '); $templateCache.put('ng-table/pager.html', ' '); - $templateCache.put('ng-table/sorterRow.html', '
'); + $templateCache.put('ng-table/sorterRow.html', '
'); }]); return angular.module('ngTable'); })); diff --git a/dist/ng-table.less b/dist/ng-table.less index afb0abf6..3a35abd2 100644 --- a/dist/ng-table.less +++ b/dist/ng-table.less @@ -89,6 +89,17 @@ } } + .ng-table-group-header { + th { + text-align: left; + } + } + .ng-table-group-selector { + display: block; + > button { + float: right; + } + } & + .pagination { margin-top: 0; } @@ -150,11 +161,14 @@ .ng-table-counts {} } +.ng-table-group-selector:before, +.ng-table-group-selector:after, .filter:before, .filter:after { display: table; content: " "; } +.ng-table-group-selector:after, .filter:after { clear: both; } diff --git a/dist/ng-table.min.css b/dist/ng-table.min.css index 1e3e2cfd..0e6d3e75 100644 --- a/dist/ng-table.min.css +++ b/dist/ng-table.min.css @@ -1,3 +1,3 @@ -/*! ngTable v1.0.0-alpha.6 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ +/*! ngTable v1.0.0-alpha.7 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 .sort-indicator{padding-right:18px;position:relative}.ng-table th.sortable .sort-indicator:after,.ng-table th.sortable .sort-indicator:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:5px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable .sort-indicator: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 .sort-indicator:hover:after,.ng-table th.sortable .sort-indicator: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 .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:after{margin-top:-2px}.ng-table th.sortable.sort-desc .sort-indicator:before,.ng-table th.sortable.sort-asc .sort-indicator:before{visibility:hidden}.ng-table th.sortable.sort-asc .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc .sort-indicator: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}}.filter:before,.filter:after{display:table;content:" "}.filter:after{clear:both}.filter>.filter-cell{float:left;box-sizing:border-box}.filter-horizontal>.filter-cell{padding:0 2px}.filter-horizontal>.filter-cell:first-child{padding-left:0}.filter-horizontal>.filter-cell:last-child,.filter-horizontal>.filter-cell.last{padding-right:0}.s12{width:100%}.s11{width:91.66666666666666%}.s10{width:83.33333333333334%}.s9{width:75%}.s8{width:66.66666666666666%}.s7{width:58.333333333333336%}.s6{width:50%}.s5{width:41.66666666666667%}.s4{width:33.33333333333333%}.s3{width:25%}.s2{width:16.666666666666664%}.s1{width:8.333333333333332%}@media all and (max-width:468px){.s12,.s11,.s10,.s9,.s8,.s7,.s6,.s5,.s4,.s3,.s2,.s1{width:100%}.filter>.filter-cell{padding:0}} \ No newline at end of file +.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 .sort-indicator{padding-right:18px;position:relative}.ng-table th.sortable .sort-indicator:after,.ng-table th.sortable .sort-indicator:before{content:"";border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:visible;right:5px;top:50%;position:absolute;opacity:.3;margin-top:-4px}.ng-table th.sortable .sort-indicator: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 .sort-indicator:hover:after,.ng-table th.sortable .sort-indicator: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 .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:after{margin-top:-2px}.ng-table th.sortable.sort-desc .sort-indicator:before,.ng-table th.sortable.sort-asc .sort-indicator:before{visibility:hidden}.ng-table th.sortable.sort-asc .sort-indicator:after,.ng-table th.sortable.sort-asc .sort-indicator:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}.ng-table th.sortable.sort-desc .sort-indicator: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 .ng-table-group-header th{text-align:left}.ng-table .ng-table-group-selector{display:block}.ng-table .ng-table-group-selector>button{float:right}.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}}.ng-table-group-selector:before,.ng-table-group-selector:after,.filter:before,.filter:after{display:table;content:" "}.ng-table-group-selector:after,.filter:after{clear:both}.filter>.filter-cell{float:left;box-sizing:border-box}.filter-horizontal>.filter-cell{padding:0 2px}.filter-horizontal>.filter-cell:first-child{padding-left:0}.filter-horizontal>.filter-cell:last-child,.filter-horizontal>.filter-cell.last{padding-right:0}.s12{width:100%}.s11{width:91.66666666666666%}.s10{width:83.33333333333334%}.s9{width:75%}.s8{width:66.66666666666666%}.s7{width:58.333333333333336%}.s6{width:50%}.s5{width:41.66666666666667%}.s4{width:33.33333333333333%}.s3{width:25%}.s2{width:16.666666666666664%}.s1{width:8.333333333333332%}@media all and (max-width:468px){.s12,.s11,.s10,.s9,.s8,.s7,.s6,.s5,.s4,.s3,.s2,.s1{width:100%}.filter>.filter-cell{padding:0}} \ No newline at end of file diff --git a/dist/ng-table.min.js b/dist/ng-table.min.js index a3e8a555..b01f5ce6 100644 --- a/dist/ng-table.min.js +++ b/dist/ng-table.min.js @@ -1,4 +1,4 @@ -/*! ngTable v1.0.0-alpha.6 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-table - New BSD License */ +/*! ngTable v1.0.0-alpha.7 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)}(window.angular||null,function(a){"use strict";return function(){a.module("ngTable",[])}(),function(){a.module("ngTable").value("ngTableDefaults",{params:{},settings:{}})}(),function(){function b(b){function c(b,c){var f=b.charAt(0).toUpperCase()+b.substring(1),g={};return g["on"+f]=d(b),g["publish"+f]=e(b),a.extend(c,g)}function d(c){return function(d){var e=a.identity,g=b;if(2===arguments.length?a.isFunction(arguments[1].$new)?g=arguments[1]:e=arguments[1]:arguments.length>2&&(g=arguments[1],e=arguments[2]),a.isObject(e)){var h=e;e=function(a){return a===h}}return g.$on("ngTable:"+c,function(a,b){if(!b.isNullInstance){var c=f(arguments,2),g=[b].concat(c);e.apply(this,g)&&d.apply(this,g)}})}}function e(a){return function(){var c=["ngTable:"+a].concat(Array.prototype.slice.call(arguments));b.$broadcast.apply(b,c)}}function f(a,b){return Array.prototype.slice.call(a,null==b?1:b)}var g={};return g=c("afterCreated",g),g=c("afterReloadData",g),g=c("datasetChanged",g),g=c("pagesChanged",g)}a.module("ngTable").factory("ngTableEventsChannel",b),b.$inject=["$rootScope"]}(),function(){function b(){function b(){c()}function c(){f=g}function d(b){var c=a.extend({},f,b);c.aliasUrls=a.extend({},f.aliasUrls,b.aliasUrls),f=c}function e(){function b(b,c){return a.isObject(b)&&(b=b.id),-1!==b.indexOf("/")?b:e.getUrlForAlias(b,c)}function c(a){return f.aliasUrls[a]||f.defaultBaseUrl+a+f.defaultExt}var d,e={config:d,getTemplateUrl:b,getUrlForAlias:c};return Object.defineProperty(e,"config",{get:function(){return d=d||a.copy(f)},enumerable:!0}),e}var f,g={defaultBaseUrl:"ng-table/filters/",defaultExt:".html",aliasUrls:{}};this.$get=e,this.resetConfigs=c,this.setConfig=d,b(),e.$inject=[]}a.module("ngTable").provider("ngTableFilterConfig",b),b.$inject=[]}(),function(){function b(){function b(b){function d(d){var e=d.settings();return a.isFunction(e.filterFn)?e.filterFn:b(e.filterFilterName||c.filterFilterName)}function e(a,b){var c=b.filter(!0),e=Object.keys(c),f=e.reduce(function(a,b){return a=g(a,c[b],b)},{}),h=d(b);return h.call(b,a,f,b.settings().filterComparator)}function f(a,d){if(null==a)return[];var f=d.hasFilter()?e(a,d):a,g=d.orderBy(),h=g.length?b(c.sortingFilterName)(f,g):f,i=h.slice((d.page()-1)*d.count(),d.page()*d.count());return d.total(h.length),i}function g(a,b,c){var d=c.split("."),e=a,f=d[d.length-1],g=e,h=d.slice(0,d.length-1);return h.forEach(function(a){g.hasOwnProperty(a)||(g[a]={}),g=g[a]}),g[f]=b,e}return f}var c=this;c.$get=b,c.filterFilterName="filter",c.sortingFilterName="orderBy",b.$inject=["$filter"]}a.module("ngTable").provider("ngTableDefaultGetData",b),b.$inject=[]}(),function(){function b(a){function b(b){return function(){var c=a.defer(),d=b.apply(this,[c].concat(Array.prototype.slice.call(arguments)));return d||(d=c.promise),d}}return b}a.module("ngTable").factory("ngTableGetDataBcShim",b),b.$inject=["$q"]}(),function(){a.module("ngTable").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}}])}(),function(){a.module("ngTable").factory("NgTableParams",["$q","$log","ngTableDefaults","ngTableGetDataBcShim","ngTableDefaultGetData","ngTableEventsChannel",function(b,c,d,e,f,g){var h=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},i=function(i,j){function k(){var b=u&&u.filter&&u.filter.$,c=p&&p.filter&&p.filter.$;return!a.equals(b,c)}function l(){var a=v.getDataFnAdaptor(v.getData);return b.when(a.call(v,r))}function m(){var a=v.getGroupsFnAdaptor(v.getGroups);return b.when(a.call(v,r))}function n(a){var c=v.interceptors||[];return c.reduce(function(a,c){var d=c.response&&c.response.bind(c)||b.when,e=c.responseError&&c.responseError.bind(c)||b.reject;return a.then(function(a){return d(a,r)},function(a){return e(a,r)})},a())}function o(){function c(a){return f(a.settings().data,a)}function d(c){var d=c.settings(),e=d.getDataFnAdaptor(d.getData),f=b.when(e.call(d,c));return f.then(function(b){var c={};a.forEach(b,function(b){var e;e=a.isFunction(d.groupBy)?d.groupBy(b):b[d.groupBy],c[e]=c[e]||{data:[]},c[e].value=e,c[e].data.push(b)});var e=[];for(var f in c)e.push(c[f]);return e})}return{getDataFnAdaptor:a.identity,getGroupsFnAdaptor:a.identity,getData:c,getGroups:d}}"boolean"==typeof i&&(this.isNullInstance=!0);var p,q,r=this,s=!1,t=function(){v.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 e=b[d];if(c&&d.indexOf("[")>=0){for(var f=d.split(/\[(.*)\]/).reverse(),g="",i=0,j=f.length;j>i;i++){var k=f[i];if(""!==k){var l=e;e={},e[g=k]=h(l)?parseFloat(l):l}}"sorting"===g&&(u[g]={}),u[g]=a.extend(u[g]||{},e[g])}else u[d]=h(b[d])?parseFloat(b[d]):b[d]}return t("ngTable: set parameters",u),this}return u},this.settings=function(b){if(a.isDefined(b)){a.isArray(b.data)&&(b.total=b.data.length),b.getData&&b.getData.length>1&&(b.getDataFnAdaptor=e),b.getGroups&&b.getGroups.length>2&&(b.getGroupsFnAdaptor=e);var c=v.data;v=a.extend(v,b);var d=b.hasOwnProperty("data")&&b.data!=c;return d&&(s&&this.page(1),s=!1,g.publishDatasetChanged(this,b.data,c)),t("ngTable: set settings",v),this}return v},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):u.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):v.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):u.count},this.filter=function(b){if(a.isDefined(b)&&a.isObject(b))return this.parameters({filter:b,page:1});if(b===!0){for(var c=Object.keys(u.filter),d={},e=0;ed?6:d,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((v.paginationMaxBlocks-v.paginationMinBlocks)/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.isDataReloadRequired=function(){return!s||!a.equals(u,p)||k()},this.hasFilter=function(){return Object.keys(this.filter(!0)).length>0},this.hasFilterChanges=function(){return!a.equals(u&&u.filter,p&&p.filter)||k()},this.url=function(b){b=b||!1;var c=b?[]:{};for(var d in u)if(u.hasOwnProperty(d)){var e=u[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 c=this,d=null;v.$loading=!0,p=a.copy(u),s=!0,d=n(v.groupBy?m:l),t("ngTable: reload data");var e=c.data;return d.then(function(a){return v.$loading=!1,q=null,c.data=a,g.publishAfterReloadData(c,a,e),c.reloadPages(),v.$scope&&v.$scope.$emit("ngTableAfterReloadData"),a})["catch"](function(a){return q=p,p=null,s=!1,b.reject(a)})},this.hasErrorState=function(){return!(!q||!a.equals(q,u))},this.reloadPages=function(){var b;return function(){var c=b,d=r.generatePagesArray(r.page(),r.total(),r.count());a.equals(c,d)||(b=d,g.publishPagesChanged(this,d,c))}}();var u={page:1,count:10,filter:{},sorting:{},group:{},groupBy:null};a.extend(u,d.params);var v={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterComparator:void 0,filterDelay:750,filterFilterName:void 0,filterFn:void 0,filterLayout:"stack",counts:[10,25,50,100],interceptors:[],paginationMaxBlocks:11,paginationMinBlocks:5,sortingIndicator:"span"};return this.settings(o()),this.settings(d.settings),this.settings(j),this.parameters(i,!0),g.publishAfterCreated(this),this};return i}]),a.module("ngTable").factory("ngTableParams",["NgTableParams",function(a){return a}])}(),function(){a.module("ngTable").controller("ngTableController",["$scope","NgTableParams","$timeout","$parse","$compile","$attrs","$element","ngTableColumn","ngTableEventsChannel",function(b,c,d,e,f,g,h,i,j){function k(a){if(a&&!b.params.hasErrorState()){b.params.settings().$scope=b;var c=b.params;if(c.hasFilterChanges()){var d=function(){c.page(1),c.reload()};c.settings().filterDelay?m(d,c.settings().filterDelay):d()}else c.reload()}}function l(){function a(a,c){a.settings().groupBy?b.$groups=c:b.$data=c}function c(a,c){b.pages=c}function d(a){return b.params===a}j.onAfterReloadData(a,b,d),j.onPagesChanged(c,b,d)}b.$filterRow={},b.$loading=!1,b.hasOwnProperty("params")||(b.params=new c(!0)),b.params.settings().$scope=b;var m=function(){var a=0;return function(b,c){d.cancel(a),a=d(b,c)}}();b.$watch("params",function(a,b){a!==b&&a&&a.reload()},!1),b.$watch("params.isDataReloadRequired()",k),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,d=!1;a.forEach(h.children(),function(a){"THEAD"===a.tagName&&(d=!0)}),d||(c=a.element(document.createElement("thead")).attr("ng-include","templates.header"),h.prepend(c));var e=a.element(document.createElement("div")).attr({"ng-table-pagination":"params","template-url":"templates.pagination"});h.after(e),c&&f(c)(b),f(e)(b)}},this.loadFilterData=function(c){a.forEach(c,function(c){var d;if(d=c.filterData(b,{$column:c}),!d)return void delete c.filterData;if(a.isObject(d)&&(a.isObject(d.promise)||a.isFunction(d.then))){var e=a.isFunction(d.then)?d:d.promise;return delete c.filterData,e.then(function(b){a.isArray(b)||a.isFunction(b)||a.isObject(b)||(b=[]),c.data=b})}return c.data=d})},this.buildColumns=function(a){return a.map(function(a){return i.buildColumn(a,b)})},this.parseNgTableDynamicExpr=function(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')")},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})},l()}])}(),function(){a.module("ngTable").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-if")?function(a){return c(f.attr("ng-if"))(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}}}])}(),function(){a.module("ngTable").directive("ngTableDynamic",["$parse",function(){return{restrict:"A",priority:1001,scope:!0,controller:"ngTableController",compile:function(b){var c;return a.forEach(a.element(b.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||c||(c=b)}),c?(a.forEach(c.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-if");f||c.attr("ng-if","$columns[$index].show(this)")}),function(a,b,c,d){var e=d.parseNgTableDynamicExpr(c.ngTableDynamic);d.setupBindingsToInternalScope(e.tableParams),d.compileDirectiveTemplates(),a.$watchCollection(e.columns,function(b){a.$columns=d.buildColumns(b),d.loadFilterData(a.$columns)})}):void 0}}}])}(),function(){a.module("ngTable").directive("ngTablePagination",["$compile","ngTableEventsChannel",function(b,c){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(d,e){c.onAfterReloadData(function(a){d.pages=a.generatePagesArray()},d,function(a){return a===d.params}),d.$watch("templateUrl",function(c){if(!a.isUndefined(c)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),e.append(f),b(f)(d)}})}}}])}(),function(){function b(b,c){b.config=c,b.getFilterCellCss=function(a,b){if("horizontal"!==b)return"s12";var c=Object.keys(a).length,d=parseInt(12/c,10);return"s"+d},b.getFilterPlaceholderValue=function(b){return a.isObject(b)?b.placeholder:""}}a.module("ngTable").controller("ngTableFilterRowController",b),b.$inject=["$scope","ngTableFilterConfig"]}(),function(){function b(){var a={restrict:"E",replace:!0,templateUrl:"ng-table/filterRow.html",scope:!0,controller:"ngTableFilterRowController"};return a}a.module("ngTable").directive("ngTableFilterRow",b),b.$inject=[]}(),function(){function b(a){function b(b,c){var d=b.sortable&&b.sortable();if(d){var e=a.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=a.params.sorting()&&a.params.sorting()[d]&&a.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?a.params.sorting():{};h[d]=g?f:e,a.params.parameters({sorting:h})}}a.sortBy=b}a.module("ngTable").controller("ngTableSorterRowController",b),b.$inject=["$scope"]}(),function(){function b(){var a={restrict:"E",replace:!0,templateUrl:"ng-table/sorterRow.html",scope:!0,controller:"ngTableSorterRowController"};return a}a.module("ngTable").directive("ngTableSorterRow",b),b.$inject=[]}(),function(){function b(){var a={restrict:"A",controller:c};return a}function c(b,c,d,e){function f(){var a=c(d.ngTableSelectFilterDs)(b);h(a).then(function(a){a&&!g(a)&&a.unshift({id:"",title:""}),a=a||[],b.$selectData=a})}function g(a){for(var b,c=0;c
'),a.put("ng-table/filters/number.html",' '),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",' '),a.put("ng-table/sorterRow.html",'
')}]),a.module("ngTable")}); +!function(a,b){"use strict";return"function"==typeof define&&define.amd?void define(["angular"],function(a){return b(a)}):b(a)}(window.angular||null,function(a){"use strict";return function(){a.module("ngTable",[])}(),function(){a.module("ngTable").value("ngTableDefaults",{params:{},settings:{}})}(),function(){function b(b){function c(b,c){var f=b.charAt(0).toUpperCase()+b.substring(1),g={};return g["on"+f]=d(b),g["publish"+f]=e(b),a.extend(c,g)}function d(c){return function(d){var e=a.identity,g=b;if(2===arguments.length?a.isFunction(arguments[1].$new)?g=arguments[1]:e=arguments[1]:arguments.length>2&&(g=arguments[1],e=arguments[2]),a.isObject(e)){var h=e;e=function(a){return a===h}}return g.$on("ngTable:"+c,function(a,b){if(!b.isNullInstance){var c=f(arguments,2),g=[b].concat(c);e.apply(this,g)&&d.apply(this,g)}})}}function e(a){return function(){var c=["ngTable:"+a].concat(Array.prototype.slice.call(arguments));b.$broadcast.apply(b,c)}}function f(a,b){return Array.prototype.slice.call(a,null==b?1:b)}var g={};return g=c("afterCreated",g),g=c("afterReloadData",g),g=c("datasetChanged",g),g=c("pagesChanged",g)}a.module("ngTable").factory("ngTableEventsChannel",b),b.$inject=["$rootScope"]}(),function(){function b(){function b(){c()}function c(){f=g}function d(b){var c=a.extend({},f,b);c.aliasUrls=a.extend({},f.aliasUrls,b.aliasUrls),f=c}function e(){function b(b,c){return a.isObject(b)&&(b=b.id),-1!==b.indexOf("/")?b:e.getUrlForAlias(b,c)}function c(a){return f.aliasUrls[a]||f.defaultBaseUrl+a+f.defaultExt}var d,e={config:d,getTemplateUrl:b,getUrlForAlias:c};return Object.defineProperty(e,"config",{get:function(){return d=d||a.copy(f)},enumerable:!0}),e}var f,g={defaultBaseUrl:"ng-table/filters/",defaultExt:".html",aliasUrls:{}};this.$get=e,this.resetConfigs=c,this.setConfig=d,b(),e.$inject=[]}a.module("ngTable").provider("ngTableFilterConfig",b),b.$inject=[]}(),function(){function b(){function b(b){function d(d){var e=d.settings();return a.isFunction(e.filterFn)?e.filterFn:b(e.filterFilterName||c.filterFilterName)}function e(){return b(c.sortingFilterName)}function f(a,b){if(!b.hasFilter())return a;var c=b.filter(!0),e=Object.keys(c),f=e.reduce(function(a,b){return a=j(a,c[b],b)},{}),g=d(b);return g.call(b,a,f,b.settings().filterComparator)}function g(a,b){var c=a.slice((b.page()-1)*b.count(),b.page()*b.count());return b.total(a.length),c}function h(a,b){var c=b.orderBy(),d=e(b);return c.length?d(a,c):a}function i(b,c){if(null==b)return[];var d=a.extend({},k,c.settings().dataOptions),e=d.applyFilter?f(b,c):b,i=d.applySort?h(e,c):e;return d.applyPaging?g(i,c):i}function j(a,b,c){var d=c.split("."),e=a,f=d[d.length-1],g=e,h=d.slice(0,d.length-1);return h.forEach(function(a){g.hasOwnProperty(a)||(g[a]={}),g=g[a]}),g[f]=b,e}var k={applyFilter:!0,applySort:!0,applyPaging:!0};return i.applyPaging=g,i.getFilterFn=d,i.getOrderByFn=e,i}var c=this;c.$get=b,c.filterFilterName="filter",c.sortingFilterName="orderBy",b.$inject=["$filter"]}a.module("ngTable").provider("ngTableDefaultGetData",b),b.$inject=[]}(),function(){function b(a){function b(b){return function(){var c=a.defer(),d=b.apply(this,[c].concat(Array.prototype.slice.call(arguments)));return d||(d=c.promise),d}}return b}a.module("ngTable").factory("ngTableGetDataBcShim",b),b.$inject=["$q"]}(),function(){a.module("ngTable").factory("ngTableColumn",[function(){function b(){return{"class":c(""),filter:c(!1),groupable:c(!1),filterData:a.noop,headerTemplateURL:c(!1),headerTitle:c(""),sortable:c(!1),show:c(!0),title:c(""),titleAlt:c("")}}function c(a){var b=a,c=function(){return b};return c.assign=function(a,c){b=c},c}function d(c,d){var e=Object.create(c),f=b();for(var g in f)void 0===e[g]&&(e[g]=f[g]),a.isFunction(e[g])||!function(a){var b=function(){return c[a]};b.assign=function(b,d){c[a]=d},e[a]=b}(g),function(a){var b=e[a];e[a]=function(){return 0===arguments.length?b.call(c,d):b.apply(c,arguments)},b.assign&&(e[a].assign=b.assign)}(g);return e}return{buildColumn:d}}])}(),function(){a.module("ngTable").factory("NgTableParams",["$q","$log","$filter","ngTableDefaults","ngTableGetDataBcShim","ngTableDefaultGetData","ngTableEventsChannel",function(b,c,d,e,f,g,h){var i=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},j=function(d,j){function k(b){if(a.isFunction(b))return b;if(a.isString(b)){var c={};return c[b]=z.groupOptions&&z.groupOptions.defaultSort,c}return b}function l(a){var b=[];for(var c in a)b.push(("asc"===a[c]?"+":"-")+c);return b}function m(){var b={params:y};return a.isFunction(y.group)&&(b.groupSortDirection=y.group.sortDirection),b}function n(){var b=y.filter&&y.filter.$,c=s&&s.params.filter&&s.params.filter.$;return!a.equals(b,c)}function o(){var a=z.getDataFnAdaptor(z.getData);return b.when(a.call(z,u))}function p(){var a=z.getGroupsFnAdaptor(z.getGroups);return b.when(a.call(z,u))}function q(a){var c=z.interceptors||[];return c.reduce(function(a,c){var d=c.response&&c.response.bind(c)||b.when,e=c.responseError&&c.responseError.bind(c)||b.reject;return a.then(function(a){return d(a,u)},function(a){return e(a,u)})},a())}function r(){function c(a){return g(a.settings().data,a)}function d(c){var d,e=c.group(),f=void 0;if(a.isFunction(e))d=e,f=e.sortDirection;else{var h=Object.keys(e)[0];f=e[h],d=function(a){return a[h]}}var i=c.settings(),j=i.dataOptions;i.dataOptions={applyPaging:!1};var k=i.getDataFnAdaptor(i.getData),m=b.when(k.call(i,c));return m.then(function(b){var e={},h=i.groupOptions||x;a.forEach(b,function(a){var b=d(a);e[b]=e[b]||{data:[],$hideRows:!h.isExpanded,value:b},e[b].data.push(a)});var j=[];for(var k in e)j.push(e[k]);if(f){var m=g.getOrderByFn(),n=l({value:f});j=m(j,n)}return g.applyPaging(j,c)})["finally"](function(){i.dataOptions=j})}return{getDataFnAdaptor:a.identity,getGroupsFnAdaptor:a.identity,getData:c,getGroups:d}}"boolean"==typeof d&&(this.isNullInstance=!0);var s,t,u=this,v=!1,w=function(){z.debugMode&&c.debug&&c.debug.apply(this,arguments)},x={defaultSort:"asc",isExpanded:!0};this.data=[],this.parameters=function(b,c){if(c=c||!1,a.isDefined(b)){for(var d in b){var e=b[d];if(c&&d.indexOf("[")>=0){for(var f=d.split(/\[(.*)\]/).reverse(),g="",h=0,j=f.length;j>h;h++){var l=f[h];if(""!==l){var m=e;e={},e[g=l]=i(m)?parseFloat(m):m}}"sorting"===g&&(y[g]={}),y[g]=a.extend(y[g]||{},e[g])}else y[d]="group"===d?k(b[d]):i(b[d])?parseFloat(b[d]):b[d]}return w("ngTable: set parameters",y),this}return y},this.settings=function(b){if(a.isDefined(b)){b.groupOptions&&(b.groupOptions=a.extend({},z.groupOptions,b.groupOptions)),a.isArray(b.data)&&(b.total=b.data.length),b.getData&&b.getData.length>1&&(b.getDataFnAdaptor=f),b.getGroups&&b.getGroups.length>2&&(b.getGroupsFnAdaptor=f);var c=z.data;z=a.extend(z,b);var d=b.hasOwnProperty("data")&&b.data!=c;return d&&(v&&this.page(1),v=!1,h.publishDatasetChanged(this,b.data,c)),w("ngTable: set settings",z),this}return z},this.page=function(b){return a.isDefined(b)?this.parameters({page:b}):y.page},this.total=function(b){return a.isDefined(b)?this.settings({total:b}):z.total},this.count=function(b){return a.isDefined(b)?this.parameters({count:b,page:1}):y.count},this.filter=function(b){if(a.isDefined(b)&&a.isObject(b))return this.parameters({filter:b,page:1});if(b===!0){for(var c=Object.keys(y.filter),d={},e=0;ed?6:d,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((z.paginationMaxBlocks-z.paginationMinBlocks)/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.isDataReloadRequired=function(){return!v||!a.equals(m(),s)||n()},this.hasFilter=function(){return Object.keys(this.filter(!0)).length>0},this.hasGroup=function(b,c){return null==b?a.isFunction(y.group)||Object.keys(y.group).length>0:a.isFunction(b)?null==c?y.group===b:y.group===b&&b.sortDirection===c:null==c?-1!==Object.keys(y.group).indexOf(b):y.group[b]===c},this.hasFilterChanges=function(){var b=s&&s.params.filter;return!a.equals(y.filter,b)||n()},this.url=function(b){function c(a,c){b?e.push(c+"="+encodeURIComponent(a)):e[c]=encodeURIComponent(a)}function d(b,c){return"group"===c?!0:a.isDefined(b)&&""!==b}b=b||!1;var e=b?[]:{};for(var f in y)if(y.hasOwnProperty(f)){var g=y[f],h=encodeURIComponent(f);if("object"==typeof g){for(var i in g)if(d(g[i],f)){var j=h+"["+encodeURIComponent(i)+"]";c(g[i],j)}}else!a.isFunction(g)&&d(g,f)&&c(g,h)}return e},this.reload=function(){var c=this,d=null;z.$loading=!0,s=a.copy(m()),v=!0,d=q(c.hasGroup()?p:o),w("ngTable: reload data");var e=c.data;return d.then(function(a){return z.$loading=!1,t=null,c.data=a,h.publishAfterReloadData(c,a,e),c.reloadPages(),z.$scope&&z.$scope.$emit("ngTableAfterReloadData"),a})["catch"](function(a){return t=s,s=null,v=!1,b.reject(a)})},this.hasErrorState=function(){return!(!t||!a.equals(t,m()))},this.reloadPages=function(){var b;return function(){var c=b,d=u.generatePagesArray(u.page(),u.total(),u.count());a.equals(c,d)||(b=d,h.publishPagesChanged(this,d,c))}}();var y={page:1,count:10,filter:{},sorting:{},group:{}};a.extend(y,e.params);var z={$scope:null,$loading:!1,data:null,total:0,defaultSort:"desc",filterComparator:void 0,filterDelay:750,filterFilterName:void 0,filterFn:void 0,filterLayout:"stack",groupOptions:a.copy(x),counts:[10,25,50,100],interceptors:[],paginationMaxBlocks:11,paginationMinBlocks:5,sortingIndicator:"span"};return this.settings(r()),this.settings(e.settings),this.settings(j),this.parameters(d,!0),h.publishAfterCreated(this),this};return j}]),a.module("ngTable").factory("ngTableParams",["NgTableParams",function(a){return a}])}(),function(){a.module("ngTable").controller("ngTableController",["$scope","NgTableParams","$timeout","$parse","$compile","$attrs","$element","ngTableColumn","ngTableEventsChannel",function(b,c,d,e,f,g,h,i,j){function k(a){if(a&&!b.params.hasErrorState()){b.params.settings().$scope=b;var c=b.params;if(c.hasFilterChanges()){var d=function(){c.page(1),c.reload()};c.settings().filterDelay?m(d,c.settings().filterDelay):d()}else c.reload()}}function l(){function a(a,c){a.hasGroup()?b.$groups=c:b.$data=c}function c(a,c){b.pages=c}function d(a){return b.params===a}j.onAfterReloadData(a,b,d),j.onPagesChanged(c,b,d)}b.$filterRow={},b.$loading=!1,b.hasOwnProperty("params")||(b.params=new c(!0)),b.params.settings().$scope=b;var m=function(){var a=0;return function(b,c){d.cancel(a),a=d(b,c)}}();b.$watch("params",function(a,b){a!==b&&a&&a.reload()},!1),b.$watch("params.isDataReloadRequired()",k),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,d=!1;a.forEach(h.children(),function(a){"THEAD"===a.tagName&&(d=!0)}),d||(c=a.element(document.createElement("thead")).attr("ng-include","templates.header"),h.prepend(c));var e=a.element(document.createElement("div")).attr({"ng-table-pagination":"params","template-url":"templates.pagination"});h.after(e),c&&f(c)(b),f(e)(b)}},this.loadFilterData=function(c){a.forEach(c,function(c){var d;if(d=c.filterData(b,{$column:c}),!d)return void delete c.filterData;if(a.isObject(d)&&(a.isObject(d.promise)||a.isFunction(d.then))){var e=a.isFunction(d.then)?d:d.promise;return delete c.filterData,e.then(function(b){a.isArray(b)||a.isFunction(b)||a.isObject(b)||(b=[]),c.data=b})}return c.data=d})},this.buildColumns=function(a){return a.map(function(a){return i.buildColumn(a,b)})},this.parseNgTableDynamicExpr=function(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')")},this.setupBindingsToInternalScope=function(c){var d=e(c);if(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}),b.$groupRow={},g.showGroup){var f=e(g.showGroup);b.$parent.$watch(f,function(a){b.$groupRow.show=a}),f.assign&&b.$watch("$groupRow.show",function(a){f.assign(b.$parent,a)})}else b.$watch("params.hasGroup()",function(a){b.$groupRow.show=a});g.disableFilter&&b.$parent.$watch(g.disableFilter,function(a){b.$filterRow.disabled=a})},l()}])}(),function(){a.module("ngTable").directive("ngTable",["$q","$parse",function(b,c){return{restrict:"A",priority:1001,scope:!0,controller:"ngTableController",compile:function(b){var d,e,f=[],g=0,h=[];return a.forEach(a.element(b.find("tr")),function(b){h.push(a.element(b))}),d=h.filter(function(a){return!a.hasClass("ng-table-group")})[0],e=h.filter(function(a){return a.hasClass("ng-table-group")})[0],d?(a.forEach(d.find("td"),function(b){var d=a.element(b);if(!d.attr("ignore-cell")||"true"!==d.attr("ignore-cell")){var h=function(a){return d.attr("x-data-"+a)||d.attr("data-"+a)||d.attr(a)},i=function(a,b){d.attr("x-data-"+a)?d.attr("x-data-"+a,b):d.attr("data"+a)?d.attr("data"+a,b):d.attr(a,b)},j=function(b){var d=h(b);if(!d)return void 0;var e,g=function(b,g){return void 0!==e?e:c(d)(b,a.extend(g||{},{$columns:f}))};return g.assign=function(a,b){var f=c(d);f.assign?f.assign(a.$parent,b):e=b},g},k=h("title-alt")||h("title");k&&d.attr("data-title-text","{{"+k+"}}"),f.push({id:g++,title:j("title"),titleAlt:j("title-alt"),headerTitle:j("header-title"),sortable:j("sortable"),"class":j("header-class"),filter:j("filter"),groupable:j("groupable"),headerTemplateURL:j("header"),filterData:j("filter-data"),show:d.attr("ng-if")?j("ng-if"):void 0}),e&&i("ng-if","$columns["+(f.length-1)+"].show(this)")}}),function(a,b,c,d){a.$columns=f=d.buildColumns(f),d.setupBindingsToInternalScope(c.ngTable),d.loadFilterData(f),d.compileDirectiveTemplates()}):void 0}}}])}(),function(){a.module("ngTable").directive("ngTableDynamic",[function(){return{restrict:"A",priority:1001,scope:!0,controller:"ngTableController",compile:function(b){var c;return a.forEach(a.element(b.find("tr")),function(b){b=a.element(b),b.hasClass("ng-table-group")||c||(c=b)}),c?(a.forEach(c.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-if");f||c.attr("ng-if","$columns[$index].show(this)")}),function(a,b,c,d){var e=d.parseNgTableDynamicExpr(c.ngTableDynamic);d.setupBindingsToInternalScope(e.tableParams),d.compileDirectiveTemplates(),a.$watchCollection(e.columns,function(b){a.$columns=d.buildColumns(b),d.loadFilterData(a.$columns)})}):void 0}}}])}(),function(){a.module("ngTable").directive("ngTablePagination",["$compile","ngTableEventsChannel",function(b,c){return{restrict:"A",scope:{params:"=ngTablePagination",templateUrl:"="},replace:!1,link:function(d,e){c.onAfterReloadData(function(a){d.pages=a.generatePagesArray()},d,function(a){return a===d.params}),d.$watch("templateUrl",function(c){if(!a.isUndefined(c)){var f=a.element(document.createElement("div"));f.attr({"ng-include":"templateUrl"}),e.append(f),b(f)(d)}})}}}])}(),function(){function b(b,c){b.config=c,b.getFilterCellCss=function(a,b){if("horizontal"!==b)return"s12";var c=Object.keys(a).length,d=parseInt(12/c,10);return"s"+d},b.getFilterPlaceholderValue=function(b){return a.isObject(b)?b.placeholder:""}}a.module("ngTable").controller("ngTableFilterRowController",b),b.$inject=["$scope","ngTableFilterConfig"]}(),function(){function b(){var a={restrict:"E",replace:!0,templateUrl:"ng-table/filterRow.html",scope:!0,controller:"ngTableFilterRowController"};return a}a.module("ngTable").directive("ngTableFilterRow",b),b.$inject=[]}(),function(){function b(b){function c(){b.getGroupables=g,b.getGroupTitle=f,b.getVisibleColumns=h,b.groupBy=i,b.isSelectedGroup=j,b.$watch("params.group()",k,!0)}function d(){var a;a=b.params.hasGroup(b.$selGroup,"asc")?"desc":b.params.hasGroup(b.$selGroup,"desc")?"":"asc",b.params.group(b.$selGroup,a)}function e(a){return b.$columns.filter(function(c){return c.groupable(b)===a})[0]}function f(c){return a.isFunction(c)?c.title:c.title(b)}function g(){var a=b.$columns.filter(function(a){return a.groupable(b)});return l.concat(a)}function h(){return b.$columns.filter(function(a){return a.show(b)})}function i(a){if(a.groupable)if(a.groupable(b)===b.$selGroup)d();else{var c=e(b.$selGroup);c&&c.show.assign&&a.show.assign&&(c.show.assign(b,!0),a.show.assign(b,!1)),b.params.group(a.groupable(b))}else a===b.$selGroup?d():b.params.group(a)}function j(a){return a.groupable?a.groupable(b)===b.$selGroup:a===b.$selGroup}function k(c){if(a.isFunction(c))l=[c],b.$selGroup=c,b.$selGroupTitle=c.title;else{var d=Object.keys(c||{})[0],f=e(d);f&&(b.$selGroupTitle=f.title(b),b.$selGroup=d)}}var l=[];c()}a.module("ngTable").controller("ngTableGroupRowController",b),b.$inject=["$scope"]}(),function(){function b(){var a={restrict:"E",replace:!0,templateUrl:"ng-table/groupRow.html",scope:!0,controller:"ngTableGroupRowController",controllerAs:"dctrl"};return a}a.module("ngTable").directive("ngTableGroupRow",b),b.$inject=[]}(),function(){function b(a){function b(b,c){var d=b.sortable&&b.sortable();if(d){var e=a.params.settings().defaultSort,f="asc"===e?"desc":"asc",g=a.params.sorting()&&a.params.sorting()[d]&&a.params.sorting()[d]===e,h=c.ctrlKey||c.metaKey?a.params.sorting():{};h[d]=g?f:e,a.params.parameters({sorting:h})}}a.sortBy=b}a.module("ngTable").controller("ngTableSorterRowController",b),b.$inject=["$scope"]}(),function(){function b(){var a={restrict:"E",replace:!0,templateUrl:"ng-table/sorterRow.html",scope:!0,controller:"ngTableSorterRowController"};return a}a.module("ngTable").directive("ngTableSorterRow",b),b.$inject=[]}(),function(){function b(){var a={restrict:"A",controller:c};return a}function c(b,c,d,e){function f(){var a=c(d.ngTableSelectFilterDs)(b);h(a).then(function(a){a&&!g(a)&&a.unshift({id:"",title:""}),a=a||[],b.$selectData=a})}function g(a){for(var b,c=0;c
'),a.put("ng-table/filters/number.html",' '),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/groupRow.html",' {{$selGroupTitle}} '),a.put("ng-table/header.html"," "),a.put("ng-table/pager.html",' '),a.put("ng-table/sorterRow.html",'
')}]),a.module("ngTable")}); //# sourceMappingURL=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 cdc00004..c8c8919a 100644 --- a/dist/ng-table.min.js.map +++ b/dist/ng-table.min.js.map @@ -1 +1 @@ -{"version":3,"file":"ng-table.min.js","sources":["ng-table.js"],"names":["angular","factory","define","amd","window","module","value","params","settings","ngTableEventsChannel","$rootScope","addChangeEvent","eventName","target","fnName","charAt","toUpperCase","substring","event","createEventSubscriptionFn","createPublishEventFn","extend","handler","eventSelector","identity","scope","arguments","length","isFunction","$new","isObject","requiredPublisher","publisher","$on","isNullInstance","eventArgs","rest","fnArgs","concat","apply","this","Array","prototype","slice","call","$broadcast","array","n","events","$inject","ngTableFilterConfigProvider","init","resetConfigs","config","defaultConfig","setConfig","customConfig","mergeConfig","aliasUrls","ngTableFilterConfig","getTemplateUrl","filterValue","filterKey","id","indexOf","service","getUrlForAlias","aliasName","defaultBaseUrl","defaultExt","publicConfig","Object","defineProperty","get","copy","enumerable","$get","provider","ngTableDefaultGetDataProvider","ngTableDefaultGetData","$filter","getFilterFn","filterFn","filterFilterName","applyFilter","data","filter","filterKeys","keys","parsedFilter","reduce","result","key","setPath","filterComparator","getData","fData","hasFilter","orderBy","orderedData","sortingFilterName","pagedData","page","count","total","obj","path","split","ret","lastKey","parentPathKeys","forEach","hasOwnProperty","ngTableGetDataBcShim","$q","createWrapper","getDataFn","$defer","defer","pData","promise","buildColumn","column","defaultScope","extendedCol","create","prop","defaults","undefined","prop1","getterFn","class","filterData","noop","headerTemplateURL","headerTitle","sortable","show","title","titleAlt","$log","ngTableDefaults","isNumber","isNaN","parseFloat","isFinite","NgTableParams","baseParameters","baseSettings","hasGlobalSearchFieldChanges","currentVal","$","previousVal","committedParams","equals","runGetData","getDataFnAdaptor","when","self","runGetGroups","getGroupsFn","getGroupsFnAdaptor","getGroups","runInterceptorPipeline","fetchFn","interceptors","interceptor","thenFn","response","bind","rejectFn","responseError","reject","then","reason","getDefaultSettingFns","adaptedFn","gotData","groups","item","groupName","groupBy","push","i","erroredParams","isCommittedDataset","log","debugMode","debug","parameters","newParameters","parseParamsFromUrl","isDefined","reverse","len","name","v","newSettings","isArray","originalDataset","hasDatasetChanged","publishDatasetChanged","significantFilter","sorting","sortArray","isSortBy","field","direction","generatePagesArray","currentPage","totalItems","pageSize","maxBlocks","maxPage","maxPivotPages","minPage","numPages","pages","Math","ceil","type","number","max","active","current","round","paginationMaxBlocks","paginationMinBlocks","min","isDataReloadRequired","hasFilterChanges","url","asString","pairs","encodeURIComponent","subkey","isUndefined","pname","reload","$loading","oldData","publishAfterReloadData","reloadPages","$scope","$emit","hasErrorState","currentPages","oldPages","newPages","publishPagesChanged","group","defaultSort","filterDelay","filterLayout","counts","sortingIndicator","publishAfterCreated","controller","$timeout","$parse","$compile","$attrs","$element","ngTableColumn","onDataReloadStatusChange","newStatus","currentParams","delayFilter","commonInit","bindDataToScope","newDatapage","$groups","$data","bindPagesToScope","isMyPublisher","onAfterReloadData","onPagesChanged","$filterRow","timer","callback","ms","cancel","$watch","newParams","oldParams","compileDirectiveTemplates","hasClass","templates","header","templateHeader","pagination","templatePagination","addClass","headerTemplate","theadFound","children","e","tagName","element","document","createElement","attr","prepend","paginationTemplate","ng-table-pagination","template-url","after","loadFilterData","$columns","$column","buildColumns","columns","map","col","parseNgTableDynamicExpr","parts","tableParams","Error","setupBindingsToInternalScope","tableParamsExpr","tableParamsGetter","paramsModel","showFilter","$parent","show_filter","disableFilter","disabled","directive","restrict","priority","compile","row","find","tr","el","getAttrValue","parsedAttribute","expr","locals","titleExpr","attrs","ngTable","tElement","showExpr","ngTableDynamic","$watchCollection","newCols","templateUrl","replace","link","pubParams","template","ng-include","append","ngTableFilterRowController","getFilterCellCss","layout","size","width","parseInt","getFilterPlaceholderValue","placeholder","ngTableFilterRow","ngTableSorterRowController","sortBy","parsedSortable","inverseSort","sortingParams","ctrlKey","metaKey","ngTableSorterRow","ngTableSelectFilterDs","ngTableSelectFilterDsController","getSelectListData","hasEmptyOption","unshift","$selectData","isMatch","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ng-table.min.js","sources":["ng-table.js"],"names":["angular","factory","define","amd","window","module","value","params","settings","ngTableEventsChannel","$rootScope","addChangeEvent","eventName","target","fnName","charAt","toUpperCase","substring","event","createEventSubscriptionFn","createPublishEventFn","extend","handler","eventSelector","identity","scope","arguments","length","isFunction","$new","isObject","requiredPublisher","publisher","$on","isNullInstance","eventArgs","rest","fnArgs","concat","apply","this","Array","prototype","slice","call","$broadcast","array","n","events","$inject","ngTableFilterConfigProvider","init","resetConfigs","config","defaultConfig","setConfig","customConfig","mergeConfig","aliasUrls","ngTableFilterConfig","getTemplateUrl","filterValue","filterKey","id","indexOf","service","getUrlForAlias","aliasName","defaultBaseUrl","defaultExt","publicConfig","Object","defineProperty","get","copy","enumerable","$get","provider","ngTableDefaultGetDataProvider","ngTableDefaultGetData","$filter","getFilterFn","filterFn","filterFilterName","getOrderByFn","sortingFilterName","applyFilter","data","hasFilter","filter","filterKeys","keys","parsedFilter","reduce","result","key","setPath","filterComparator","applyPaging","pagedData","page","count","total","applySort","orderBy","orderByFn","getData","options","defaultDataOptions","dataOptions","fData","orderedData","obj","path","split","ret","lastKey","parentPathKeys","forEach","hasOwnProperty","ngTableGetDataBcShim","$q","createWrapper","getDataFn","$defer","defer","pData","promise","createDefaults","class","createGetterSetter","groupable","filterData","noop","headerTemplateURL","headerTitle","sortable","show","title","titleAlt","initialValue","getter","assign","$scope","newValue","buildColumn","column","defaultScope","extendedCol","create","defaults","prop","undefined","prop1","getterFn","$log","ngTableDefaults","isNumber","isNaN","parseFloat","isFinite","NgTableParams","baseParameters","baseSettings","parseGroup","group","isString","grp","groupOptions","defaultSort","convertSortToOrderBy","sorting","push","createComparableParams","groupSortDirection","sortDirection","hasGlobalSearchFieldChanges","currentVal","$","previousVal","prevParamsMemento","equals","runGetData","getDataFnAdaptor","when","self","runGetGroups","getGroupsFn","getGroupsFnAdaptor","getGroups","runInterceptorPipeline","fetchFn","interceptors","interceptor","thenFn","response","bind","rejectFn","responseError","reject","then","reason","getDefaultSettingFns","groupFn","groupField","item","originalDataOptions","adaptedFn","gotData","groups","defaultGroupOptions","groupName","$hideRows","isExpanded","i","errParamsMemento","isCommittedDataset","log","debugMode","debug","parameters","newParameters","parseParamsFromUrl","isDefined","reverse","len","name","v","newSettings","isArray","originalDataset","hasDatasetChanged","publishDatasetChanged","significantFilter","groupArray","sortArray","isSortBy","field","direction","generatePagesArray","currentPage","totalItems","pageSize","maxBlocks","maxPage","maxPivotPages","minPage","numPages","pages","Math","ceil","type","number","max","active","current","round","paginationMaxBlocks","paginationMinBlocks","min","isDataReloadRequired","hasGroup","hasFilterChanges","previousFilter","url","asString","collectValue","pairs","encodeURIComponent","isSignificantValue","subkey","pname","reload","$loading","oldData","publishAfterReloadData","reloadPages","$emit","hasErrorState","currentPages","oldPages","newPages","publishPagesChanged","filterDelay","filterLayout","counts","sortingIndicator","publishAfterCreated","controller","$timeout","$parse","$compile","$attrs","$element","ngTableColumn","onDataReloadStatusChange","newStatus","currentParams","delayFilter","commonInit","bindDataToScope","newDatapage","$groups","$data","bindPagesToScope","isMyPublisher","onAfterReloadData","onPagesChanged","$filterRow","timer","callback","ms","cancel","$watch","newParams","oldParams","compileDirectiveTemplates","hasClass","templates","header","templateHeader","pagination","templatePagination","addClass","headerTemplate","theadFound","children","e","tagName","element","document","createElement","attr","prepend","paginationTemplate","ng-table-pagination","template-url","after","loadFilterData","$columns","$column","buildColumns","columns","map","col","parseNgTableDynamicExpr","parts","tableParams","Error","setupBindingsToInternalScope","tableParamsExpr","tableParamsGetter","isUndefined","paramsModel","showFilter","$parent","show_filter","$groupRow","showGroup","showGroupGetter","disableFilter","disabled","directive","restrict","priority","compile","dataRow","groupRow","rows","find","tr","el","getAttrValue","setAttrValue","parsedAttribute","expr","localValue","locals","parsedExpr","titleExpr","attrs","ngTable","tElement","row","showExpr","ngTableDynamic","$watchCollection","newCols","templateUrl","replace","link","pubParams","template","ng-include","append","ngTableFilterRowController","getFilterCellCss","layout","size","width","parseInt","getFilterPlaceholderValue","placeholder","ngTableFilterRow","ngTableGroupRowController","getGroupables","getGroupTitle","getVisibleColumns","groupBy","isSelectedGroup","setGroup","changeSortDirection","newDirection","$selGroup","findGroupColumn","groupKey","groupableCols","groupFns","existingGroupCol","$selGroupTitle","groupedColumn","ngTableGroupRow","controllerAs","ngTableSorterRowController","sortBy","parsedSortable","inverseSort","sortingParams","ctrlKey","metaKey","ngTableSorterRow","ngTableSelectFilterDs","ngTableSelectFilterDsController","getSelectListData","hasEmptyOption","unshift","$selectData","isMatch","run","$templateCache","put"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 6ebaf92c..b270daa4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ng-table", - "version": "1.0.0-alpha.6", + "version": "1.0.0-alpha.7", "author": "Vitalii Savchuk ", "license": "BSD", "repository": {