diff options
author | 2017-05-04 07:48:42 -0400 | |
---|---|---|
committer | 2017-05-04 12:28:17 -0400 | |
commit | b54df0ddd0c6a0372327c5aa3668e5a6458fcd64 (patch) | |
tree | e69cfa9b314a801bd187cf0145d1d4306436229c /ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js | |
parent | 39d1e62c84041831bfc52cca73b5ed5efaf57d27 (diff) |
[PORTAL-7] Rebase
This rebasing includes common libraries and common overlays projects
abstraction of components
Change-Id: I9a24a338665c7cd058978e8636bc412d9e2fdce8
Signed-off-by: st782s <statta@research.att.com>
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js')
-rw-r--r-- | ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js | 534 |
1 files changed, 0 insertions, 534 deletions
diff --git a/ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js b/ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js deleted file mode 100644 index e0246d45..00000000 --- a/ecomp-portal-FE/client/bower_components/angular-smart-table/dist/smart-table.js +++ /dev/null @@ -1,534 +0,0 @@ -/** -* @version 2.1.8 -* @license MIT -*/ -(function (ng, undefined){ - 'use strict'; - -ng.module('smart-table', []).run(['$templateCache', function ($templateCache) { - $templateCache.put('template/smart-table/pagination.html', - '<nav ng-if="numPages && pages.length >= 2"><ul class="pagination">' + - '<li ng-repeat="page in pages" ng-class="{active: page==currentPage}"><a href="javascript: void(0);" ng-click="selectPage(page)">{{page}}</a></li>' + - '</ul></nav>'); -}]); - - -ng.module('smart-table') - .constant('stConfig', { - pagination: { - template: 'template/smart-table/pagination.html', - itemsByPage: 10, - displayedPages: 5 - }, - search: { - delay: 400, // ms - inputEvent: 'input' - }, - select: { - mode: 'single', - selectedClass: 'st-selected' - }, - sort: { - ascentClass: 'st-sort-ascent', - descentClass: 'st-sort-descent', - descendingFirst: false, - skipNatural: false, - delay:300 - }, - pipe: { - delay: 100 //ms - } - }); -ng.module('smart-table') - .controller('stTableController', ['$scope', '$parse', '$filter', '$attrs', function StTableController ($scope, $parse, $filter, $attrs) { - var propertyName = $attrs.stTable; - var displayGetter = $parse(propertyName); - var displaySetter = displayGetter.assign; - var safeGetter; - var orderBy = $filter('orderBy'); - var filter = $filter('filter'); - var safeCopy = copyRefs(displayGetter($scope)); - var tableState = { - sort: {}, - search: {}, - pagination: { - start: 0, - totalItemCount: 0 - } - }; - var filtered; - var pipeAfterSafeCopy = true; - var ctrl = this; - var lastSelected; - - function copyRefs (src) { - return src ? [].concat(src) : []; - } - - function updateSafeCopy () { - safeCopy = copyRefs(safeGetter($scope)); - if (pipeAfterSafeCopy === true) { - ctrl.pipe(); - } - } - - function deepDelete (object, path) { - if (path.indexOf('.') != -1) { - var partials = path.split('.'); - var key = partials.pop(); - var parentPath = partials.join('.'); - var parentObject = $parse(parentPath)(object) - delete parentObject[key]; - if (Object.keys(parentObject).length == 0) { - deepDelete(object, parentPath); - } - } else { - delete object[path]; - } - } - - if ($attrs.stSafeSrc) { - safeGetter = $parse($attrs.stSafeSrc); - $scope.$watch(function () { - var safeSrc = safeGetter($scope); - return safeSrc && safeSrc.length ? safeSrc[0] : undefined; - }, function (newValue, oldValue) { - if (newValue !== oldValue) { - updateSafeCopy(); - } - }); - $scope.$watch(function () { - var safeSrc = safeGetter($scope); - return safeSrc ? safeSrc.length : 0; - }, function (newValue, oldValue) { - if (newValue !== safeCopy.length) { - updateSafeCopy(); - } - }); - $scope.$watch(function () { - return safeGetter($scope); - }, function (newValue, oldValue) { - if (newValue !== oldValue) { - tableState.pagination.start = 0; - updateSafeCopy(); - } - }); - } - - /** - * sort the rows - * @param {Function | String} predicate - function or string which will be used as predicate for the sorting - * @param [reverse] - if you want to reverse the order - */ - this.sortBy = function sortBy (predicate, reverse) { - tableState.sort.predicate = predicate; - tableState.sort.reverse = reverse === true; - - if (ng.isFunction(predicate)) { - tableState.sort.functionName = predicate.name; - } else { - delete tableState.sort.functionName; - } - - tableState.pagination.start = 0; - return this.pipe(); - }; - - /** - * search matching rows - * @param {String} input - the input string - * @param {String} [predicate] - the property name against you want to check the match, otherwise it will search on all properties - */ - this.search = function search (input, predicate) { - var predicateObject = tableState.search.predicateObject || {}; - var prop = predicate ? predicate : '$'; - - input = ng.isString(input) ? input.trim() : input; - $parse(prop).assign(predicateObject, input); - // to avoid to filter out null value - if (!input) { - deepDelete(predicateObject, prop); - } - tableState.search.predicateObject = predicateObject; - tableState.pagination.start = 0; - return this.pipe(); - }; - - /** - * this will chain the operations of sorting and filtering based on the current table state (sort options, filtering, ect) - */ - this.pipe = function pipe () { - var pagination = tableState.pagination; - var output; - filtered = tableState.search.predicateObject ? filter(safeCopy, tableState.search.predicateObject) : safeCopy; - if (tableState.sort.predicate) { - filtered = orderBy(filtered, tableState.sort.predicate, tableState.sort.reverse); - } - pagination.totalItemCount = filtered.length; - if (pagination.number !== undefined) { - pagination.numberOfPages = filtered.length > 0 ? Math.ceil(filtered.length / pagination.number) : 1; - pagination.start = pagination.start >= filtered.length ? (pagination.numberOfPages - 1) * pagination.number : pagination.start; - output = filtered.slice(pagination.start, pagination.start + parseInt(pagination.number)); - } - displaySetter($scope, output || filtered); - }; - - /** - * select a dataRow (it will add the attribute isSelected to the row object) - * @param {Object} row - the row to select - * @param {String} [mode] - "single" or "multiple" (multiple by default) - */ - this.select = function select (row, mode) { - var rows = copyRefs(displayGetter($scope)); - var index = rows.indexOf(row); - if (index !== -1) { - if (mode === 'single') { - row.isSelected = row.isSelected !== true; - if (lastSelected) { - lastSelected.isSelected = false; - } - lastSelected = row.isSelected === true ? row : undefined; - } else { - rows[index].isSelected = !rows[index].isSelected; - } - } - }; - - /** - * take a slice of the current sorted/filtered collection (pagination) - * - * @param {Number} start - start index of the slice - * @param {Number} number - the number of item in the slice - */ - this.slice = function splice (start, number) { - tableState.pagination.start = start; - tableState.pagination.number = number; - return this.pipe(); - }; - - /** - * return the current state of the table - * @returns {{sort: {}, search: {}, pagination: {start: number}}} - */ - this.tableState = function getTableState () { - return tableState; - }; - - this.getFilteredCollection = function getFilteredCollection () { - return filtered || safeCopy; - }; - - /** - * Use a different filter function than the angular FilterFilter - * @param filterName the name under which the custom filter is registered - */ - this.setFilterFunction = function setFilterFunction (filterName) { - filter = $filter(filterName); - }; - - /** - * Use a different function than the angular orderBy - * @param sortFunctionName the name under which the custom order function is registered - */ - this.setSortFunction = function setSortFunction (sortFunctionName) { - orderBy = $filter(sortFunctionName); - }; - - /** - * Usually when the safe copy is updated the pipe function is called. - * Calling this method will prevent it, which is something required when using a custom pipe function - */ - this.preventPipeOnWatch = function preventPipe () { - pipeAfterSafeCopy = false; - }; - }]) - .directive('stTable', function () { - return { - restrict: 'A', - controller: 'stTableController', - link: function (scope, element, attr, ctrl) { - - if (attr.stSetFilter) { - ctrl.setFilterFunction(attr.stSetFilter); - } - - if (attr.stSetSort) { - ctrl.setSortFunction(attr.stSetSort); - } - } - }; - }); - -ng.module('smart-table') - .directive('stSearch', ['stConfig', '$timeout','$parse', function (stConfig, $timeout, $parse) { - return { - require: '^stTable', - link: function (scope, element, attr, ctrl) { - var tableCtrl = ctrl; - var promise = null; - var throttle = attr.stDelay || stConfig.search.delay; - var event = attr.stInputEvent || stConfig.search.inputEvent; - - attr.$observe('stSearch', function (newValue, oldValue) { - var input = element[0].value; - if (newValue !== oldValue && input) { - ctrl.tableState().search = {}; - tableCtrl.search(input, newValue); - } - }); - - //table state -> view - scope.$watch(function () { - return ctrl.tableState().search; - }, function (newValue, oldValue) { - var predicateExpression = attr.stSearch || '$'; - if (newValue.predicateObject && $parse(predicateExpression)(newValue.predicateObject) !== element[0].value) { - element[0].value = $parse(predicateExpression)(newValue.predicateObject) || ''; - } - }, true); - - // view -> table state - element.bind(event, function (evt) { - evt = evt.originalEvent || evt; - if (promise !== null) { - $timeout.cancel(promise); - } - - promise = $timeout(function () { - tableCtrl.search(evt.target.value, attr.stSearch || ''); - promise = null; - }, throttle); - }); - } - }; - }]); - -ng.module('smart-table') - .directive('stSelectRow', ['stConfig', function (stConfig) { - return { - restrict: 'A', - require: '^stTable', - scope: { - row: '=stSelectRow' - }, - link: function (scope, element, attr, ctrl) { - var mode = attr.stSelectMode || stConfig.select.mode; - element.bind('click', function () { - scope.$apply(function () { - ctrl.select(scope.row, mode); - }); - }); - - scope.$watch('row.isSelected', function (newValue) { - if (newValue === true) { - element.addClass(stConfig.select.selectedClass); - } else { - element.removeClass(stConfig.select.selectedClass); - } - }); - } - }; - }]); - -ng.module('smart-table') - .directive('stSort', ['stConfig', '$parse', '$timeout', function (stConfig, $parse, $timeout) { - return { - restrict: 'A', - require: '^stTable', - link: function (scope, element, attr, ctrl) { - - var predicate = attr.stSort; - var getter = $parse(predicate); - var index = 0; - var classAscent = attr.stClassAscent || stConfig.sort.ascentClass; - var classDescent = attr.stClassDescent || stConfig.sort.descentClass; - var stateClasses = [classAscent, classDescent]; - var sortDefault; - var skipNatural = attr.stSkipNatural !== undefined ? attr.stSkipNatural : stConfig.sort.skipNatural; - var descendingFirst = attr.stDescendingFirst !== undefined ? attr.stDescendingFirst : stConfig.sort.descendingFirst; - var promise = null; - var throttle = attr.stDelay || stConfig.sort.delay; - - if (attr.stSortDefault) { - sortDefault = scope.$eval(attr.stSortDefault) !== undefined ? scope.$eval(attr.stSortDefault) : attr.stSortDefault; - } - - //view --> table state - function sort () { - if (descendingFirst) { - index = index === 0 ? 2 : index - 1; - } else { - index++; - } - - var func; - predicate = ng.isFunction(getter(scope)) || ng.isArray(getter(scope)) ? getter(scope) : attr.stSort; - if (index % 3 === 0 && !!skipNatural !== true) { - //manual reset - index = 0; - ctrl.tableState().sort = {}; - ctrl.tableState().pagination.start = 0; - func = ctrl.pipe.bind(ctrl); - } else { - func = ctrl.sortBy.bind(ctrl, predicate, index % 2 === 0); - } - if (promise !== null) { - $timeout.cancel(promise); - } - if (throttle < 0) { - func(); - } else { - promise = $timeout(func, throttle); - } - } - - element.bind('click', function sortClick () { - if (predicate) { - scope.$apply(sort); - } - }); - - if (sortDefault) { - index = sortDefault === 'reverse' ? 1 : 0; - sort(); - } - - //table state --> view - scope.$watch(function () { - return ctrl.tableState().sort; - }, function (newValue) { - if (newValue.predicate !== predicate) { - index = 0; - element - .removeClass(classAscent) - .removeClass(classDescent); - } else { - index = newValue.reverse === true ? 2 : 1; - element - .removeClass(stateClasses[index % 2]) - .addClass(stateClasses[index - 1]); - } - }, true); - } - }; - }]); - -ng.module('smart-table') - .directive('stPagination', ['stConfig', function (stConfig) { - return { - restrict: 'EA', - require: '^stTable', - scope: { - stItemsByPage: '=?', - stDisplayedPages: '=?', - stPageChange: '&' - }, - templateUrl: function (element, attrs) { - if (attrs.stTemplate) { - return attrs.stTemplate; - } - return stConfig.pagination.template; - }, - link: function (scope, element, attrs, ctrl) { - - scope.stItemsByPage = scope.stItemsByPage ? +(scope.stItemsByPage) : stConfig.pagination.itemsByPage; - scope.stDisplayedPages = scope.stDisplayedPages ? +(scope.stDisplayedPages) : stConfig.pagination.displayedPages; - - scope.currentPage = 1; - scope.pages = []; - - function redraw () { - var paginationState = ctrl.tableState().pagination; - var start = 1; - var end; - var i; - var prevPage = scope.currentPage; - scope.totalItemCount = paginationState.totalItemCount; - scope.currentPage = Math.floor(paginationState.start / paginationState.number) + 1; - - start = Math.max(start, scope.currentPage - Math.abs(Math.floor(scope.stDisplayedPages / 2))); - end = start + scope.stDisplayedPages; - - if (end > paginationState.numberOfPages) { - end = paginationState.numberOfPages + 1; - start = Math.max(1, end - scope.stDisplayedPages); - } - - scope.pages = []; - scope.numPages = paginationState.numberOfPages; - - for (i = start; i < end; i++) { - scope.pages.push(i); - } - - if (prevPage !== scope.currentPage) { - scope.stPageChange({newPage: scope.currentPage}); - } - } - - //table state --> view - scope.$watch(function () { - return ctrl.tableState().pagination; - }, redraw, true); - - //scope --> table state (--> view) - scope.$watch('stItemsByPage', function (newValue, oldValue) { - if (newValue !== oldValue) { - scope.selectPage(1); - } - }); - - scope.$watch('stDisplayedPages', redraw); - - //view -> table state - scope.selectPage = function (page) { - if (page > 0 && page <= scope.numPages) { - ctrl.slice((page - 1) * scope.stItemsByPage, scope.stItemsByPage); - } - }; - - if (!ctrl.tableState().pagination.number) { - ctrl.slice(0, scope.stItemsByPage); - } - } - }; - }]); - -ng.module('smart-table') - .directive('stPipe', ['stConfig', '$timeout', function (config, $timeout) { - return { - require: 'stTable', - scope: { - stPipe: '=' - }, - link: { - - pre: function (scope, element, attrs, ctrl) { - - var pipePromise = null; - - if (ng.isFunction(scope.stPipe)) { - ctrl.preventPipeOnWatch(); - ctrl.pipe = function () { - - if (pipePromise !== null) { - $timeout.cancel(pipePromise) - } - - pipePromise = $timeout(function () { - scope.stPipe(ctrl.tableState(), ctrl); - }, config.pipe.delay); - - return pipePromise; - } - } - }, - - post: function (scope, element, attrs, ctrl) { - ctrl.pipe(); - } - } - }; - }]); - -})(angular);
\ No newline at end of file |