From 9979af39b1e5e35a7f049820e1786f31682a9d86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Aug 2021 21:27:21 +0000 Subject: [PATCH 01/62] build(deps): bump path-parse from 1.0.6 to 1.0.7 in /packages/exporter Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7. - [Release notes](https://github.com/jbgutierrez/path-parse/releases) - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7) --- updated-dependencies: - dependency-name: path-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- packages/exporter/package-lock.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/exporter/package-lock.json b/packages/exporter/package-lock.json index 0546c6224..4b7745883 100644 --- a/packages/exporter/package-lock.json +++ b/packages/exporter/package-lock.json @@ -4,6 +4,14 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@ui-grid/core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/@ui-grid/core/-/core-4.10.3.tgz", + "integrity": "sha512-hDgzXdcaWnATqD5VbC/jvZ5NJCttLpUl2z3oFq+sFl8cLksWxaRjdX0fr2iXtuwhbNRqFtp6p/peLYL62Cph/Q==", + "requires": { + "angular": ">=1.4.0 1.8.x" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -735,9 +743,9 @@ "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "pdfkit": { "version": "0.8.3", From af71e7895e718450ba4f2d2978a8fc373a29e6f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Aug 2021 20:27:19 +0000 Subject: [PATCH 02/62] build(deps): bump tar from 4.4.15 to 4.4.19 Bumps [tar](https://github.com/npm/node-tar) from 4.4.15 to 4.4.19. - [Release notes](https://github.com/npm/node-tar/releases) - [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-tar/compare/v4.4.15...v4.4.19) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index c7edfcb8e..590153038 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16302,18 +16302,18 @@ } }, "tar": { - "version": "4.4.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", - "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" }, "dependencies": { "safe-buffer": { From 59bccaba9848f6290d79b47a41f0ef23f30f34b7 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Tue, 28 Sep 2021 10:13:51 +0200 Subject: [PATCH 03/62] [hotfix/3360] - replaced null check with void check - refactoring --- packages/core/src/js/services/rowSorter.js | 234 ++++++++------------- 1 file changed, 85 insertions(+), 149 deletions(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index 00c72ec82..5b2b5462b 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -11,17 +11,7 @@ var module = angular.module('ui.grid'); * */ -module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGridConstants) { - var currencyRegexStr = - '(' + - uiGridConstants.CURRENCY_SYMBOLS - .map(function (a) { return '\\' + a; }) // Escape all the currency symbols ($ at least will jack up this regex) - .join('|') + // Join all the symbols together with |s - ')?'; - - // /^[-+]?[£$¤¥]?[\d,.]+%?$/ - var numberStrRegex = new RegExp('^[-+]?' + currencyRegexStr + '[\\d,.]+' + currencyRegexStr + '%?$'); - +module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { var rowSorter = { // Cache of sorting functions. Once we create them, we don't want to keep re-doing it // this takes a piece of data from the cell and tries to determine its type and what sorting @@ -74,17 +64,16 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.handleNulls = function handleNulls(a, b) { // We want to allow zero values and false values to be evaluated in the sort function - if ((!a && a !== 0 && a !== false) || (!b && b !== 0 && b !== false)) { + if ((a == void 0) || (b == void 0)) { // We want to force nulls and such to the bottom when we sort... which effectively is "greater than" - if ((!a && a !== 0 && a !== false) && (!b && b !== 0 && b !== false)) { + if ((a == void 0) && (b == void 0)) { return 0; } - else if (!a && a !== 0 && a !== false) { + + if (a == void 0) { return 1; } - else if (!b && b !== 0 && b !== false) { - return -1; - } + return -1;//b == void 0 } return null; }; @@ -102,17 +91,18 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.basicSort = function basicSort(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { + if (nulls !== null) { return nulls; - } else { - if (a === b) { - return 0; - } - if (a < b) { - return -1; - } - return 1; } + + if (a === b) { + return 0; + } + + if (a < b) { + return -1; + } + return 1; }; @@ -127,14 +117,15 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.sortNumber = function sortNumber(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { - return nulls; - } else { - return a - b; - } + return (nulls !== null) ? nulls : a - b; }; + function parseNumStr(numStr) { + return parseFloat(numStr.replace(/[^0-9.-]/g, '')); + } + + /** * @ngdoc method * @methodOf ui.grid.class:rowSorter @@ -147,45 +138,23 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.sortNumberStr = function sortNumberStr(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { + if (nulls !== null) { return nulls; - } else { - var numA, // The parsed number form of 'a' - numB, // The parsed number form of 'b' - badA = false, - badB = false; - - // Try to parse 'a' to a float - numA = parseFloat(a.replace(/[^0-9.-]/g, '')); - - // If 'a' couldn't be parsed to float, flag it as bad - if (isNaN(numA)) { - badA = true; - } - - // Try to parse 'b' to a float - numB = parseFloat(b.replace(/[^0-9.-]/g, '')); - - // If 'b' couldn't be parsed to float, flag it as bad - if (isNaN(numB)) { - badB = true; - } - - // We want bad ones to get pushed to the bottom... which effectively is "greater than" - if (badA && badB) { - return 0; - } + } - if (badA) { - return 1; - } + var numA = parseNumStr(a), // The parsed number form of 'a' + numB = parseNumStr(b); // The parsed number form of 'b' - if (badB) { - return -1; - } + // If 'a' couldn't be parsed to float, flag it as bad + var badA = isNaN(numA), + badB = isNaN(numB); - return numA - numB; + // We want bad ones to get pushed to the bottom... which effectively is "greater than" + if(badA || badB){ + return (badA && badB) ? 0 : (badA ? 1 : -1); } + + return numA - numB; }; @@ -200,14 +169,13 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.sortAlpha = function sortAlpha(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { + if (nulls !== null) { return nulls; - } else { - var strA = a.toString().toLowerCase(), - strB = b.toString().toLowerCase(); - - return strA === strB ? 0 : strA.localeCompare(strB); } + + var strA = a.toString().toLowerCase(), + strB = b.toString().toLowerCase(); + return strA === strB ? 0 : strA.localeCompare(strB); }; @@ -223,20 +191,13 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.sortDate = function sortDate(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { + if (nulls !== null) { return nulls; - } else { - if (!(a instanceof Date)) { - a = new Date(a); - } - if (!(b instanceof Date)) { - b = new Date(b); - } - var timeA = a.getTime(), - timeB = b.getTime(); - - return timeA === timeB ? 0 : (timeA < timeB ? -1 : 1); } + + var timeA = (a instanceof Date) ? a.getTime() : new Date(a).getTime(); + var timeB = (b instanceof Date) ? b.getTime() : new Date(b).getTime(); + return timeA === timeB ? 0 : (timeA < timeB ? -1 : 1); }; @@ -252,20 +213,14 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr */ rowSorter.sortBool = function sortBool(a, b) { var nulls = rowSorter.handleNulls(a, b); - if ( nulls !== null ) { + if (nulls !== null) { return nulls; - } else { - if (a && b) { - return 0; - } + } - if (!a && !b) { - return 0; - } - else { - return a ? 1 : -1; - } + if ((a && b) || (!a && !b)) { + return 0; } + return a ? 1 : -1; }; @@ -290,45 +245,38 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr * we might inspect the rows themselves to decide what sort of data might be there * @returns {function} the sort function chosen for the column */ - rowSorter.getSortFn = function getSortFn(grid, col, rows) { - var sortFn, item; - + rowSorter.getSortFn = function getSortFn(col) { // See if we already figured out what to use to sort the column and have it in the cache if (rowSorter.colSortFnCache[col.colDef.name]) { - sortFn = rowSorter.colSortFnCache[col.colDef.name]; + return rowSorter.colSortFnCache[col.colDef.name]; } // If the column has its OWN sorting algorithm, use that - else if (col.sortingAlgorithm !== undefined) { - sortFn = col.sortingAlgorithm; + if (col.sortingAlgorithm != void 0) { rowSorter.colSortFnCache[col.colDef.name] = col.sortingAlgorithm; + return col.sortingAlgorithm; } // Always default to sortAlpha when sorting after a cellFilter - else if ( col.sortCellFiltered && col.cellFilter ) { - sortFn = rowSorter.sortAlpha; - rowSorter.colSortFnCache[col.colDef.name] = sortFn; + if (col.sortCellFiltered && col.cellFilter) { + rowSorter.colSortFnCache[col.colDef.name] = rowSorter.sortAlpha; + return rowSorter.sortAlpha; } + // Try and guess what sort function to use - else { - // Guess the sort function - sortFn = rowSorter.guessSortFn(col.colDef.type); + // Guess the sort function + var sortFn = rowSorter.guessSortFn(col.colDef.type); - // If we found a sort function, cache it - if (sortFn) { - rowSorter.colSortFnCache[col.colDef.name] = sortFn; - } - else { - // We assign the alpha sort because anything that is null/undefined will never get passed to - // the actual sorting function. It will get caught in our null check and returned to be sorted - // down to the bottom - sortFn = rowSorter.sortAlpha; - } + // If we found a sort function, cache it + if (sortFn) { + rowSorter.colSortFnCache[col.colDef.name] = sortFn; + return sortFn; } - - return sortFn; + // We assign the alpha sort because anything that is null/undefined will never get passed to + // the actual sorting function. It will get caught in our null check and returned to be sorted + // down to the bottom + return rowSorter.sortAlpha; }; - /** * @ngdoc method * @methodOf ui.grid.class:rowSorter @@ -349,26 +297,22 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr return -1; } // Equal - else if (a.sort.priority === b.sort.priority) { + if (a.sort.priority === b.sort.priority) { return 0; } // B is higher - else { - return 1; - } + return 1; } // Only A has a priority - else if (a.sort && a.sort.priority !== undefined) { + if (a.sort && a.sort.priority !== undefined) { return -1; } // Only B has a priority - else if (b.sort && b.sort.priority !== undefined) { + if (b.sort && b.sort.priority !== undefined) { return 1; } // Neither has a priority - else { - return 0; - } + return 0; }; @@ -434,34 +378,31 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr var col, direction; // put a custom index field on each row, used to make a stable sort out of unstable sorts (e.g. Chrome) - var setIndex = function( row, idx ) { + rows.forEach(function (row, idx) { row.entity.$$uiGridIndex = idx; - }; - rows.forEach(setIndex); + }); // IE9-11 HACK.... the 'rows' variable would be empty where we call rowSorter.getSortFn(...) below. We have to use a separate reference // var d = data.slice(0); - var r = rows.slice(0); + //var r = rows.slice(0); // Now actually sort the data var rowSortFn = function (rowA, rowB) { - var tem = 0, - idx = 0, - sortFn; + var tem = 0, + idx = 0, + sortFn; while (tem === 0 && idx < sortCols.length) { // grab the metadata for the rest of the logic col = sortCols[idx].col; direction = sortCols[idx].sort.direction; - sortFn = rowSorter.getSortFn(grid, col, r); + sortFn = rowSorter.getSortFn(col); // Webpack's compress will hoist and combine propA, propB into one var and break sorting functionality // Wrapping in function prevents that unexpected behavior var props = getCellValues(grid, rowA, rowB, col); - var propA = props[0]; - var propB = props[1]; - tem = sortFn(propA, propB, rowA, rowB, direction, col); + tem = sortFn(props[0], props[1], rowA, rowB, direction, col); idx++; } @@ -475,20 +416,15 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr } // Made it this far, we don't have to worry about null & undefined - if (direction === uiGridConstants.ASC) { - return tem; - } else { - return 0 - tem; - } + return (direction === uiGridConstants.ASC) ? tem : 0 - tem; }; var newRows = rows.sort(rowSortFn); // remove the custom index field on each row, used to make a stable sort out of unstable sorts (e.g. Chrome) - var clearIndex = function( row, idx ) { - delete row.entity.$$uiGridIndex; - }; - rows.forEach(clearIndex); + rows.forEach(function (row, idx) { + delete row.entity.$$uiGridIndex; + }); return newRows; }; @@ -510,4 +446,4 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr return rowSorter; }]); -})(); +})(); \ No newline at end of file From a88047783224d03e5e129bfab4e10319f966dfd5 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Tue, 28 Sep 2021 10:30:00 +0200 Subject: [PATCH 04/62] [hotfix/3360] - satisfy build process --- packages/core/src/js/services/rowSorter.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index 5b2b5462b..9211f0dea 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -73,7 +73,7 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { if (a == void 0) { return 1; } - return -1;//b == void 0 + return -1;// b == void 0 } return null; }; @@ -150,7 +150,7 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { badB = isNaN(numB); // We want bad ones to get pushed to the bottom... which effectively is "greater than" - if(badA || badB){ + if (badA || badB) { return (badA && badB) ? 0 : (badA ? 1 : -1); } @@ -382,10 +382,6 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { row.entity.$$uiGridIndex = idx; }); - // IE9-11 HACK.... the 'rows' variable would be empty where we call rowSorter.getSortFn(...) below. We have to use a separate reference - // var d = data.slice(0); - //var r = rows.slice(0); - // Now actually sort the data var rowSortFn = function (rowA, rowB) { var tem = 0, @@ -446,4 +442,4 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { return rowSorter; }]); -})(); \ No newline at end of file +})(); From 5aa34e5611e6d8fd9c792d538a5b6afc85a129fa Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Tue, 28 Sep 2021 11:17:24 +0200 Subject: [PATCH 05/62] [hotfix/3360] - fixed col undefined error on grouping --- packages/core/src/js/services/rowSorter.js | 6 +++--- packages/grouping/src/js/grouping.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index 9211f0dea..6aee3664c 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -384,9 +384,9 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { // Now actually sort the data var rowSortFn = function (rowA, rowB) { - var tem = 0, - idx = 0, - sortFn; + var tem = 0, + idx = 0, + sortFn; while (tem === 0 && idx < sortCols.length) { // grab the metadata for the rest of the logic diff --git a/packages/grouping/src/js/grouping.js b/packages/grouping/src/js/grouping.js index 28dc300df..6c33da961 100644 --- a/packages/grouping/src/js/grouping.js +++ b/packages/grouping/src/js/grouping.js @@ -953,7 +953,7 @@ var fieldValue = grid.getCellValue(row, groupFieldState.col); // look for change of value - and insert a header - if ( !groupFieldState.initialised || rowSorter.getSortFn(grid, groupFieldState.col, renderableRows)(fieldValue, groupFieldState.currentValue) !== 0 ) { + if ( !groupFieldState.initialised || rowSorter.getSortFn(groupFieldState.col)(fieldValue, groupFieldState.currentValue) !== 0 ) { service.insertGroupHeader( grid, renderableRows, i, processingState, stateIndex ); i++; } From 10f964a11f24394d3c93f6bfa5af09aef917b385 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 3 Sep 2021 14:57:45 +0200 Subject: [PATCH 06/62] [hotfix/5502] - null in filter is now changed to '' - cleaned code - breaking change: custom regex and filter may not work anymore --- packages/core/src/js/services/rowSearcher.js | 90 ++++++++------------ 1 file changed, 34 insertions(+), 56 deletions(-) diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js index b487ac2bf..246b13d2a 100644 --- a/packages/core/src/js/services/rowSearcher.js +++ b/packages/core/src/js/services/rowSearcher.js @@ -111,8 +111,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil rowSearcher.setupFilters = function setupFilters( filters ) { var newFilters = []; - var filtersLength = filters.length; - for ( var i = 0; i < filtersLength; i++ ) { + for ( var i = 0; i < filters.length; i++ ) { var filter = filters[i]; if ( filter.noTerm || !gridUtil.isNullOrUndefined(filter.term) ) { @@ -131,30 +130,24 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil newFilter.term = rowSearcher.stripTerm(filter); } } - newFilter.noTerm = filter.noTerm; - - if ( filter.condition ) { - newFilter.condition = filter.condition; - } else { - newFilter.condition = rowSearcher.guessCondition(filter); - } + newFilter.noTerm = filter.noTerm; + newFilter.condition = filter.condition || rowSearcher.guessCondition(filter); newFilter.flags = angular.extend( { caseSensitive: false, date: false }, filter.flags ); - if (newFilter.condition === uiGridConstants.filter.STARTS_WITH) { - newFilter.startswithRE = new RegExp('^' + newFilter.term, regexpFlags); - } - - if (newFilter.condition === uiGridConstants.filter.ENDS_WITH) { - newFilter.endswithRE = new RegExp(newFilter.term + '$', regexpFlags); - } - - if (newFilter.condition === uiGridConstants.filter.CONTAINS) { - newFilter.containsRE = new RegExp(newFilter.term, regexpFlags); - } - - if (newFilter.condition === uiGridConstants.filter.EXACT) { - newFilter.exactRE = new RegExp('^' + newFilter.term + '$', regexpFlags); + switch (newFilter.condition) { + case uiGridConstants.filter.STARTS_WITH: + newFilter.startswithRE = new RegExp('^' + newFilter.term, regexpFlags); + break; + case uiGridConstants.filter.ENDS_WITH: + newFilter.endswithRE = new RegExp(newFilter.term + '$', regexpFlags); + break; + case uiGridConstants.filter.EXACT: + newFilter.exactRE = new RegExp('^' + newFilter.term + '$', regexpFlags); + break; + case uiGridConstants.filter.CONTAINS: + newFilter.containsRE = new RegExp(newFilter.term, regexpFlags); + break; } newFilters.push(newFilter); @@ -185,12 +178,9 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil var term = filter.term; // Get the column value for this row - var value; - if ( column.filterCellFiltered ) { - value = grid.getCellDisplayValue(row, column); - } else { - value = grid.getCellValue(row, column); - } + var value = column.filterCellFiltered ? grid.getCellDisplayValue(row, column) : grid.getCellValue(row, column); + if(value == void 0) + value = ""; // If the filter's condition is a RegExp, then use it @@ -220,8 +210,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil } if (filter.condition === uiGridConstants.filter.NOT_EQUAL) { - var regex = new RegExp('^' + term + '$'); - return !regex.exec(value); + return !new RegExp('^' + term + '$').test(value); } if (typeof(value) === 'number' && typeof(term) === 'string' ) { @@ -240,20 +229,15 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil term = new Date(term.replace(/\\/g, '')); } - if (filter.condition === uiGridConstants.filter.GREATER_THAN) { - return (value > term); - } - - if (filter.condition === uiGridConstants.filter.GREATER_THAN_OR_EQUAL) { - return (value >= term); - } - - if (filter.condition === uiGridConstants.filter.LESS_THAN) { - return (value < term); - } - - if (filter.condition === uiGridConstants.filter.LESS_THAN_OR_EQUAL) { - return (value <= term); + switch (filter.condition) { + case uiGridConstants.filter.GREATER_THAN: + return (value > term); + case uiGridConstants.filter.GREATER_THAN_OR_EQUAL: + return (value >= term); + case uiGridConstants.filter.LESS_THAN: + return (value < term); + case uiGridConstants.filter.LESS_THAN_OR_EQUAL: + return (value <= term); } return true; @@ -287,13 +271,11 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil return true; } - var filtersLength = filters.length; - for (var i = 0; i < filtersLength; i++) { + for (var i = 0; i < filters.length; i++) { var filter = filters[i]; if ( !gridUtil.isNullOrUndefined(filter.term) && filter.term !== '' || filter.noTerm ) { - var ret = rowSearcher.runColumnFilter(grid, row, column, filter); - if (!ret) { + if (!rowSearcher.runColumnFilter(grid, row, column, filter)) { return false; } } @@ -333,8 +315,6 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil // Build list of filters to apply var filterData = []; - var colsLength = columns.length; - var hasTerm = function( filters ) { var hasTerm = false; @@ -347,7 +327,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil return hasTerm; }; - for (var i = 0; i < colsLength; i++) { + for (var i = 0; i < cols.length; i++) { var col = columns[i]; if (typeof(col.filters) !== 'undefined' && hasTerm(col.filters) ) { @@ -364,15 +344,13 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil }; var foreachFilterCol = function(grid, filterData) { - var rowsLength = rows.length; - for ( var i = 0; i < rowsLength; i++) { + for ( var i = 0; i < rows.length; i++) { foreachRow(grid, rows[i], filterData.col, filterData.filters); } }; // nested loop itself - foreachFilterCol, which in turn calls foreachRow - var filterDataLength = filterData.length; - for ( var j = 0; j < filterDataLength; j++) { + for ( var j = 0; j < filterData.length; j++) { foreachFilterCol( grid, filterData[j] ); } From d490fe899c77ff6c6cd41331e0ce7bce055a8202 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 3 Sep 2021 15:01:47 +0200 Subject: [PATCH 07/62] [hotfix/5502] - removed unnecessary line --- packages/core/src/js/services/rowSearcher.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js index 246b13d2a..00c7754d0 100644 --- a/packages/core/src/js/services/rowSearcher.js +++ b/packages/core/src/js/services/rowSearcher.js @@ -182,7 +182,6 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil if(value == void 0) value = ""; - // If the filter's condition is a RegExp, then use it if (filter.condition instanceof RegExp) { return filter.condition.test(value); From 23224e0143e77844226d9ae46e9afe239d2026d6 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 15 Sep 2021 08:06:45 +0200 Subject: [PATCH 08/62] [hotfix/5502] - fixed unknown variable cols error --- packages/core/src/js/services/rowSearcher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js index 00c7754d0..b85c97ddb 100644 --- a/packages/core/src/js/services/rowSearcher.js +++ b/packages/core/src/js/services/rowSearcher.js @@ -326,7 +326,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil return hasTerm; }; - for (var i = 0; i < cols.length; i++) { + for (var i = 0; i < columns.length; i++) { var col = columns[i]; if (typeof(col.filters) !== 'undefined' && hasTerm(col.filters) ) { From f6025bafd90b756d0eb472ee319322bba0e7e7db Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 15 Sep 2021 08:14:12 +0200 Subject: [PATCH 09/62] [hotfix/5502] - make building conventions happy --- packages/core/src/js/services/rowSearcher.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js index b85c97ddb..db448412d 100644 --- a/packages/core/src/js/services/rowSearcher.js +++ b/packages/core/src/js/services/rowSearcher.js @@ -144,7 +144,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil break; case uiGridConstants.filter.EXACT: newFilter.exactRE = new RegExp('^' + newFilter.term + '$', regexpFlags); - break; + break; case uiGridConstants.filter.CONTAINS: newFilter.containsRE = new RegExp(newFilter.term, regexpFlags); break; @@ -179,8 +179,9 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil // Get the column value for this row var value = column.filterCellFiltered ? grid.getCellDisplayValue(row, column) : grid.getCellValue(row, column); - if(value == void 0) + if (value == void 0){ value = ""; + } // If the filter's condition is a RegExp, then use it if (filter.condition instanceof RegExp) { From 863c820267ea71fecbcbdf1d2e9e6d83a8fe500d Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 15 Sep 2021 08:19:00 +0200 Subject: [PATCH 10/62] [hotfix/5502] - fixed code style error --- packages/core/src/js/services/rowSearcher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js index db448412d..d7a230626 100644 --- a/packages/core/src/js/services/rowSearcher.js +++ b/packages/core/src/js/services/rowSearcher.js @@ -179,7 +179,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil // Get the column value for this row var value = column.filterCellFiltered ? grid.getCellDisplayValue(row, column) : grid.getCellValue(row, column); - if (value == void 0){ + if (value == void 0) { value = ""; } From 839a9b608e238c3efeabf3988afc49a7eae95e65 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 1 Oct 2021 08:20:06 +0200 Subject: [PATCH 11/62] [hotfix/6388] - scientific notation now also gets parsed to number on sort number string, including e, Infinity and -Infinity --- packages/core/src/js/services/rowSorter.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index 00c72ec82..90b256585 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -135,6 +135,14 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr }; + function parseNumStr(numStr) { + if (/^\s*-?Infinity\s*$/.test(numStr)) {//check for positive or negative Infinity and return that + return parseFloat(numStr); + } + return parseFloat(numStr.replace(/[^0-9.eE-]/g, '')); + } + + /** * @ngdoc method * @methodOf ui.grid.class:rowSorter @@ -156,7 +164,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr badB = false; // Try to parse 'a' to a float - numA = parseFloat(a.replace(/[^0-9.-]/g, '')); + numA = parseNumStr(a); // If 'a' couldn't be parsed to float, flag it as bad if (isNaN(numA)) { @@ -164,7 +172,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr } // Try to parse 'b' to a float - numB = parseFloat(b.replace(/[^0-9.-]/g, '')); + numB = parseNumStr(b); // If 'b' couldn't be parsed to float, flag it as bad if (isNaN(numB)) { From 1c4eeeacb3b5168b9474a50120e23d37078193ac Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 1 Oct 2021 08:32:01 +0200 Subject: [PATCH 12/62] [hotfix/6388] - fixed code style error --- packages/core/src/js/services/rowSorter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index ad1419fa2..bb2867fc3 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -122,7 +122,7 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { function parseNumStr(numStr) { - if (/^\s*-?Infinity\s*$/.test(numStr)) {//check for positive or negative Infinity and return that + if (/^\s*-?Infinity\s*$/.test(numStr)) { //check for positive or negative Infinity and return that return parseFloat(numStr); } return parseFloat(numStr.replace(/[^0-9.eE-]/g, '')); From 776718307955af7237ab274b17a0362bb4717af3 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 1 Oct 2021 08:35:47 +0200 Subject: [PATCH 13/62] [hotfix/6388] - style fix --- packages/core/src/js/services/rowSorter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js index bb2867fc3..f6ee84797 100644 --- a/packages/core/src/js/services/rowSorter.js +++ b/packages/core/src/js/services/rowSorter.js @@ -122,7 +122,7 @@ module.service('rowSorter', ['uiGridConstants', function (uiGridConstants) { function parseNumStr(numStr) { - if (/^\s*-?Infinity\s*$/.test(numStr)) { //check for positive or negative Infinity and return that + if (/^\s*-?Infinity\s*$/.test(numStr)) { // check for positive or negative Infinity and return that return parseFloat(numStr); } return parseFloat(numStr.replace(/[^0-9.eE-]/g, '')); From 3dc24a786181e136d509ca9a113f9e4e3206515f Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Tue, 19 Oct 2021 13:53:49 +0200 Subject: [PATCH 14/62] [hotfix/4457] - added methods: getRowsByKey, findRowByKey, selectRowByKey, unSelectRowByKey --- packages/core/src/js/factories/Grid.js | 44 ++++++++++++++++++++++++++ packages/selection/src/js/selection.js | 34 ++++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index 7d0cd9089..d751556de 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -1093,6 +1093,50 @@ angular.module('ui.grid') return rows.length > 0 ? rows[0] : null; }; + /** + * @ngdoc function + * @name getRowsByKey + * @methodOf ui.grid.class:Grid + * @description returns the GridRows who have an key that is equal to comparator + * @param {boolean} isInEntity if true then key is in entity else it's directly in row + * @param {(string|number)} key the key to look for + * @param {any} comparator the value that key should have + * @param {array} lookInRows [optional] the rows to look in - if not provided then + * looks in grid.rows + */ + Grid.prototype.getRowsByKey = function getRowsByKey(isInEntity, key, comparator, lookInRows) { + lookInRows = lookInRows == void 0 ? this.rows : lookInRows; + var func = isInEntity ? function (row) { + return row.entity != void 0 && row.entity[key] === comparator; + } : function (row) { + return row[key] === comparator; + } + + return lookInRows.filter(func); + }; + + /** + * @ngdoc function + * @name findRowByKey + * @methodOf ui.grid.class:Grid + * @description returns the first GridRow which has an key that is equal to comparator + * @param {boolean} isInEntity if true then key is in entity else it's directly in row + * @param {(string|number)} key the key to look for + * @param {any} comparator the value that key should have + * @param {array} lookInRows [optional] the rows to look in - if not provided then + * looks in grid.rows + */ + Grid.prototype.findRowByKey = function findRowByKey(isInEntity, key, comparator, lookInRows) { + lookInRows = lookInRows == void 0 ? this.rows : lookInRows; + var func = isInEntity ? function (row) { + return row.entity != void 0 && row.entity[key] === comparator; + } : function (row) { + return row[key] === comparator; + } + + rows = lookInRows.filter(func); + return rows.length > 0 ? rows[0] : null; + }; /** * @ngdoc function diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 1ffd0ec20..272e59e65 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -236,6 +236,23 @@ service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, + /** + * @ngdoc function + * @name selectRowByKey + * @methodOf ui.grid.selection.api:PublicApi + * @description Select the data row + * @param {boolean} isInEntity if true then key is in entity else it's directly in row + * @param {Symbol} key the key to look for + * @param {any} comparator the value that key should have + * @param {Event} evt object if raised from an event + * @param {array} lookInRows [optional] the rows to look in - if not provided then looks in grid.rows + */ + selectRowByKey: function (isInEntity, key, comparator, evt, lookInRows) { + var row = grid.findRowByKey(isInEntity, key, comparator, lookInRows); + if (row !== null && !row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + } + }, /** * @ngdoc function * @name unSelectRow @@ -267,6 +284,23 @@ service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, + /** + * @ngdoc function + * @name unSelectRowByKey + * @methodOf ui.grid.selection.api:PublicApi + * @description Select the data row + * @param {boolean} isInEntity if true then key is in entity else it's directly in row + * @param {(string|number)} key the key to look for + * @param {any} comparator the value that key should have + * @param {Event} evt object if raised from an event + * @param {array} lookInRows [optional] the rows to look in - if not provided then looks in grid.rows + */ + unSelectRowByKey: function (isInEntity, key, comparator, evt, lookInRows) { + var row = grid.findRowByKey(isInEntity, key, comparator, lookInRows); + if (row !== null && !row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + } + }, /** * @ngdoc function * @name selectAllRows From b6d664b2ad167d636a8b7d0618c43b72e96ad410 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 08:39:51 +0200 Subject: [PATCH 15/62] [hotfix/4457] - performance improvement --- packages/core/src/js/factories/Grid.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index d751556de..f99932610 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -1128,14 +1128,23 @@ angular.module('ui.grid') */ Grid.prototype.findRowByKey = function findRowByKey(isInEntity, key, comparator, lookInRows) { lookInRows = lookInRows == void 0 ? this.rows : lookInRows; + var result = null; var func = isInEntity ? function (row) { - return row.entity != void 0 && row.entity[key] === comparator; + if ( row.entity != void 0 && row.entity[key] === comparator ) { + result = row; + return false; + } + return true; } : function (row) { - return row[key] === comparator; + if ( row[key] === comparator ) { + result = row; + return false; + } + return true; } - rows = lookInRows.filter(func); - return rows.length > 0 ? rows[0] : null; + lookInRows.every(func); + return result }; /** From 82df61c379c40697124f05be635cb7f3a38c04bd Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 08:40:28 +0200 Subject: [PATCH 16/62] [hotfix/4457] - unit tests the getters and selectors --- .../core/test/core/factories/Grid.spec.js | 58 +++++++++++++++++ .../test/uiGridSelectionService.spec.js | 62 +++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/packages/core/test/core/factories/Grid.spec.js b/packages/core/test/core/factories/Grid.spec.js index 690a78a4e..ef6192083 100644 --- a/packages/core/test/core/factories/Grid.spec.js +++ b/packages/core/test/core/factories/Grid.spec.js @@ -324,6 +324,64 @@ describe('Grid factory', function() { }); }); + describe('getting Rows', function(){ + it('should get Rows', function(){ + expect(grid.getRow()).toBe(null); + expect(grid.getRows(grid.rows[0].entity)).toBe(grid.rows[0]); + expect(grid.getRows(grid.rows[0].entity), [grid.rows[0]]).toBe(grid.rows[0]); + }); + + it('should get Rows by key', function(){ + grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true}; + grid.rows[1].entity = {multi: true}; + grid.rows[0].str = 'abc'; + grid.rows[0].num = 123; + grid.rows[0].nll = null; + grid.rows[0].innerMulti = false; + grid.rows[1].innerMulti = false; + + expect(grid.getRowsByKey()).toBe(null); + expect(grid.getRowsByKey(true, "test")).toBe(null); + expect(grid.getRowsByKey(true, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(true, "str", "def")).toBe(null); + expect(grid.getRowsByKey(true, "num", 123)).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(true, "nll", null)).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(true, "multi", true).length).toBe(2); + + expect(grid.getRowsByKey(false, "test")).toBe(null); + expect(grid.getRowsByKey(false, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(false, "str", "def")).toBe(null); + expect(grid.getRowsByKey(false, "num", 123)).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(false, "nll", null)).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(true, "innerMulti", false).length).toBe(2); + }); + + it('should find first Row by key', function(){ + grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true}; + grid.rows[1].entity = {multi: true}; + grid.rows[0].str = 'abc'; + grid.rows[0].num = 123; + grid.rows[0].nll = null; + grid.rows[0].innerMulti = false; + grid.rows[1].innerMulti = false; + + expect(grid.findRowByKey()).toBe(null); + expect(grid.findRowByKey(true, "test")).toBe(null); + expect(grid.findRowByKey(true, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.findRowByKey(true, "str", "def")).toBe(null); + expect(grid.findRowByKey(true, "num", 123)).toBe([grid.rows[0]]); + expect(grid.findRowByKey(true, "nll", null)).toBe([grid.rows[0]]); + expect(grid.findRowByKey(true, "multi", true).length).toBe(1); + + expect(grid.findRowByKey(false, "test")).toBe(null); + expect(grid.findRowByKey(false, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.findRowByKey(false, "str", "def")).toBe(null); + expect(grid.findRowByKey(false, "num", 123)).toBe([grid.rows[0]]); + expect(grid.findRowByKey(false, "nll", null)).toBe([grid.rows[0]]); + expect(grid.findRowByKey(true, "innerMulti", false).length).toBe(1); + }); + }) + describe('buildColumns', function() { it('guess correct column types when not specified', function() { var dataRow = {str: 'abc', num: 123, dat: new Date(), bool: true, obj: {}, nll: null, negNum: -1, posNum: +1}; diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 4887296a1..745fe750f 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -197,6 +197,68 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.api.selection.selectRow(grid.rows[4].entity); expect(grid.rows[4].isSelected).toBe(false); }); + + it('select by key then unselect rows by key in entity, including selecting rows already selected and unselecting rows not selected', function() { + grid.rows[4].entity = {str: 'abc'}; + grid.rows[6].entity = {str: 'def'}; + grid.api.selection.selectRowByKey(true, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(true); + + grid.api.selection.selectRowByKey(true, "str", "def"); + expect(grid.rows[4].isSelected).toBe(true); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.selectRowByKey(true, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(true); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(true, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(true, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(true, "str", "def"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(false); + + grid.rows[4].enableSelection = false; + grid.api.selection.selectRowByKey(true, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + }); + + it('select by key then unselect rows by key outside entity, including selecting rows already selected and unselecting rows not selected', function() { + grid.rows[4] = {str: 'abc'}; + grid.rows[6] = {str: 'def'}; + grid.api.selection.selectRowByKey(false, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(true); + + grid.api.selection.selectRowByKey(false, "str", "def"); + expect(grid.rows[4].isSelected).toBe(true); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.selectRowByKey(false, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(true); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(false, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(false, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(true); + + grid.api.selection.unSelectRowByKey(false, "str", "def"); + expect(grid.rows[4].isSelected).toBe(false); + expect(grid.rows[6].isSelected).toBe(false); + + grid.rows[4].enableSelection = false; + grid.api.selection.selectRowByKey(false, "str", "abc"); + expect(grid.rows[4].isSelected).toBe(false); + }); }); describe('setSelected function', function() { From 15ce1147011d7c2644f2ac5950dcc0cc93ba7ab2 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 08:55:23 +0200 Subject: [PATCH 17/62] - style fix --- packages/core/test/core/factories/Grid.spec.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/core/test/core/factories/Grid.spec.js b/packages/core/test/core/factories/Grid.spec.js index ef6192083..87dbdb379 100644 --- a/packages/core/test/core/factories/Grid.spec.js +++ b/packages/core/test/core/factories/Grid.spec.js @@ -324,14 +324,14 @@ describe('Grid factory', function() { }); }); - describe('getting Rows', function(){ - it('should get Rows', function(){ + describe('getting Rows', function() { + it('should get Rows', function() { expect(grid.getRow()).toBe(null); expect(grid.getRows(grid.rows[0].entity)).toBe(grid.rows[0]); expect(grid.getRows(grid.rows[0].entity), [grid.rows[0]]).toBe(grid.rows[0]); }); - it('should get Rows by key', function(){ + it('should get Rows by key', function() { grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true}; grid.rows[1].entity = {multi: true}; grid.rows[0].str = 'abc'; @@ -356,7 +356,7 @@ describe('Grid factory', function() { expect(grid.getRowsByKey(true, "innerMulti", false).length).toBe(2); }); - it('should find first Row by key', function(){ + it('should find first Row by key', function() { grid.rows[0].entity = {str: 'abc', num: 123, nll: null, multi: true}; grid.rows[1].entity = {multi: true}; grid.rows[0].str = 'abc'; From 01857a3f96bd76a1c13a7f8117ab3ef2a3f42f6e Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 09:07:07 +0200 Subject: [PATCH 18/62] - added key unset check - easified unittest check - unittest corrections - corrected unit test array check - fixed getting not existing object - fixed selection unit test error get fix selection test getter fix selection test fix getter fix selection fixed selection fix lint error selection test void 0 check selection test --- packages/core/src/js/factories/Grid.js | 38 ++++++++++------- .../core/test/core/factories/Grid.spec.js | 42 +++++++++---------- packages/selection/src/js/selection.js | 14 +++---- .../test/uiGridSelectionService.spec.js | 5 ++- 4 files changed, 53 insertions(+), 46 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index f99932610..1043925b1 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -1105,11 +1105,15 @@ angular.module('ui.grid') * looks in grid.rows */ Grid.prototype.getRowsByKey = function getRowsByKey(isInEntity, key, comparator, lookInRows) { + if ( key == void 0 ) { + return null; + } + lookInRows = lookInRows == void 0 ? this.rows : lookInRows; var func = isInEntity ? function (row) { - return row.entity != void 0 && row.entity[key] === comparator; + return row.entity != void 0 && row.entity.hasOwnProperty(key) && row.entity[key] === comparator; } : function (row) { - return row[key] === comparator; + return row.hasOwnProperty(key) && row[key] === comparator; } return lookInRows.filter(func); @@ -1127,23 +1131,25 @@ angular.module('ui.grid') * looks in grid.rows */ Grid.prototype.findRowByKey = function findRowByKey(isInEntity, key, comparator, lookInRows) { - lookInRows = lookInRows == void 0 ? this.rows : lookInRows; var result = null; - var func = isInEntity ? function (row) { - if ( row.entity != void 0 && row.entity[key] === comparator ) { - result = row; - return false; - } - return true; - } : function (row) { - if ( row[key] === comparator ) { - result = row; - return false; + if ( key != void 0 ) { + lookInRows = lookInRows == void 0 ? this.rows : lookInRows; + var func = isInEntity ? function (row) { + if ( row.entity != void 0 && row.entity.hasOwnProperty(key) && row.entity[key] === comparator ) { + result = row; + return false; + } + return true; + } : function (row) { + if ( row.hasOwnProperty(key) && row[key] === comparator ) { + result = row; + return false; + } + return true; } - return true; - } - lookInRows.every(func); + lookInRows.every(func); + } return result }; diff --git a/packages/core/test/core/factories/Grid.spec.js b/packages/core/test/core/factories/Grid.spec.js index 87dbdb379..31ad34096 100644 --- a/packages/core/test/core/factories/Grid.spec.js +++ b/packages/core/test/core/factories/Grid.spec.js @@ -327,8 +327,8 @@ describe('Grid factory', function() { describe('getting Rows', function() { it('should get Rows', function() { expect(grid.getRow()).toBe(null); - expect(grid.getRows(grid.rows[0].entity)).toBe(grid.rows[0]); - expect(grid.getRows(grid.rows[0].entity), [grid.rows[0]]).toBe(grid.rows[0]); + expect(grid.getRow(grid.rows[0].entity)).toBe(grid.rows[0]); + expect(grid.getRow(grid.rows[0].entity), [grid.rows[0]]).toBe(grid.rows[0]); }); it('should get Rows by key', function() { @@ -341,19 +341,19 @@ describe('Grid factory', function() { grid.rows[1].innerMulti = false; expect(grid.getRowsByKey()).toBe(null); - expect(grid.getRowsByKey(true, "test")).toBe(null); - expect(grid.getRowsByKey(true, "str", "abc")).toBe([grid.rows[0]]); - expect(grid.getRowsByKey(true, "str", "def")).toBe(null); - expect(grid.getRowsByKey(true, "num", 123)).toBe([grid.rows[0]]); - expect(grid.getRowsByKey(true, "nll", null)).toBe([grid.rows[0]]); + expect(grid.getRowsByKey(true, "test")).toEqual([]); + expect(grid.getRowsByKey(true, "str", "abc")[0].entity).toBe(grid.rows[0].entity); + expect(grid.getRowsByKey(true, "str", "def")).toEqual([]); + expect(grid.getRowsByKey(true, "num", 123)[0].entity).toBe(grid.rows[0].entity); + expect(grid.getRowsByKey(true, "nll", null)[0].entity).toBe(grid.rows[0].entity); expect(grid.getRowsByKey(true, "multi", true).length).toBe(2); - expect(grid.getRowsByKey(false, "test")).toBe(null); - expect(grid.getRowsByKey(false, "str", "abc")).toBe([grid.rows[0]]); - expect(grid.getRowsByKey(false, "str", "def")).toBe(null); - expect(grid.getRowsByKey(false, "num", 123)).toBe([grid.rows[0]]); - expect(grid.getRowsByKey(false, "nll", null)).toBe([grid.rows[0]]); - expect(grid.getRowsByKey(true, "innerMulti", false).length).toBe(2); + expect(grid.getRowsByKey(false, "test")).toEqual([]); + expect(grid.getRowsByKey(false, "str", "abc")).toEqual([grid.rows[0]]); + expect(grid.getRowsByKey(false, "str", "def")).toEqual([]); + expect(grid.getRowsByKey(false, "num", 123)).toEqual([grid.rows[0]]); + expect(grid.getRowsByKey(false, "nll", null)).toEqual([grid.rows[0]]); + expect(grid.getRowsByKey(false, "innerMulti", false).length).toBe(2); }); it('should find first Row by key', function() { @@ -367,18 +367,18 @@ describe('Grid factory', function() { expect(grid.findRowByKey()).toBe(null); expect(grid.findRowByKey(true, "test")).toBe(null); - expect(grid.findRowByKey(true, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.findRowByKey(true, "str", "abc").entity).toBe(grid.rows[0].entity); expect(grid.findRowByKey(true, "str", "def")).toBe(null); - expect(grid.findRowByKey(true, "num", 123)).toBe([grid.rows[0]]); - expect(grid.findRowByKey(true, "nll", null)).toBe([grid.rows[0]]); - expect(grid.findRowByKey(true, "multi", true).length).toBe(1); + expect(grid.findRowByKey(true, "num", 123).entity).toBe(grid.rows[0].entity); + expect(grid.findRowByKey(true, "nll", null).entity).toBe(grid.rows[0].entity); + expect(grid.findRowByKey(true, "multi", true).entity).toBe(grid.rows[0].entity); expect(grid.findRowByKey(false, "test")).toBe(null); - expect(grid.findRowByKey(false, "str", "abc")).toBe([grid.rows[0]]); + expect(grid.findRowByKey(false, "str", "abc")).toBe(grid.rows[0]); expect(grid.findRowByKey(false, "str", "def")).toBe(null); - expect(grid.findRowByKey(false, "num", 123)).toBe([grid.rows[0]]); - expect(grid.findRowByKey(false, "nll", null)).toBe([grid.rows[0]]); - expect(grid.findRowByKey(true, "innerMulti", false).length).toBe(1); + expect(grid.findRowByKey(false, "num", 123)).toBe(grid.rows[0]); + expect(grid.findRowByKey(false, "nll", null)).toBe(grid.rows[0]); + expect(grid.findRowByKey(false, "innerMulti", false).entity).toBe(grid.rows[0].entity); }); }) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 272e59e65..457e1e9a2 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -201,7 +201,7 @@ */ toggleRowSelection: function (rowEntity, evt) { var row = grid.getRow(rowEntity); - if (row !== null) { + if (row != void 0) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -215,7 +215,7 @@ */ selectRow: function (rowEntity, evt) { var row = grid.getRow(rowEntity); - if (row !== null && !row.isSelected) { + if (row != void 0 && !row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -232,7 +232,7 @@ */ selectRowByVisibleIndex: function (rowNum, evt) { var row = grid.renderContainers.body.visibleRowCache[rowNum]; - if (row !== null && typeof (row) !== 'undefined' && !row.isSelected) { + if (row != void 0 && !row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -249,7 +249,7 @@ */ selectRowByKey: function (isInEntity, key, comparator, evt, lookInRows) { var row = grid.findRowByKey(isInEntity, key, comparator, lookInRows); - if (row !== null && !row.isSelected) { + if (row != void 0 && !row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -263,7 +263,7 @@ */ unSelectRow: function (rowEntity, evt) { var row = grid.getRow(rowEntity); - if (row !== null && row.isSelected) { + if (row != void 0 && row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -280,7 +280,7 @@ */ unSelectRowByVisibleIndex: function (rowNum, evt) { var row = grid.renderContainers.body.visibleRowCache[rowNum]; - if (row !== null && typeof (row) !== 'undefined' && row.isSelected) { + if (row != void 0 && row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, @@ -297,7 +297,7 @@ */ unSelectRowByKey: function (isInEntity, key, comparator, evt, lookInRows) { var row = grid.findRowByKey(isInEntity, key, comparator, lookInRows); - if (row !== null && !row.isSelected) { + if (row != void 0 && row.isSelected) { service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); } }, diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 745fe750f..1b9915378 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -230,8 +230,9 @@ describe('ui.grid.selection uiGridSelectionService', function() { }); it('select by key then unselect rows by key outside entity, including selecting rows already selected and unselecting rows not selected', function() { - grid.rows[4] = {str: 'abc'}; - grid.rows[6] = {str: 'def'}; + grid.rows[4].str = 'abc'; + grid.rows[6].str = 'def'; + grid.api.selection.selectRowByKey(false, "str", "abc"); expect(grid.rows[4].isSelected).toBe(true); From 8d2caeeb7fa0e85d73c5513d39f0c8ff7992f0b7 Mon Sep 17 00:00:00 2001 From: gktin Date: Fri, 3 Sep 2021 11:01:12 +0700 Subject: [PATCH 19/62] fix(i18n): complete ru locale update ru locale for i18n, as old one is not completely translated --- packages/i18n/src/js/ru.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/i18n/src/js/ru.js b/packages/i18n/src/js/ru.js index c48799eb9..17aacaf6f 100644 --- a/packages/i18n/src/js/ru.js +++ b/packages/i18n/src/js/ru.js @@ -99,7 +99,7 @@ grouping: { group: 'Группировать', ungroup: 'Разгруппировать', - aggregate_count: 'Группировать: Count', + aggregate_count: 'Группировать: Количество', aggregate_sum: 'Для группы: Сумма', aggregate_max: 'Для группы: Максимум', aggregate_min: 'Для группы: Минимум', From c4e9e0f8e2f9c25eb74b11c2249b0eb5ea0aa7aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Sep 2021 17:23:37 +0000 Subject: [PATCH 20/62] build(deps): bump i from 0.3.6 to 0.3.7 Bumps [i](https://github.com/pksunkara/inflect) from 0.3.6 to 0.3.7. - [Release notes](https://github.com/pksunkara/inflect/releases) - [Commits](https://github.com/pksunkara/inflect/compare/v0.3.6...v0.3.7) --- updated-dependencies: - dependency-name: i dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 590153038..0fe526e8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10621,9 +10621,9 @@ } }, "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", + "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", "dev": true }, "iconv-lite": { From 31bab77836fe4f1e16661f026eed2e5a001d19f0 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 6 Oct 2021 15:51:02 +0200 Subject: [PATCH 21/62] [feature/4850] - added get unselectedRows Api --- packages/selection/src/js/selection.js | 60 +++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 1ffd0ec20..691d425ab 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -326,14 +326,19 @@ * @ngdoc function * @name getSelectedRows * @methodOf ui.grid.selection.api:PublicApi - * @description returns all selectedRow's entity references + * @description returns all selected Row's entity references */ getSelectedRows: function () { - return service.getSelectedRows(grid).map(function (gridRow) { - return gridRow.entity; - }).filter(function (entity) { - return entity.hasOwnProperty('$$hashKey') || !angular.isObject(entity); - }); + return service.mapAndFilterRowsByEntity(service.getSelectedRows(grid)); + }, + /** + * @ngdoc function + * @name getUnSelectedRows + * @methodOf ui.grid.selection.api:PublicApi + * @description returns all unselected Row's entity references + */ + getUnSelectedRows: function () { + return service.mapAndFilterRowsByEntity(service.getUnSelectedRows(grid)); }, /** * @ngdoc function @@ -344,6 +349,15 @@ getSelectedGridRows: function () { return service.getSelectedRows(grid); }, + /** + * @ngdoc function + * @name getSelectedGridRows + * @methodOf ui.grid.selection.api:PublicApi + * @description returns all unselected Row's as gridRows + */ + getUnSelectedGridRows: function () { + return service.getUnSelectedRows(grid); + }, /** * @ngdoc function * @name getSelectedCount @@ -615,6 +629,40 @@ return row.isSelected; }); }, + /** + * @ngdoc function + * @name getUnSelectedRows + * @methodOf ui.grid.selection.service:uiGridSelectionService + * @description Returns all the unselected rows + * @param {Grid} grid grid object + */ + getUnSelectedRows: function (grid) { + return grid.rows.filter(function (row) { + return !row.isSelected; + }); + }, + /** + * @ngdoc function + * @name mapAndFilterRowsByEntity + * @methodOf ui.grid.selection.service:uiGridSelectionService + * @description Filters all rows by entity and then maps them to Array. + */ + mapAndFilterRowsByEntity: function(gridRows) { + if(typeof gridRows.reduce === 'function') { // If reduce is available it will be taken, due to better performance + return gridRows.reduce(function (previousVal, currentRow) { + if (currentRow.entity.hasOwnProperty('$$hashKey') || !angular.isObject(currentRow.entity)) { + previousVal.push(currentRow.entity); + } + return previousVal; + }, []); + } + + return gridRows.filter(function (gridRow) { // stays as polyfill + return gridRow.entity.hasOwnProperty('$$hashKey') || !angular.isObject(gridRow.entity); + }).map(function (gridRow) { + return gridRow.entity; + }); + }, /** * @ngdoc function From e17ceb0ab195e1cf44274917c27b6013741d0254 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 6 Oct 2021 15:57:47 +0200 Subject: [PATCH 22/62] fixed code style --- packages/selection/src/js/selection.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 691d425ab..ae3319545 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -648,7 +648,7 @@ * @description Filters all rows by entity and then maps them to Array. */ mapAndFilterRowsByEntity: function(gridRows) { - if(typeof gridRows.reduce === 'function') { // If reduce is available it will be taken, due to better performance + if (typeof gridRows.reduce === 'function') { // If reduce is available it will be taken, due to better performance return gridRows.reduce(function (previousVal, currentRow) { if (currentRow.entity.hasOwnProperty('$$hashKey') || !angular.isObject(currentRow.entity)) { previousVal.push(currentRow.entity); From da9d1b7cb005dbe2a0fed9328dab89fd2ce8b215 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:06:57 +0200 Subject: [PATCH 23/62] [feature/4850] - added tests for get getUnSelectedRows, getUnSelectedGridRows and getSelectedGridRows --- .../test/uiGridSelectionService.spec.js | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 4887296a1..6486fd6f5 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -123,8 +123,10 @@ describe('ui.grid.selection uiGridSelectionService', function() { it('should utilize public apis', function() { grid.api.selection.toggleRowSelection(grid.rows[0].entity); expect(uiGridSelectionService.getSelectedRows(grid).length).toBe(1); + expect(uiGridSelectionService.getUnSelectedRows(grid).length).toBe(9); grid.api.selection.clearSelectedRows(); expect(uiGridSelectionService.getSelectedRows(grid).length).toBe(0); + expect(uiGridSelectionService.getUnSelectedRows(grid).length).toBe(10); }); }); @@ -368,6 +370,11 @@ describe('ui.grid.selection uiGridSelectionService', function() { }); describe('getSelectedRows function', function() { + it('should retrieve empty array if nothing selected', function() { + expect(grid.api.selection.getSelectedRows().length).toBe(0); + expect(grid.api.selection.getSelectedGridRows().length).toBe(0); + }); + it('should retrieve the selected rows that have a $$hashKey property', function() { grid.rows.forEach(function(row) { row.isSelected = false; @@ -387,6 +394,56 @@ describe('ui.grid.selection uiGridSelectionService', function() { }; expect(grid.api.selection.getSelectedRows().length).toEqual(2); + expect(grid.api.selection.getSelectedGridRows().length).toEqual(2); + }); + + it('should retrieve correct data', function() { + grid.rows[0].isSelected = true; + grid.rows[0].entity = { + $$hashKey: '1234' + }; + + expect(grid.api.selection.getSelectedRows()[0].$$hashKey).toEqual('1234'); + expect(grid.api.selection.getSelectedGridRows()[0].entity).toEqual({ + $$hashKey: '1234' + }); + }); + }); + + describe('getUnSelectedRows function', function() { + it('should retrieve every row if nothing selected', function() { + expect(grid.api.selection.getUnSelectedRows().length).toEqual(10); + expect(grid.api.selection.getUnSelectedGridRows().length).toEqual(10); + }); + + it('should retrieve the unselected rows that have a $$hashKey property', function() { + grid.rows.forEach(function(row) { + row.isSelected = false; + row.entity = { + $$hashKey: '1234' + }; + }); + + grid.rows[0].isSelected = true; + grid.rows[1].isSelected = true; + grid.rows[2].isSelected = true; + grid.rows[2].entity = {}; + grid.rows[3].entity = {}; + + expect(grid.api.selection.getUnSelectedRows().length).toEqual(8); + expect(grid.api.selection.getUnSelectedGridRows().length).toEqual(7); + }); + + it('should retrieve correct data', function() { + grid.rows[0].isSelected = false; + grid.rows[0].entity = { + $$hashKey: '1234' + }; + + expect(grid.api.selection.getUnSelectedRows()[0].$$hashKey).toEqual('1234'); + expect(grid.api.selection.getUnSelectedGridRows()[0].entity).toEqual({ + $$hashKey: '1234' + }); }); }); From 8b710b2ad4dcaabbc8a9a3cb5cfe085c83891322 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:10:42 +0200 Subject: [PATCH 24/62] fixed code style --- packages/selection/test/uiGridSelectionService.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 6486fd6f5..f7e251e8f 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -416,7 +416,7 @@ describe('ui.grid.selection uiGridSelectionService', function() { expect(grid.api.selection.getUnSelectedGridRows().length).toEqual(10); }); - it('should retrieve the unselected rows that have a $$hashKey property', function() { + it('should retrieve the unselected rows that have a $$hashKey property', function() { grid.rows.forEach(function(row) { row.isSelected = false; row.entity = { From fc5cbf6170801d048537eabe66b2b292baa652c1 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:16:20 +0200 Subject: [PATCH 25/62] [feature/4850] - fixed test --- packages/selection/test/uiGridSelectionService.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index f7e251e8f..674897f9e 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -394,7 +394,7 @@ describe('ui.grid.selection uiGridSelectionService', function() { }; expect(grid.api.selection.getSelectedRows().length).toEqual(2); - expect(grid.api.selection.getSelectedGridRows().length).toEqual(2); + expect(grid.api.selection.getSelectedGridRows().length).toEqual(3); }); it('should retrieve correct data', function() { @@ -430,7 +430,7 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[2].entity = {}; grid.rows[3].entity = {}; - expect(grid.api.selection.getUnSelectedRows().length).toEqual(8); + expect(grid.api.selection.getUnSelectedRows().length).toEqual(6); expect(grid.api.selection.getUnSelectedGridRows().length).toEqual(7); }); From 5e818443780bf510032d253392feb7dc8b90b593 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 13:35:08 +0200 Subject: [PATCH 26/62] [hotfix/6418] - added param canBeInvisible to toggleRowSelection, which, if false, only selects rows when visible --- packages/selection/src/js/selection.js | 49 +++++++++++++------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index ae3319545..7d0898869 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -202,7 +202,7 @@ toggleRowSelection: function (rowEntity, evt) { var row = grid.getRow(rowEntity); if (row !== null) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -216,7 +216,7 @@ selectRow: function (rowEntity, evt) { var row = grid.getRow(rowEntity); if (row !== null && !row.isSelected) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -233,7 +233,7 @@ selectRowByVisibleIndex: function (rowNum, evt) { var row = grid.renderContainers.body.visibleRowCache[rowNum]; if (row !== null && typeof (row) !== 'undefined' && !row.isSelected) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); } }, /** @@ -247,7 +247,7 @@ unSelectRow: function (rowEntity, evt) { var row = grid.getRow(rowEntity); if (row !== null && row.isSelected) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -264,7 +264,7 @@ unSelectRowByVisibleIndex: function (rowNum, evt) { var row = grid.renderContainers.body.visibleRowCache[rowNum]; if (row !== null && typeof (row) !== 'undefined' && row.isSelected) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); } }, /** @@ -545,38 +545,37 @@ * @param {Event} evt object if resulting from event * @param {bool} multiSelect if false, only one row at time can be selected * @param {bool} noUnselect if true then rows cannot be unselected + * @param {bool} [canBeInvisible=true] if false, row can only be selected when it's (theoretically) visible */ - toggleRowSelection: function (grid, row, evt, multiSelect, noUnselect) { + toggleRowSelection: function (grid, row, evt, multiSelect, noUnselect, canBeInvisible) { if ( row.enableSelection === false ) { return; } - var selected = row.isSelected, - selectedRows; + if (canBeInvisible === void 0) { + canBeInvisible = true; + } + + var selected = row.isSelected; if (!multiSelect) { if (!selected) { service.clearSelectedRows(grid, evt); } - else { - selectedRows = service.getSelectedRows(grid); - if (selectedRows.length > 1) { - selected = false; // Enable reselect of the row - service.clearSelectedRows(grid, evt); - } + else if (service.getSelectedRows(grid).length > 1) { + selected = false; // Enable reselect of the row + service.clearSelectedRows(grid, evt); } } // only select row in this case - if (!(selected && noUnselect)) { + if (!(selected && noUnselect) && (canBeInvisible || row.visible)) { row.setSelected(!selected); if (row.isSelected === true) { grid.selection.lastSelectedRow = row; } - selectedRows = service.getSelectedRows(grid); - grid.selection.selectAll = grid.rows.length === selectedRows.length; - + grid.selection.selectAll = grid.rows.length === service.getSelectedRows(grid).length; grid.api.selection.raise.rowSelectionChanged(row, evt); } }, @@ -850,17 +849,17 @@ } else if (evt.ctrlKey || evt.metaKey) { uiGridSelectionService.toggleRowSelection(self, row, evt, - self.options.multiSelect, self.options.noUnselect); + self.options.multiSelect, self.options.noUnselect, false); } else if (row.groupHeader) { - uiGridSelectionService.toggleRowSelection(self, row, evt, self.options.multiSelect, self.options.noUnselect); + uiGridSelectionService.toggleRowSelection(self, row, evt, self.options.multiSelect, self.options.noUnselect, false); for (var i = 0; i < row.treeNode.children.length; i++) { - uiGridSelectionService.toggleRowSelection(self, row.treeNode.children[i].row, evt, self.options.multiSelect, self.options.noUnselect); + uiGridSelectionService.toggleRowSelection(self, row.treeNode.children[i].row, evt, self.options.multiSelect, self.options.noUnselect, false); } } else { uiGridSelectionService.toggleRowSelection(self, row, evt, - (self.options.multiSelect && !self.options.modifierKeysToMultiSelect), self.options.noUnselect); + (self.options.multiSelect && !self.options.modifierKeysToMultiSelect), self.options.noUnselect, false); } self.options.enableFocusRowOnRowHeaderClick && row.setFocused(!row.isFocused) && self.api.selection.raise.rowFocusChanged(row, evt); } @@ -981,7 +980,7 @@ evt.preventDefault(); uiGridSelectionService.toggleRowSelection($scope.grid, $scope.row, evt, ($scope.grid.options.multiSelect && !$scope.grid.options.modifierKeysToMultiSelect), - $scope.grid.options.noUnselect); + $scope.grid.options.noUnselect, false); $scope.$apply(); } }); @@ -1001,12 +1000,12 @@ } else if (evt.ctrlKey || evt.metaKey) { uiGridSelectionService.toggleRowSelection($scope.grid, $scope.row, evt, - $scope.grid.options.multiSelect, $scope.grid.options.noUnselect); + $scope.grid.options.multiSelect, $scope.grid.options.noUnselect, false); } else if ($scope.grid.options.enableSelectRowOnFocus) { uiGridSelectionService.toggleRowSelection($scope.grid, $scope.row, evt, ($scope.grid.options.multiSelect && !$scope.grid.options.modifierKeysToMultiSelect), - $scope.grid.options.noUnselect); + $scope.grid.options.noUnselect, false); } $scope.row.setFocused(!$scope.row.isFocused); $scope.grid.api.selection.raise.rowFocusChanged($scope.row, evt); From 1c440fc769779a843752915d144efada0eafb301 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 13:54:34 +0200 Subject: [PATCH 27/62] [hotfix/6418] - added unit test --- .../test/uiGridSelectionService.spec.js | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 674897f9e..34f14b00a 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -77,6 +77,49 @@ describe('ui.grid.selection uiGridSelectionService', function() { expect(grid.rows[1].isSelected).toBe(true); }); + it('should toggle selected with invisible rows using default', function() { + grid.rows[0].visible = true; + grid.rows[1].visible = false; + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false); + expect(grid.rows[1].isSelected).toBe(true); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false); + expect(grid.rows[0].isSelected).toBe(false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false); + expect(grid.rows[1].isSelected).toBe(false); + }); + + it('should toggle selected with invisible rows but not using default', function() { + grid.rows[0].visible = true; + grid.rows[1].visible = false; + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, true); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, true); + expect(grid.rows[1].isSelected).toBe(true); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, true); + expect(grid.rows[0].isSelected).toBe(false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, true); + expect(grid.rows[1].isSelected).toBe(false); + }); + + it('should toggle selected with visible rows', function() { + grid.rows[0].visible = true; + grid.rows[1].visible = false; + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, false); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, false); + expect(grid.rows[1].isSelected).toBe(false); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, false); + expect(grid.rows[0].isSelected).toBe(false); + }); + it('should not toggle selected with enableSelection: false', function() { grid.rows[0].enableSelection = false; uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); From 04113c197bbcd8ebc85d038be3cae6ef63b10303 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 14:11:00 +0200 Subject: [PATCH 28/62] - fixed code style --- packages/selection/test/uiGridSelectionService.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 34f14b00a..87e2ab015 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -115,7 +115,7 @@ describe('ui.grid.selection uiGridSelectionService', function() { expect(grid.rows[0].isSelected).toBe(true); uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, false); expect(grid.rows[1].isSelected).toBe(false); - + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, false); expect(grid.rows[0].isSelected).toBe(false); }); From a58b92ac09b344a3f7511213d2ffc0c75576893d Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 14:22:54 +0200 Subject: [PATCH 29/62] [hotfix/6418] - activated multiselect for toggle test --- .../test/uiGridSelectionService.spec.js | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 87e2ab015..4153e0b9a 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -81,14 +81,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true); expect(grid.rows[1].isSelected).toBe(false); }); @@ -96,14 +96,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, true); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, true); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, true); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, true); expect(grid.rows[1].isSelected).toBe(false); }); @@ -111,13 +111,16 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); expect(grid.rows[1].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(false); + grid.rows[1].isSelected = true; + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); + expect(grid.rows[1].isSelected).toBe(true); }); it('should not toggle selected with enableSelection: false', function() { From babf11e884985c3808dc44eaf8cdca982809b766 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:40:22 +0200 Subject: [PATCH 30/62] [hotfix/6418] - split use of row 1 in test --- packages/selection/test/uiGridSelectionService.spec.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 4153e0b9a..4f65099bf 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -110,6 +110,8 @@ describe('ui.grid.selection uiGridSelectionService', function() { it('should toggle selected with visible rows', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; + grid.rows[2].visible = false; + grid.rows[2].isSelected = true; uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(true); @@ -118,9 +120,9 @@ describe('ui.grid.selection uiGridSelectionService', function() { uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(false); - grid.rows[1].isSelected = true; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); - expect(grid.rows[1].isSelected).toBe(true); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], null, true, false); + expect(grid.rows[2].isSelected).toBe(true); }); it('should not toggle selected with enableSelection: false', function() { From 2db751973ae101c013d42a7ac05ad4b31186e0f6 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:44:31 +0200 Subject: [PATCH 31/62] fixed code style --- packages/selection/test/uiGridSelectionService.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 4f65099bf..73c923959 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -120,7 +120,7 @@ describe('ui.grid.selection uiGridSelectionService', function() { uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(false); - + uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], null, true, false); expect(grid.rows[2].isSelected).toBe(true); }); From 54499ec19ee2584025c39fe915755e7b97b1f461 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 15:56:40 +0200 Subject: [PATCH 32/62] [hotfix/6418] - corrected mistake, now multiselect is activated and noUnSelect deactivated --- .../test/uiGridSelectionService.spec.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 73c923959..6230e670e 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -81,14 +81,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false); expect(grid.rows[1].isSelected).toBe(false); }); @@ -96,14 +96,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, true); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, true); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, true); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, true); expect(grid.rows[1].isSelected).toBe(false); }); @@ -113,15 +113,15 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[2].visible = false; grid.rows[2].isSelected = true; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, false); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, false); expect(grid.rows[1].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, false); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], null, true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], true, false, false); expect(grid.rows[2].isSelected).toBe(true); }); From c2755e5a5dc50d49a7dc82bc0977d8d58888d526 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 7 Oct 2021 16:09:17 +0200 Subject: [PATCH 33/62] [hotfix/6418] - added event null to tests --- .../test/uiGridSelectionService.spec.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 6230e670e..2602c63d0 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -81,14 +81,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); expect(grid.rows[1].isSelected).toBe(false); }); @@ -96,14 +96,14 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[0].visible = true; grid.rows[1].visible = false; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, true); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false, true); expect(grid.rows[1].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, true); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false, true); expect(grid.rows[1].isSelected).toBe(false); }); @@ -113,15 +113,15 @@ describe('ui.grid.selection uiGridSelectionService', function() { grid.rows[2].visible = false; grid.rows[2].isSelected = true; - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, false); expect(grid.rows[0].isSelected).toBe(true); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], true, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false, false); expect(grid.rows[1].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], true, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, false); expect(grid.rows[0].isSelected).toBe(false); - uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], true, false, false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], null, true, false, false); expect(grid.rows[2].isSelected).toBe(true); }); From 452a8129a37b64ce7d6218b1b000d471e103c7ba Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 09:36:22 +0200 Subject: [PATCH 34/62] [hotfix/4396] - exchanged jquery's text() function with more efficient direct assignment --- packages/core/src/js/directives/ui-grid-style.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/core/src/js/directives/ui-grid-style.js b/packages/core/src/js/directives/ui-grid-style.js index 54f634e4e..4f6509c66 100644 --- a/packages/core/src/js/directives/ui-grid-style.js +++ b/packages/core/src/js/directives/ui-grid-style.js @@ -45,7 +45,9 @@ if (interpolateFn) { $scope.$watch(interpolateFn, function(value) { - $elm.text(value); + for (let i = 0; i < $elm.length; i++) { + $elm[i].textContent = value; + } }); } } From 64fc196617ccad039fc5f36c510e47a1e43b03a0 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 09:42:40 +0200 Subject: [PATCH 35/62] [hotfix/4396] - replaced let with var --- packages/core/src/js/directives/ui-grid-style.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/js/directives/ui-grid-style.js b/packages/core/src/js/directives/ui-grid-style.js index 4f6509c66..164ac98d7 100644 --- a/packages/core/src/js/directives/ui-grid-style.js +++ b/packages/core/src/js/directives/ui-grid-style.js @@ -45,7 +45,7 @@ if (interpolateFn) { $scope.$watch(interpolateFn, function(value) { - for (let i = 0; i < $elm.length; i++) { + for (var i = 0; i < $elm.length; i++) { $elm[i].textContent = value; } }); From 59790dfe047bfdcd7f9fcb981a4e9c31a500db78 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 15:02:55 +0200 Subject: [PATCH 36/62] [hotfix/4446] - made exporterCSVFileName to optionally be a function --- packages/exporter/src/js/exporter.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/exporter/src/js/exporter.js b/packages/exporter/src/js/exporter.js index 64b19c052..7c6296b54 100755 --- a/packages/exporter/src/js/exporter.js +++ b/packages/exporter/src/js/exporter.js @@ -232,6 +232,13 @@ * @description The default filename to use when saving the downloaded csv. * This will only work in some browsers. *
Defaults to 'download.csv' + *
+           *   gridOptions.exporterCsvFilename = "rows.csv"
+           * 
+ *
Or a function returning a string: + *
+           *   gridOptions.exporterCsvFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".csv" };
+           * 
*/ gridOptions.exporterCsvFilename = gridOptions.exporterCsvFilename ? gridOptions.exporterCsvFilename : 'download.csv'; /** @@ -831,7 +838,8 @@ var exportData = self.getData(grid, rowTypes, colTypes); var csvContent = self.formatAsCsv(exportColumnHeaders, exportData, grid.options.exporterCsvColumnSeparator); - self.downloadFile (grid.options.exporterCsvFilename, csvContent, grid.options.exporterCsvColumnSeparator, grid.options.exporterOlderExcelCompatibility, grid.options.exporterIsExcelCompatible); + var fileName = angular.isFunction(grid.options.exporterCsvFilename) ? grid.options.exporterCsvFilename(grid, rowTypes, colTypes) : grid.options.exporterCsvFilename; + self.downloadFile(fileName, csvContent, grid.options.exporterCsvColumnSeparator, grid.options.exporterOlderExcelCompatibility, grid.options.exporterIsExcelCompatible); }); }, From 0e58afbb06ddde236c8b1d52e016bd9e8ec1963d Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 15:07:59 +0200 Subject: [PATCH 37/62] [hotfix/4446] - made exporterPdfFileName to optionally be a function --- packages/exporter/src/js/exporter.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/exporter/src/js/exporter.js b/packages/exporter/src/js/exporter.js index 7c6296b54..9e0199439 100755 --- a/packages/exporter/src/js/exporter.js +++ b/packages/exporter/src/js/exporter.js @@ -247,6 +247,13 @@ * @propertyOf ui.grid.exporter.api:GridOptions * @description The default filename to use when saving the downloaded pdf, only used in IE (other browsers open pdfs in a new window) *
Defaults to 'download.pdf' + *
+           *   gridOptions.exporterPdfFilename = "rows.pdf"
+           * 
+ *
Or a function returning a string: + *
+           *   gridOptions.exporterPdfFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".pdf" };
+           * 
*/ gridOptions.exporterPdfFilename = gridOptions.exporterPdfFilename ? gridOptions.exporterPdfFilename : 'download.pdf'; /** @@ -1276,7 +1283,8 @@ docDefinition = self.prepareAsPdf(grid, exportColumnHeaders, exportData); if (self.isIE() || navigator.appVersion.indexOf('Edge') !== -1) { - self.downloadPDF(grid.options.exporterPdfFilename, docDefinition); + var fileName = angular.isFunction(grid.options.exporterPdfFilename) ? grid.options.exporterPdfFilename(grid, rowTypes, colTypes) : grid.options.exporterPdfFilename; + self.downloadPDF(fileName, docDefinition); } else { pdfMake.createPdf(docDefinition).open(); } From a4e8f731868f2579dbd461c4e02d501963f465ac Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 15:36:17 +0200 Subject: [PATCH 38/62] [hotfix/4446] - exporterExcelFileName and SheetName are now possible to be functions --- packages/exporter/src/js/exporter.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/exporter/src/js/exporter.js b/packages/exporter/src/js/exporter.js index 9e0199439..cf77663f6 100755 --- a/packages/exporter/src/js/exporter.js +++ b/packages/exporter/src/js/exporter.js @@ -262,6 +262,13 @@ * @propertyOf ui.grid.exporter.api:GridOptions * @description The default filename to use when saving the downloaded excel, only used in IE (other browsers open excels in a new window) *
Defaults to 'download.xlsx' + *
+           *   gridOptions.exporterExcelFilename = "rows.xlsx"
+           * 
+ *
Or a function returning a string: + *
+           *   gridOptions.exporterExcelFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".xlsx" };
+           * 
*/ gridOptions.exporterExcelFilename = gridOptions.exporterExcelFilename ? gridOptions.exporterExcelFilename : 'download.xlsx'; @@ -271,6 +278,13 @@ * @propertyOf ui.grid.exporter.api:GridOptions * @description The default sheetname to use when saving the downloaded to excel *
Defaults to 'Sheet1' + *
+           *   gridOptions.exporterExcelSheetName = "HitListSheet"
+           * 
+ *
Or a function returning a string: + *
+           *   gridOptions.exporterExcelSheetName = function(grid, rowTypes, colTypes) { return "HitListSheet" + rowTypes };
+           * 
*/ gridOptions.exporterExcelSheetName = gridOptions.exporterExcelSheetName ? gridOptions.exporterExcelSheetName : 'Sheet1'; @@ -1624,9 +1638,13 @@ this.loadAllDataIfNeeded(grid, rowTypes, colTypes).then(function() { var exportColumnHeaders = grid.options.showHeader ? self.getColumnHeaders(grid, colTypes) : []; - var workbook = new ExcelBuilder.Workbook(); - var aName = grid.options.exporterExcelSheetName ? grid.options.exporterExcelSheetName : 'Sheet1'; + var aName = 'Sheet1'; + if (grid.options.exporterExcelSheetName) { + aName = angular.isFunction(grid.options.exporterExcelSheetName) ? grid.options.exporterExcelSheetName(grid, rowTypes, colTypes) : grid.options.exporterExcelSheetName; + } + var sheet = new ExcelBuilder.Worksheet({name: aName}); + var workbook = new ExcelBuilder.Workbook(); workbook.addWorksheet(sheet); var docDefinition = self.prepareAsExcel(grid, workbook, sheet); @@ -1649,8 +1667,8 @@ sheet.setData(sheet.data.concat(excelContent)); ExcelBuilder.Builder.createFile(workbook, {type: 'blob'}).then(function(result) { - self.downloadFile (grid.options.exporterExcelFilename, result, grid.options.exporterCsvColumnSeparator, - grid.options.exporterOlderExcelCompatibility); + var fileName = angular.isFunction(grid.options.exporterExcelFilename) ? grid.options.exporterExcelFilename(grid, rowTypes, colTypes) : grid.options.exporterExcelFilename; + self.downloadFile(fileName, result, grid.options.exporterCsvColumnSeparator, grid.options.exporterOlderExcelCompatibility); }); }); } From 3d9f4bae92c3895bee5792767f7021b40dc4497b Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 15:55:06 +0200 Subject: [PATCH 39/62] [hotfix/4446] - added unit tests --- packages/exporter/test/exporter.spec.js | 74 +++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/packages/exporter/test/exporter.spec.js b/packages/exporter/test/exporter.spec.js index e2e911836..1d2d66998 100644 --- a/packages/exporter/test/exporter.spec.js +++ b/packages/exporter/test/exporter.spec.js @@ -738,6 +738,19 @@ describe('ui.grid.exporter', function() { callback(); } }); + spyOn(uiGridExporterService, 'exporterCsvFilename'); + grid.options.exporterCsvFilename = function(grid, rowTypes, colTypes) { + if (!grid) { + throw Error("got erroneous Parameter: no grid"); + } + if (rowTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); + } + if (colTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); + } + return "test"; + } uiGridExporterService.csvExport(grid, uiGridExporterConstants.VISIBLE, uiGridExporterConstants.VISIBLE); }); afterEach(function() { @@ -750,6 +763,9 @@ describe('ui.grid.exporter', function() { it('calls downloadFile', function() { expect(uiGridExporterService.downloadFile).toHaveBeenCalled(); }); + it('calls exporterCsvFilename', function() { + expect(uiGridExporterService.exporterCsvFilename).toHaveBeenCalled(); + }); }); describe('loadAllDataIfNeeded', function() { @@ -1043,6 +1059,26 @@ describe('ui.grid.exporter', function() { uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.loadAllDataIfNeeded).toHaveBeenCalled(); }); + + it('calls exporterPdfFilename', function() { + spyOn(uiGridExporterService, 'exporterPdfFilename'); + grid.options.exporterCsvFilename = function(grid, rowTypes, colTypes) { + if (!grid) { + throw Error("got erroneous Parameter: no grid"); + } + if (rowTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); + } + if (colTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); + } + return "test"; + } + + uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); + expect(uiGridExporterService.exporterCsvFilename).toHaveBeenCalled(); + }); + }); describe('prepareAsPdf', function() { @@ -1324,6 +1360,44 @@ describe('ui.grid.exporter', function() { uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.loadAllDataIfNeeded).toHaveBeenCalled(); }); + + it('calls exporterExcelFilename', function() { + spyOn(uiGridExporterService, 'exporterExcelFilename'); + grid.options.exporterExcelFilename = function(grid, rowTypes, colTypes) { + if (!grid) { + throw Error("got erroneous Parameter: no grid"); + } + if (rowTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); + } + if (colTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); + } + return "test"; + } + + uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); + expect(uiGridExporterService.exporterExcelFilename).toHaveBeenCalled(); + }); + + it('calls exporterExcelSheetName', function() { + spyOn(uiGridExporterService, 'exporterExcelSheetName'); + grid.options.exporterExcelSheetName = function(grid, rowTypes, colTypes) { + if (!grid) { + throw Error("got erroneous Parameter: no grid"); + } + if (rowTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); + } + if (colTypes != uiGridExporterConstants.VISIBLE) { + throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); + } + return "test"; + } + + uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); + expect(uiGridExporterService.exporterExcelSheetName).toHaveBeenCalled(); + }); }); }); From 3f8b13c468dec3eeec280c8d41659fd2a4ac60f1 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 14 Oct 2021 16:04:28 +0200 Subject: [PATCH 40/62] - style correction --- packages/exporter/test/exporter.spec.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/exporter/test/exporter.spec.js b/packages/exporter/test/exporter.spec.js index 1d2d66998..7fd7bb585 100644 --- a/packages/exporter/test/exporter.spec.js +++ b/packages/exporter/test/exporter.spec.js @@ -1059,10 +1059,9 @@ describe('ui.grid.exporter', function() { uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.loadAllDataIfNeeded).toHaveBeenCalled(); }); - it('calls exporterPdfFilename', function() { spyOn(uiGridExporterService, 'exporterPdfFilename'); - grid.options.exporterCsvFilename = function(grid, rowTypes, colTypes) { + grid.options.exporterPdfFilename = function(grid, rowTypes, colTypes) { if (!grid) { throw Error("got erroneous Parameter: no grid"); } @@ -1076,9 +1075,8 @@ describe('ui.grid.exporter', function() { } uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); - expect(uiGridExporterService.exporterCsvFilename).toHaveBeenCalled(); + expect(uiGridExporterService.exporterPdfFilename).toHaveBeenCalled(); }); - }); describe('prepareAsPdf', function() { @@ -1379,7 +1377,6 @@ describe('ui.grid.exporter', function() { uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.exporterExcelFilename).toHaveBeenCalled(); }); - it('calls exporterExcelSheetName', function() { spyOn(uiGridExporterService, 'exporterExcelSheetName'); grid.options.exporterExcelSheetName = function(grid, rowTypes, colTypes) { From 42e172b1a77c286dbc20020c92e503cf1ceb8d8b Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Fri, 15 Oct 2021 11:14:14 +0200 Subject: [PATCH 41/62] unit test adventure --- packages/exporter/test/exporter.spec.js | 73 +------------------------ 1 file changed, 1 insertion(+), 72 deletions(-) diff --git a/packages/exporter/test/exporter.spec.js b/packages/exporter/test/exporter.spec.js index 7fd7bb585..1f1198669 100644 --- a/packages/exporter/test/exporter.spec.js +++ b/packages/exporter/test/exporter.spec.js @@ -738,19 +738,6 @@ describe('ui.grid.exporter', function() { callback(); } }); - spyOn(uiGridExporterService, 'exporterCsvFilename'); - grid.options.exporterCsvFilename = function(grid, rowTypes, colTypes) { - if (!grid) { - throw Error("got erroneous Parameter: no grid"); - } - if (rowTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); - } - if (colTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); - } - return "test"; - } uiGridExporterService.csvExport(grid, uiGridExporterConstants.VISIBLE, uiGridExporterConstants.VISIBLE); }); afterEach(function() { @@ -763,9 +750,6 @@ describe('ui.grid.exporter', function() { it('calls downloadFile', function() { expect(uiGridExporterService.downloadFile).toHaveBeenCalled(); }); - it('calls exporterCsvFilename', function() { - expect(uiGridExporterService.exporterCsvFilename).toHaveBeenCalled(); - }); }); describe('loadAllDataIfNeeded', function() { @@ -789,7 +773,7 @@ describe('ui.grid.exporter', function() { it('calls exporterAllDataFn', function() { expect(grid.options.exporterAllDataFn).toHaveBeenCalled(); }); - it('calls exporterAllDataFn', function() { + it('calls modifyRows', function() { expect(grid.modifyRows).toHaveBeenCalled(); }); }); @@ -1059,24 +1043,6 @@ describe('ui.grid.exporter', function() { uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.loadAllDataIfNeeded).toHaveBeenCalled(); }); - it('calls exporterPdfFilename', function() { - spyOn(uiGridExporterService, 'exporterPdfFilename'); - grid.options.exporterPdfFilename = function(grid, rowTypes, colTypes) { - if (!grid) { - throw Error("got erroneous Parameter: no grid"); - } - if (rowTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); - } - if (colTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); - } - return "test"; - } - - uiGridExporterService.pdfExport(grid, uiGridExporterConstants.ALL); - expect(uiGridExporterService.exporterPdfFilename).toHaveBeenCalled(); - }); }); describe('prepareAsPdf', function() { @@ -1358,43 +1324,6 @@ describe('ui.grid.exporter', function() { uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); expect(uiGridExporterService.loadAllDataIfNeeded).toHaveBeenCalled(); }); - - it('calls exporterExcelFilename', function() { - spyOn(uiGridExporterService, 'exporterExcelFilename'); - grid.options.exporterExcelFilename = function(grid, rowTypes, colTypes) { - if (!grid) { - throw Error("got erroneous Parameter: no grid"); - } - if (rowTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); - } - if (colTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); - } - return "test"; - } - - uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); - expect(uiGridExporterService.exporterExcelFilename).toHaveBeenCalled(); - }); - it('calls exporterExcelSheetName', function() { - spyOn(uiGridExporterService, 'exporterExcelSheetName'); - grid.options.exporterExcelSheetName = function(grid, rowTypes, colTypes) { - if (!grid) { - throw Error("got erroneous Parameter: no grid"); - } - if (rowTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: rowTypes != uiGridExporterConstants.VISIBLE"); - } - if (colTypes != uiGridExporterConstants.VISIBLE) { - throw Error("got erroneous Parameter: colTypes != uiGridExporterConstants.VISIBLE"); - } - return "test"; - } - - uiGridExporterService.excelExport(grid, uiGridExporterConstants.ALL); - expect(uiGridExporterService.exporterExcelSheetName).toHaveBeenCalled(); - }); }); }); From 583940ffa30df614b64122dc1f8b9d83103821df Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 14:51:35 +0200 Subject: [PATCH 42/62] [hotfix/7187] - exchanged filter() with every() --- packages/core/src/js/factories/Grid.js | 37 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index 7d0cd9089..ad41f1bd0 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -686,11 +686,15 @@ angular.module('ui.grid') * @param {string} name column name */ Grid.prototype.getColumn = function getColumn(name) { - var columns = this.columns.filter(function (column) { - return column.colDef.name === name; + var result = null; + lookInRows.every(function (row) { + if ( column.colDef.name === name ) { + result = row; + return false; + } + return true; }); - - return columns.length > 0 ? columns[0] : null; + return result; }; /** @@ -701,10 +705,15 @@ angular.module('ui.grid') * @param {string} name column.field */ Grid.prototype.getColDef = function getColDef(name) { - var colDefs = this.options.columnDefs.filter(function (colDef) { - return colDef.name === name; + var result = null; + lookInRows.every(function (row) { + if ( colDef.name === name ) { + result = row; + return false; + } + return true; }); - return colDefs.length > 0 ? colDefs[0] : null; + return result; }; /** @@ -1084,13 +1093,17 @@ angular.module('ui.grid') */ Grid.prototype.getRow = function getRow(rowEntity, lookInRows) { var self = this; + lookInRows = lookInRows == void 0 ? this.rows : lookInRows; - lookInRows = typeof(lookInRows) === 'undefined' ? self.rows : lookInRows; - - var rows = lookInRows.filter(function (row) { - return self.options.rowEquality(row.entity, rowEntity); + var result = null; + lookInRows.every(function (row) { + if ( self.options.rowEquality(row.entity, rowEntity) ) { + result = row; + return false; + } + return true; }); - return rows.length > 0 ? rows[0] : null; + return result; }; From 22ff93ede6a985587c1d26dca7a33b514746b245 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 15:55:03 +0200 Subject: [PATCH 43/62] [hotfix/7187] - using find() if possible --- packages/core/src/js/factories/Grid.js | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index ad41f1bd0..f4308211c 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -686,10 +686,16 @@ angular.module('ui.grid') * @param {string} name column name */ Grid.prototype.getColumn = function getColumn(name) { + if (angular.isFunction(this.columns.find)) { + return this.columns.find(function (column) { + return column.colDef.name === name; + }) || null; + } + var result = null; - lookInRows.every(function (row) { + this.columns.every(function (column) { if ( column.colDef.name === name ) { - result = row; + result = column; return false; } return true; @@ -705,10 +711,16 @@ angular.module('ui.grid') * @param {string} name column.field */ Grid.prototype.getColDef = function getColDef(name) { + if (angular.isFunction(this.options.columnsDefs.find)) { + return this.options.columnsDefs.find(function (colDef) { + return colDef.name === name; + }) || null; + } + var result = null; - lookInRows.every(function (row) { + this.options.columnsDefs.every(function (colDef) { if ( colDef.name === name ) { - result = row; + result = colDef; return false; } return true; @@ -1094,6 +1106,11 @@ angular.module('ui.grid') Grid.prototype.getRow = function getRow(rowEntity, lookInRows) { var self = this; lookInRows = lookInRows == void 0 ? this.rows : lookInRows; + if (angular.isFunction(lookInRows.find)) { + return lookInRows.find(function (row) { + return self.options.rowEquality(row.entity, rowEntity); + }) || null; + } var result = null; lookInRows.every(function (row) { From 0b665b1e65ff856a1d0873268ab1c9bd8eaa397a Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 16:07:33 +0200 Subject: [PATCH 44/62] extra security --- packages/core/src/js/factories/Grid.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index f4308211c..9d053e6dc 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -686,7 +686,7 @@ angular.module('ui.grid') * @param {string} name column name */ Grid.prototype.getColumn = function getColumn(name) { - if (angular.isFunction(this.columns.find)) { + if (this.columns && angular.isFunction(this.columns.find)) { return this.columns.find(function (column) { return column.colDef.name === name; }) || null; @@ -711,7 +711,7 @@ angular.module('ui.grid') * @param {string} name column.field */ Grid.prototype.getColDef = function getColDef(name) { - if (angular.isFunction(this.options.columnsDefs.find)) { + if (this.options.columnsDefs && angular.isFunction(this.options.columnsDefs.find)) { return this.options.columnsDefs.find(function (colDef) { return colDef.name === name; }) || null; @@ -1106,7 +1106,7 @@ angular.module('ui.grid') Grid.prototype.getRow = function getRow(rowEntity, lookInRows) { var self = this; lookInRows = lookInRows == void 0 ? this.rows : lookInRows; - if (angular.isFunction(lookInRows.find)) { + if (lookInRows && angular.isFunction(lookInRows.find)) { return lookInRows.find(function (row) { return self.options.rowEquality(row.entity, rowEntity); }) || null; From bf140a6376ac8d573d42684b53cbc25355152ae2 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Wed, 20 Oct 2021 16:13:54 +0200 Subject: [PATCH 45/62] advanced security removed object reference removed row copy [hotfix/7187] - now moved to own finding function - value gets pushed to an array and extracted from there changed array literal set self variable declared function lint error corrected columnDefs call --- packages/core/src/js/factories/Grid.js | 67 ++++++++++---------------- 1 file changed, 25 insertions(+), 42 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index 9d053e6dc..ca997ad3c 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -686,21 +686,9 @@ angular.module('ui.grid') * @param {string} name column name */ Grid.prototype.getColumn = function getColumn(name) { - if (this.columns && angular.isFunction(this.columns.find)) { - return this.columns.find(function (column) { - return column.colDef.name === name; - }) || null; - } - - var result = null; - this.columns.every(function (column) { - if ( column.colDef.name === name ) { - result = column; - return false; - } - return true; + return arrayFinder(this.columns, function (column) { + return column.colDef.name === name; }); - return result; }; /** @@ -711,21 +699,9 @@ angular.module('ui.grid') * @param {string} name column.field */ Grid.prototype.getColDef = function getColDef(name) { - if (this.options.columnsDefs && angular.isFunction(this.options.columnsDefs.find)) { - return this.options.columnsDefs.find(function (colDef) { - return colDef.name === name; - }) || null; - } - - var result = null; - this.options.columnsDefs.every(function (colDef) { - if ( colDef.name === name ) { - result = colDef; - return false; - } - return true; + return arrayFinder(this.options.columnDefs, function (colDef) { + return colDef.name === name; }); - return result; }; /** @@ -1094,6 +1070,25 @@ angular.module('ui.grid') return t; }; + var arrayFinder = function(array, func) { + if (array && array.length) { + var arr = []; + if (angular.isFunction(array.find)) { + return arr.push(array.find(func))[0] || null; + } + + array.every(function (entry) { + if ( func(entry) ) { + arr.push(entry); + return false; + } + return true; + }); + return arr.length ? arr[0] : null; + } + return null; + } + /** * @ngdoc function * @name getRow @@ -1106,21 +1101,9 @@ angular.module('ui.grid') Grid.prototype.getRow = function getRow(rowEntity, lookInRows) { var self = this; lookInRows = lookInRows == void 0 ? this.rows : lookInRows; - if (lookInRows && angular.isFunction(lookInRows.find)) { - return lookInRows.find(function (row) { - return self.options.rowEquality(row.entity, rowEntity); - }) || null; - } - - var result = null; - lookInRows.every(function (row) { - if ( self.options.rowEquality(row.entity, rowEntity) ) { - result = row; - return false; - } - return true; + return arrayFinder(lookInRows, function (row) { + return self.options.rowEquality(row.entity, rowEntity); }); - return result; }; From 3bee87c9ec203a1d979868f1cf047dc7c4df3999 Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 21 Oct 2021 14:05:36 +0200 Subject: [PATCH 46/62] shortened code test --- packages/core/src/js/factories/Grid.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js index ca997ad3c..fe038e654 100644 --- a/packages/core/src/js/factories/Grid.js +++ b/packages/core/src/js/factories/Grid.js @@ -686,7 +686,7 @@ angular.module('ui.grid') * @param {string} name column name */ Grid.prototype.getColumn = function getColumn(name) { - return arrayFinder(this.columns, function (column) { + return rowColumnFinder(this.columns, function (column) { return column.colDef.name === name; }); }; @@ -699,7 +699,7 @@ angular.module('ui.grid') * @param {string} name column.field */ Grid.prototype.getColDef = function getColDef(name) { - return arrayFinder(this.options.columnDefs, function (colDef) { + return rowColumnFinder(this.options.columnDefs, function (colDef) { return colDef.name === name; }); }; @@ -1070,21 +1070,21 @@ angular.module('ui.grid') return t; }; - var arrayFinder = function(array, func) { + var rowColumnFinder = function(array, func) { if (array && array.length) { - var arr = []; if (angular.isFunction(array.find)) { - return arr.push(array.find(func))[0] || null; + return array.find(func) || null; } + var result = null; array.every(function (entry) { - if ( func(entry) ) { - arr.push(entry); + if (func(entry)) { + result = entry; return false; } return true; }); - return arr.length ? arr[0] : null; + return result; } return null; } @@ -1101,7 +1101,7 @@ angular.module('ui.grid') Grid.prototype.getRow = function getRow(rowEntity, lookInRows) { var self = this; lookInRows = lookInRows == void 0 ? this.rows : lookInRows; - return arrayFinder(lookInRows, function (row) { + return rowColumnFinder(lookInRows, function (row) { return self.options.rowEquality(row.entity, rowEntity); }); }; From f436fbd0c6b3181f3ef7cba7f5450595cf834ba0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 18:44:06 +0000 Subject: [PATCH 47/62] build(deps): bump hosted-git-info from 2.6.0 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.6.0 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.6.0...v2.8.9) --- updated-dependencies: - dependency-name: hosted-git-info dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0fe526e8d..cfa663d40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10433,9 +10433,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-escaper": { From 30c07433b5d2727efcea5dcd62d3098e976e90c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 18:44:06 +0000 Subject: [PATCH 48/62] build(deps): bump path-parse from 1.0.6 to 1.0.7 Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7. - [Release notes](https://github.com/jbgutierrez/path-parse/releases) - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7) --- updated-dependencies: - dependency-name: path-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfa663d40..938092266 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14061,9 +14061,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-root": { From f317bf1cdf250dc48d36eb486b3a6317402eafda Mon Sep 17 00:00:00 2001 From: prx-lmo <87797926+prx-lmo@users.noreply.github.com> Date: Tue, 7 Dec 2021 07:51:36 +0100 Subject: [PATCH 49/62] removed false ) --- packages/selection/src/js/selection.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 985ff2c36..48901c6ac 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -233,7 +233,7 @@ selectRowByVisibleIndex: function (rowNum, evt) { var row = grid.renderContainers.body.visibleRowCache[rowNum]; if (row != void 0 && row !== null && typeof (row) !== 'undefined' && !row.isSelected) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false)); + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); } }, /** From 52fd2b5161abdf477f7e6e158f5fb1e6c773d81f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 20:40:05 +0000 Subject: [PATCH 50/62] build(deps): bump ssri from 6.0.1 to 6.0.2 Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2) --- updated-dependencies: - dependency-name: ssri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 938092266..e6cb4754a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15979,9 +15979,9 @@ } }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "requires": { "figgy-pudding": "^3.5.1" From d8ba0c1c175577d45ce4dac265e8e14fd5a590a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 20:40:18 +0000 Subject: [PATCH 51/62] build(deps): bump handlebars from 4.7.6 to 4.7.7 Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7) --- updated-dependencies: - dependency-name: handlebars dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6cb4754a..9b4c586e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10236,9 +10236,9 @@ } }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { "minimist": "^1.2.5", From 12fc0f4b937a587aa374aa2c430ad35277d16c6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Dec 2021 00:21:15 +0000 Subject: [PATCH 52/62] build(deps): bump y18n from 4.0.0 to 4.0.3 Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.3. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/y18n-v4.0.3/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/compare/v4.0.0...y18n-v4.0.3) --- updated-dependencies: - dependency-name: y18n dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b4c586e0..349269288 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17737,9 +17737,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { From 339a00ca875699db6b2f94c377b96a7789e5c02c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jan 2022 02:47:10 +0000 Subject: [PATCH 53/62] build(deps-dev): bump shelljs from 0.8.2 to 0.8.5 Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.2 to 0.8.5. - [Release notes](https://github.com/shelljs/shelljs/releases) - [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md) - [Commits](https://github.com/shelljs/shelljs/compare/v0.8.2...v0.8.5) --- updated-dependencies: - dependency-name: shelljs dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 349269288..a5915c95d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15568,9 +15568,9 @@ "dev": true }, "shelljs": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", - "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, "requires": { "glob": "^7.0.0", From 40d975e7d3d004d8d6db6bdadc09a762f0ae049a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jan 2022 04:34:25 +0000 Subject: [PATCH 54/62] build(deps): bump follow-redirects from 1.9.0 to 1.14.7 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.9.0 to 1.14.7. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.9.0...v1.14.7) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5915c95d..09c700afd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8464,13 +8464,10 @@ } }, "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", - "dev": true, - "requires": { - "debug": "^3.0.0" - } + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", + "dev": true }, "for-in": { "version": "1.0.2", From f61613794aa9f919d091ea60cc27eb85bf70ee74 Mon Sep 17 00:00:00 2001 From: jahm89 Date: Mon, 13 Dec 2021 12:27:00 -0600 Subject: [PATCH 55/62] fix: clear selection function fix: issue when you clear the selected rows I think is not necessary know if the row is selectable or not, I'm having on issue related to it. Imagine you have a select dropdown with actions to perform to the rows selected, you select some rows but then you change the action to perform and this new action is not allowed to some of the rows previously selected, the function is not going to clear up those rows because they are selected and then they are not selectables. --- packages/selection/src/js/selection.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 48901c6ac..8288097d5 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -708,7 +708,7 @@ clearSelectedRows: function (grid, evt) { var changedRows = []; service.getSelectedRows(grid).forEach(function (row) { - if (row.isSelected && row.enableSelection !== false && grid.options.isRowSelectable(row) !== false) { + if (row.isSelected && row.enableSelection !== false) { row.setSelected(false); service.decideRaiseSelectionEvent(grid, row, changedRows, evt); } From 3bdd97ea6595b953223fad930f99147f8f8b59f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Dec 2021 21:42:56 +0000 Subject: [PATCH 56/62] build(deps): bump ini from 1.3.5 to 1.3.8 Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) --- updated-dependencies: - dependency-name: ini dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09c700afd..d31d9fe66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10750,9 +10750,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "init-package-json": { From 7851ff81eae5b48bf89f4ca88ac66b097240c1ef Mon Sep 17 00:00:00 2001 From: prx-lmo Date: Thu, 3 Feb 2022 10:36:45 +0100 Subject: [PATCH 57/62] [hotfix/7206] - width gets adjusted so that ellipses aren't shown --- packages/resize-columns/src/js/ui-grid-column-resizer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/resize-columns/src/js/ui-grid-column-resizer.js b/packages/resize-columns/src/js/ui-grid-column-resizer.js index b746ab2c8..44e915640 100644 --- a/packages/resize-columns/src/js/ui-grid-column-resizer.js +++ b/packages/resize-columns/src/js/ui-grid-column-resizer.js @@ -525,7 +525,7 @@ var e = angular.element(newElm); e.attr('style', 'float: left'); - var width = gridUtil.elementWidth(e); + var width = gridUtil.elementWidth(e) + 2; if (menuButton) { var menuButtonWidth = gridUtil.elementWidth(menuButton); From ae0796ebcf2a3b9d04d0ce624e33a06fb2097568 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Feb 2022 13:48:39 +0000 Subject: [PATCH 58/62] build(deps): bump trim-off-newlines from 1.0.1 to 1.0.3 Bumps [trim-off-newlines](https://github.com/stevemao/trim-off-newlines) from 1.0.1 to 1.0.3. - [Release notes](https://github.com/stevemao/trim-off-newlines/releases) - [Commits](https://github.com/stevemao/trim-off-newlines/compare/v1.0.1...v1.0.3) --- updated-dependencies: - dependency-name: trim-off-newlines dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d31d9fe66..428949b8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16611,9 +16611,9 @@ "dev": true }, "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", + "integrity": "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==", "dev": true }, "tslib": { From 7365906d15435029ed7cb12812cef490d3f7f103 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Feb 2022 13:48:43 +0000 Subject: [PATCH 59/62] build(deps): bump node-fetch from 2.6.1 to 2.6.7 Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 428949b8d..ef3b98cb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13024,10 +13024,37 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } }, "node-fetch-npm": { "version": "2.0.2", From d7c7b356220ce5395f77dc25bfd75e24a7e15116 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 11:36:14 +0000 Subject: [PATCH 60/62] build(deps): bump follow-redirects from 1.14.7 to 1.14.8 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef3b98cb1..b7f382874 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8464,9 +8464,9 @@ } }, "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true }, "for-in": { From acda084b96fcd1e1408ad9094e30a90fec17c793 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 05:10:29 +0000 Subject: [PATCH 61/62] build(deps-dev): bump karma from 4.3.0 to 6.3.14 Bumps [karma](https://github.com/karma-runner/karma) from 4.3.0 to 6.3.14. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v4.3.0...v6.3.14) --- updated-dependencies: - dependency-name: karma dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 982 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 486 insertions(+), 498 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7f382874..987156f50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3682,12 +3682,36 @@ } } }, + "@socket.io/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", + "dev": true + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -3789,12 +3813,6 @@ "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", "dev": true }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, "agent-base": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", @@ -3850,9 +3868,9 @@ "dev": true }, "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -4085,12 +4103,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -4193,12 +4205,6 @@ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -4260,12 +4266,6 @@ } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -4273,9 +4273,9 @@ "dev": true }, "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, "basic-auth": { @@ -4315,25 +4315,10 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "blocking-proxy": { @@ -4364,27 +4349,27 @@ } }, "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", "dev": true, "requires": { - "bytes": "3.1.0", + "bytes": "3.1.1", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "1.7.2", + "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" }, "dependencies": { "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", "dev": true }, "debug": { @@ -4397,16 +4382,16 @@ } }, "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "toidentifier": "1.0.1" } }, "iconv-lite": { @@ -4418,28 +4403,34 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "dev": true }, "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "bytes": "3.1.1", + "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true } } @@ -4537,34 +4528,12 @@ "ieee754": "^1.1.4" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, "buffer-crc32": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=", "dev": true }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -4725,12 +4694,6 @@ "caller-callsite": "^2.0.0" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -4803,19 +4766,19 @@ "dev": true }, "chokidar": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.2.1.tgz", - "integrity": "sha512-/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.0", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.1.3" + "readdirp": "~3.6.0" }, "dependencies": { "braces": { @@ -4837,18 +4800,18 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -5125,24 +5088,12 @@ "dot-prop": "^3.0.0" } }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, "compress-commons": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", @@ -6336,9 +6287,9 @@ } }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "copy-concurrently": { @@ -6393,6 +6344,16 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -6739,9 +6700,9 @@ } }, "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", + "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true }, "date-now": { @@ -7156,75 +7117,59 @@ } }, "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", + "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" }, "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "@types/node": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", + "dev": true + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "ms": "2.1.2" } - } - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true } } }, "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", + "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "@socket.io/base64-arraybuffer": "~1.0.2" } }, "ent": { @@ -7382,6 +7327,12 @@ "es5-ext": "~0.10.14" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -7905,9 +7856,9 @@ "dev": true }, "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "execa": { @@ -8588,9 +8539,9 @@ "dev": true }, "fsevents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.0.tgz", - "integrity": "sha512-+iXhW3LuDQsno8dOIrCIT/CBjeBWuP7PXe8w9shnj9Lebny/Gx1ZjVBYwexLz36Ri2jKuXMNpV6CYNh8lHHgrQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -10293,35 +10244,12 @@ "ansi-regex": "^2.0.0" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, "has-color": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", "dev": true }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -10715,12 +10643,6 @@ "repeating": "^2.0.0" } }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -11223,13 +11145,10 @@ "dev": true }, "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "requires": { - "buffer-alloc": "^1.2.0" - } + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true }, "isexe": { "version": "2.0.0", @@ -11635,40 +11554,51 @@ } }, "karma": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-4.3.0.tgz", - "integrity": "sha512-NSPViHOt+RW38oJklvYxQC4BSQsv737oQlr/r06pCM+slDOr4myuI1ivkRmp+3dVpJDfZt2DmaPJ2wkx+ZZuMQ==", + "version": "6.3.14", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.14.tgz", + "integrity": "sha512-SDFoU5F4LdosEiUVWUDRPCV/C1zQRNtIakx7rWkigf7R4sxGADlSEeOma4S1f/js7YAzvqLW92ByoiQptg+8oQ==", "dev": true, "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", + "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", - "core-js": "^3.1.3", + "chokidar": "^3.5.1", + "colors": "1.4.0", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "2.1.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.2.0", "source-map": "^0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -11678,16 +11608,63 @@ "fill-range": "^7.0.1" } }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "core-js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", - "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==", + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "fill-range": { @@ -11699,10 +11676,25 @@ "to-regex-range": "^5.0.1" } }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -11713,40 +11705,78 @@ "path-is-absolute": "^1.0.0" } }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "rimraf": "^3.0.0" } }, "to-regex-range": { @@ -11757,6 +11787,44 @@ "requires": { "is-number": "^7.0.0" } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true } } }, @@ -12443,27 +12511,33 @@ } }, "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -12494,16 +12568,6 @@ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "macos-release": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", @@ -13492,12 +13556,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -13674,24 +13732,6 @@ "pinkie-promise": "^2.0.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -14021,24 +14061,6 @@ "protocols": "^1.4.0" } }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -14171,9 +14193,9 @@ } }, "picomatch": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", - "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -14674,12 +14696,6 @@ "dev": true, "optional": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.1.31", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", @@ -14969,12 +14985,12 @@ } }, "readdirp": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz", - "integrity": "sha512-ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "picomatch": "^2.2.1" } }, "rechoir": { @@ -15243,9 +15259,9 @@ "dev": true }, "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "right-pad": { @@ -15782,62 +15798,72 @@ } }, "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", + "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.1.0", + "socket.io-adapter": "~2.3.3", + "socket.io-parser": "~4.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "socket.io-adapter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", - "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", + "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - } - }, "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" }, "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -16061,67 +16087,63 @@ "dev": true }, "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", + "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" + "date-format": "^4.0.3", + "debug": "^4.1.1", + "fs-extra": "^10.0.0" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, @@ -16533,12 +16555,6 @@ "os-tmpdir": "~1.0.1" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, "to-double-quotes": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz", @@ -16600,9 +16616,9 @@ "dev": true }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, "tough-cookie": { @@ -16691,18 +16707,18 @@ }, "dependencies": { "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "requires": { - "mime-db": "1.40.0" + "mime-db": "1.51.0" } } } @@ -16740,6 +16756,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true + }, "uglify-js": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", @@ -16764,12 +16786,6 @@ "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, "umask": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", @@ -16942,16 +16958,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "dev": true, - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -17047,6 +17053,12 @@ "integrity": "sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8=", "dev": true }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -17554,12 +17566,6 @@ "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -17748,12 +17754,6 @@ } } }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -17766,12 +17766,6 @@ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, "yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", @@ -17878,12 +17872,6 @@ "decamelize": "^1.2.0" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, "zip-stream": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", diff --git a/package.json b/package.json index f063efddb..bada4b6a3 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "jasmine-core": "^2.4.1", "jit-grunt": "^0.10.0", "jshint-stylish": "^2.2.1", - "karma": "^4.3.0", + "karma": "^6.3.14", "karma-chrome-launcher": "~2.2.0", "karma-coverage": "^2.0.3", "karma-firefox-launcher": "~1.1.0", From 74a1310013eec3a9ef9067c3d25c5de80622f460 Mon Sep 17 00:00:00 2001 From: Marcelo Portugal Date: Wed, 23 Feb 2022 13:51:10 -0500 Subject: [PATCH 62/62] chore: Release v4.11.1 --- CHANGELOG.md | 15 +++++++++++++++ bower.json | 2 +- lerna.json | 2 +- package-lock.json | 2 +- package.json | 2 +- packages/auto-resize/CHANGELOG.md | 8 ++++++++ packages/auto-resize/package-lock.json | 2 +- packages/auto-resize/package.json | 4 ++-- packages/cellnav/CHANGELOG.md | 8 ++++++++ packages/cellnav/package-lock.json | 2 +- packages/cellnav/package.json | 4 ++-- packages/core/CHANGELOG.md | 10 ++++++++++ packages/core/package-lock.json | 2 +- packages/core/package.json | 2 +- packages/edit/CHANGELOG.md | 8 ++++++++ packages/edit/package-lock.json | 2 +- packages/edit/package.json | 4 ++-- packages/empty-base-layer/CHANGELOG.md | 8 ++++++++ packages/empty-base-layer/package-lock.json | 2 +- packages/empty-base-layer/package.json | 4 ++-- packages/expandable/CHANGELOG.md | 8 ++++++++ packages/expandable/package-lock.json | 2 +- packages/expandable/package.json | 4 ++-- packages/exporter/CHANGELOG.md | 8 ++++++++ packages/exporter/package-lock.json | 2 +- packages/exporter/package.json | 4 ++-- packages/grouping/CHANGELOG.md | 8 ++++++++ packages/grouping/package-lock.json | 2 +- packages/grouping/package.json | 6 +++--- packages/i18n/CHANGELOG.md | 11 +++++++++++ packages/i18n/package-lock.json | 2 +- packages/i18n/package.json | 4 ++-- packages/importer/CHANGELOG.md | 8 ++++++++ packages/importer/package-lock.json | 2 +- packages/importer/package.json | 4 ++-- packages/infinite-scroll/CHANGELOG.md | 8 ++++++++ packages/infinite-scroll/package-lock.json | 2 +- packages/infinite-scroll/package.json | 4 ++-- packages/move-columns/CHANGELOG.md | 8 ++++++++ packages/move-columns/package-lock.json | 2 +- packages/move-columns/package.json | 4 ++-- packages/pagination/CHANGELOG.md | 8 ++++++++ packages/pagination/package-lock.json | 2 +- packages/pagination/package.json | 4 ++-- packages/pinning/CHANGELOG.md | 8 ++++++++ packages/pinning/package-lock.json | 2 +- packages/pinning/package.json | 4 ++-- packages/resize-columns/CHANGELOG.md | 11 +++++++++++ packages/resize-columns/package-lock.json | 2 +- packages/resize-columns/package.json | 4 ++-- packages/row-edit/CHANGELOG.md | 8 ++++++++ packages/row-edit/package-lock.json | 2 +- packages/row-edit/package.json | 8 ++++---- packages/saveState/CHANGELOG.md | 8 ++++++++ packages/saveState/package-lock.json | 2 +- packages/saveState/package.json | 12 ++++++------ packages/selection/CHANGELOG.md | 11 +++++++++++ packages/selection/package-lock.json | 2 +- packages/selection/package.json | 4 ++-- packages/tree-base/CHANGELOG.md | 8 ++++++++ packages/tree-base/package-lock.json | 2 +- packages/tree-base/package.json | 4 ++-- packages/tree-view/CHANGELOG.md | 8 ++++++++ packages/tree-view/package-lock.json | 2 +- packages/tree-view/package.json | 6 +++--- packages/validate/CHANGELOG.md | 8 ++++++++ packages/validate/package-lock.json | 2 +- packages/validate/package.json | 6 +++--- 68 files changed, 269 insertions(+), 75 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25ecf1e04..875212daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + + +### Bug Fixes + +* clear selection function ([f616137](https://github.com/angular-ui/ui-grid/commit/f61613794aa9f919d091ea60cc27eb85bf70ee74)) +* Find or Select by Row Entity's 'ID' ([7a0a6c6](https://github.com/angular-ui/ui-grid/commit/7a0a6c6f3ed29c3e41f5cfa77b46639d3df7f1ca)) +* exchanged filter() with every() ([583940f](https://github.com/angular-ui/ui-grid/commit/583940ffa30df614b64122dc1f8b9d83103821df)) +* **i18n:** complete ru locale ([8d2caee](https://github.com/angular-ui/ui-grid/commit/8d2caeeb7fa0e85d73c5513d39f0c8ff7992f0b7)) +* **resize-columns:** width gets adjusted so that ellipses aren't shown ([7851ff8](https://github.com/angular-ui/ui-grid/commit/7851ff81eae5b48bf89f4ca88ac66b097240c1ef)) + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) diff --git a/bower.json b/bower.json index 82826ea93..6f93df9a6 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-ui-grid", - "version": "4.11.0", + "version": "4.11.1", "homepage": "http://ui-grid.info", "repository": { "type": "git", diff --git a/lerna.json b/lerna.json index ba8a8f7d4..509a74778 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": [ "packages/*" ], - "version": "4.11.0" + "version": "4.11.1" } diff --git a/package-lock.json b/package-lock.json index 987156f50..c5fb03ba9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ui-grid", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bada4b6a3..cab60b287 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ui-grid", - "version": "4.11.0", + "version": "4.11.1", "description": "A data grid for Angular", "directories": { "test": "test" diff --git a/packages/auto-resize/CHANGELOG.md b/packages/auto-resize/CHANGELOG.md index e510eba6a..f0685fc60 100644 --- a/packages/auto-resize/CHANGELOG.md +++ b/packages/auto-resize/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/auto-resize + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/auto-resize diff --git a/packages/auto-resize/package-lock.json b/packages/auto-resize/package-lock.json index 6cde84c83..685c0ab75 100644 --- a/packages/auto-resize/package-lock.json +++ b/packages/auto-resize/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/auto-resize", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/auto-resize/package.json b/packages/auto-resize/package.json index 1bf5d33ac..f1f6d9d11 100644 --- a/packages/auto-resize/package.json +++ b/packages/auto-resize/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/auto-resize", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides auto-resizing functionality to UI-Grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/cellnav/CHANGELOG.md b/packages/cellnav/CHANGELOG.md index c2e4db298..eed1d5387 100644 --- a/packages/cellnav/CHANGELOG.md +++ b/packages/cellnav/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/cell-nav + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) diff --git a/packages/cellnav/package-lock.json b/packages/cellnav/package-lock.json index 2c4359dd0..e4330ed23 100644 --- a/packages/cellnav/package-lock.json +++ b/packages/cellnav/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/cell-nav", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/cellnav/package.json b/packages/cellnav/package.json index cc96920df..4f804bfbc 100644 --- a/packages/cellnav/package.json +++ b/packages/cellnav/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/cell-nav", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides cell navigation functionality to UI-Grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 398702de4..6f4dfe02e 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +### Bug Fixes + +* Find or Select by Row Entity's 'ID' ([7a0a6c6](https://github.com/angular-ui/ui-grid/commit/7a0a6c6f3ed29c3e41f5cfa77b46639d3df7f1ca)) +* exchanged filter() with every() ([583940f](https://github.com/angular-ui/ui-grid/commit/583940ffa30df614b64122dc1f8b9d83103821df)) + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 77b66539d..30b894211 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/core", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index db145c097..723c81b71 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/core", - "version": "4.11.0", + "version": "4.11.1", "description": "A data grid for Angular", "main": "index.js", "dependencies": { diff --git a/packages/edit/CHANGELOG.md b/packages/edit/CHANGELOG.md index 51ba94b78..8d28067d6 100644 --- a/packages/edit/CHANGELOG.md +++ b/packages/edit/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/edit + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/edit diff --git a/packages/edit/package-lock.json b/packages/edit/package-lock.json index 42b8f621e..e1d4099ed 100644 --- a/packages/edit/package-lock.json +++ b/packages/edit/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/edit", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/edit/package.json b/packages/edit/package.json index 83248372c..7de892ec9 100644 --- a/packages/edit/package.json +++ b/packages/edit/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/edit", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides cell editing capability to ui.grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/empty-base-layer/CHANGELOG.md b/packages/empty-base-layer/CHANGELOG.md index 99fc47e43..9e62f7223 100644 --- a/packages/empty-base-layer/CHANGELOG.md +++ b/packages/empty-base-layer/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/empty-base-layer + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/empty-base-layer diff --git a/packages/empty-base-layer/package-lock.json b/packages/empty-base-layer/package-lock.json index ea8725c14..a6e278fb7 100644 --- a/packages/empty-base-layer/package-lock.json +++ b/packages/empty-base-layer/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/empty-base-layer", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/empty-base-layer/package.json b/packages/empty-base-layer/package.json index eea384f29..67ba921ff 100644 --- a/packages/empty-base-layer/package.json +++ b/packages/empty-base-layer/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/empty-base-layer", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides the ability to have the background of the ui-grid be empty rows", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/expandable/CHANGELOG.md b/packages/expandable/CHANGELOG.md index 0baf7397e..7d8b3a50a 100644 --- a/packages/expandable/CHANGELOG.md +++ b/packages/expandable/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/expandable + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/expandable diff --git a/packages/expandable/package-lock.json b/packages/expandable/package-lock.json index 0ceb75d8b..7116cf648 100644 --- a/packages/expandable/package-lock.json +++ b/packages/expandable/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/expandable", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/expandable/package.json b/packages/expandable/package.json index 12884c01b..a5c548386 100644 --- a/packages/expandable/package.json +++ b/packages/expandable/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/expandable", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides the ability to create subgrids inside ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/exporter/CHANGELOG.md b/packages/exporter/CHANGELOG.md index 036026beb..4b2dfea2a 100644 --- a/packages/exporter/CHANGELOG.md +++ b/packages/exporter/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/exporter + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/exporter diff --git a/packages/exporter/package-lock.json b/packages/exporter/package-lock.json index 4b7745883..e1bab58d9 100644 --- a/packages/exporter/package-lock.json +++ b/packages/exporter/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/exporter", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/exporter/package.json b/packages/exporter/package.json index afb2ddef5..5ae572989 100644 --- a/packages/exporter/package.json +++ b/packages/exporter/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/exporter", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides the ability to export data from ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x", "csv-js": "~1.0.0", "excel-builder": "~2.0.2", diff --git a/packages/grouping/CHANGELOG.md b/packages/grouping/CHANGELOG.md index 3fc315f8c..a1026f588 100644 --- a/packages/grouping/CHANGELOG.md +++ b/packages/grouping/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/grouping + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/grouping diff --git a/packages/grouping/package-lock.json b/packages/grouping/package-lock.json index d8d5273e8..c053183f6 100644 --- a/packages/grouping/package-lock.json +++ b/packages/grouping/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/grouping", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/grouping/package.json b/packages/grouping/package.json index 714884490..a4824903f 100644 --- a/packages/grouping/package.json +++ b/packages/grouping/package.json @@ -1,11 +1,11 @@ { "name": "@ui-grid/grouping", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides ui-grid with grouping of rows based on the data in them", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", - "@ui-grid/tree-base": "^4.11.0", + "@ui-grid/core": "^4.11.1", + "@ui-grid/tree-base": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index 0be374e21..a90d535be 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + + +### Bug Fixes + +* **i18n:** complete ru locale ([8d2caee](https://github.com/angular-ui/ui-grid/commit/8d2caeeb7fa0e85d73c5513d39f0c8ff7992f0b7)) + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/i18n diff --git a/packages/i18n/package-lock.json b/packages/i18n/package-lock.json index 4ac4b200e..68b25d37c 100644 --- a/packages/i18n/package-lock.json +++ b/packages/i18n/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/i18n", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 52451c936..abf122161 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/i18n", - "version": "4.11.0", + "version": "4.11.1", "description": "This package provides various language translations for ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/importer/CHANGELOG.md b/packages/importer/CHANGELOG.md index 91012ce5c..87a452fbc 100644 --- a/packages/importer/CHANGELOG.md +++ b/packages/importer/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/importer + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/importer diff --git a/packages/importer/package-lock.json b/packages/importer/package-lock.json index 5fe38cbe1..025c86394 100644 --- a/packages/importer/package-lock.json +++ b/packages/importer/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/importer", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/importer/package.json b/packages/importer/package.json index 6072bef5c..c7603f2ca 100644 --- a/packages/importer/package.json +++ b/packages/importer/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/importer", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides the ability to import data into ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x", "csv-js": "~1.0.0" }, diff --git a/packages/infinite-scroll/CHANGELOG.md b/packages/infinite-scroll/CHANGELOG.md index 5e7013fd5..f1ec85c45 100644 --- a/packages/infinite-scroll/CHANGELOG.md +++ b/packages/infinite-scroll/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/infinite-scroll + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/infinite-scroll diff --git a/packages/infinite-scroll/package-lock.json b/packages/infinite-scroll/package-lock.json index 3164b030f..82e88a6c4 100644 --- a/packages/infinite-scroll/package-lock.json +++ b/packages/infinite-scroll/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/infinite-scroll", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/infinite-scroll/package.json b/packages/infinite-scroll/package.json index e00098a40..6c1f7492c 100644 --- a/packages/infinite-scroll/package.json +++ b/packages/infinite-scroll/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/infinite-scroll", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides infinite scroll functionality to ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/move-columns/CHANGELOG.md b/packages/move-columns/CHANGELOG.md index 1857f34e8..85e1028f6 100644 --- a/packages/move-columns/CHANGELOG.md +++ b/packages/move-columns/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/move-columns + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/move-columns diff --git a/packages/move-columns/package-lock.json b/packages/move-columns/package-lock.json index 7fcaddbc7..f19bb3f53 100644 --- a/packages/move-columns/package-lock.json +++ b/packages/move-columns/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/move-columns", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/move-columns/package.json b/packages/move-columns/package.json index 7eb8c5a6d..672382f78 100644 --- a/packages/move-columns/package.json +++ b/packages/move-columns/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/move-columns", - "version": "4.11.0", + "version": "4.11.1", "description": "This module enables ui-grid users to change the position of columns", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/pagination/CHANGELOG.md b/packages/pagination/CHANGELOG.md index f159fd593..c65c1a9d8 100644 --- a/packages/pagination/CHANGELOG.md +++ b/packages/pagination/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/pagination + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/pagination diff --git a/packages/pagination/package-lock.json b/packages/pagination/package-lock.json index 55131ca9a..d8cd823db 100644 --- a/packages/pagination/package-lock.json +++ b/packages/pagination/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/pagination", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/pagination/package.json b/packages/pagination/package.json index 3256e340e..fa891d07e 100644 --- a/packages/pagination/package.json +++ b/packages/pagination/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/pagination", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides pagination support to ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/pinning/CHANGELOG.md b/packages/pinning/CHANGELOG.md index e50ab61b4..4afbc83cd 100644 --- a/packages/pinning/CHANGELOG.md +++ b/packages/pinning/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/pinning + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/pinning diff --git a/packages/pinning/package-lock.json b/packages/pinning/package-lock.json index 466dbc7d0..a60b333cd 100644 --- a/packages/pinning/package-lock.json +++ b/packages/pinning/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/pinning", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/pinning/package.json b/packages/pinning/package.json index ccd083183..90662f908 100644 --- a/packages/pinning/package.json +++ b/packages/pinning/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/pinning", - "version": "4.11.0", + "version": "4.11.1", "description": "This module enables the user to pun columns in ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/resize-columns/CHANGELOG.md b/packages/resize-columns/CHANGELOG.md index 82f7972bb..44cb346f4 100644 --- a/packages/resize-columns/CHANGELOG.md +++ b/packages/resize-columns/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + + +### Bug Fixes + +* width gets adjusted so that ellipses aren't shown ([7851ff8](https://github.com/angular-ui/ui-grid/commit/7851ff81eae5b48bf89f4ca88ac66b097240c1ef)) + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/resize-columns diff --git a/packages/resize-columns/package-lock.json b/packages/resize-columns/package-lock.json index 92b560627..c0259172e 100644 --- a/packages/resize-columns/package-lock.json +++ b/packages/resize-columns/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/resize-columns", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/resize-columns/package.json b/packages/resize-columns/package.json index 172472c19..a1d94c07c 100644 --- a/packages/resize-columns/package.json +++ b/packages/resize-columns/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/resize-columns", - "version": "4.11.0", + "version": "4.11.1", "description": "This module allows columns to be resized in ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/row-edit/CHANGELOG.md b/packages/row-edit/CHANGELOG.md index ab63e035d..0dc8a0196 100644 --- a/packages/row-edit/CHANGELOG.md +++ b/packages/row-edit/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/row-edit + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/row-edit diff --git a/packages/row-edit/package-lock.json b/packages/row-edit/package-lock.json index a97d224ea..b951f9401 100644 --- a/packages/row-edit/package-lock.json +++ b/packages/row-edit/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/row-edit", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/row-edit/package.json b/packages/row-edit/package.json index 24fd86bb5..30a6d9c5b 100644 --- a/packages/row-edit/package.json +++ b/packages/row-edit/package.json @@ -1,12 +1,12 @@ { "name": "@ui-grid/row-edit", - "version": "4.11.0", + "version": "4.11.1", "description": "This ui-grid module extends the edit feature to provide tracking and saving of rows of data", "main": "index.js", "dependencies": { - "@ui-grid/cell-nav": "^4.11.0", - "@ui-grid/core": "^4.11.0", - "@ui-grid/edit": "^4.11.0", + "@ui-grid/cell-nav": "^4.11.1", + "@ui-grid/core": "^4.11.1", + "@ui-grid/edit": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/saveState/CHANGELOG.md b/packages/saveState/CHANGELOG.md index 4da2ec17c..0c8395f5f 100644 --- a/packages/saveState/CHANGELOG.md +++ b/packages/saveState/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/save-state + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/save-state diff --git a/packages/saveState/package-lock.json b/packages/saveState/package-lock.json index 29d8f8031..eeda27e18 100644 --- a/packages/saveState/package-lock.json +++ b/packages/saveState/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/save-state", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/saveState/package.json b/packages/saveState/package.json index a79b140e9..205d46220 100644 --- a/packages/saveState/package.json +++ b/packages/saveState/package.json @@ -1,14 +1,14 @@ { "name": "@ui-grid/save-state", - "version": "4.11.0", + "version": "4.11.1", "description": "This ui-grid module provides the ability to save and restore the grid state", "main": "index.js", "dependencies": { - "@ui-grid/cell-nav": "^4.11.0", - "@ui-grid/core": "^4.11.0", - "@ui-grid/grouping": "^4.11.0", - "@ui-grid/selection": "^4.11.0", - "@ui-grid/tree-view": "^4.11.0", + "@ui-grid/cell-nav": "^4.11.1", + "@ui-grid/core": "^4.11.1", + "@ui-grid/grouping": "^4.11.1", + "@ui-grid/selection": "^4.11.1", + "@ui-grid/tree-view": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/selection/CHANGELOG.md b/packages/selection/CHANGELOG.md index 6ce6a79ba..5fbeabd1f 100644 --- a/packages/selection/CHANGELOG.md +++ b/packages/selection/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + + +### Bug Fixes + +* clear selection function ([f616137](https://github.com/angular-ui/ui-grid/commit/f61613794aa9f919d091ea60cc27eb85bf70ee74)) + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/selection diff --git a/packages/selection/package-lock.json b/packages/selection/package-lock.json index 8626a316e..3186a7842 100644 --- a/packages/selection/package-lock.json +++ b/packages/selection/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/selection", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/selection/package.json b/packages/selection/package.json index a9acf1187..624d45dbf 100644 --- a/packages/selection/package.json +++ b/packages/selection/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/selection", - "version": "4.11.0", + "version": "4.11.1", "description": "This module provides row selection to ui-grid", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/tree-base/CHANGELOG.md b/packages/tree-base/CHANGELOG.md index 74402bb83..8e7d329a4 100644 --- a/packages/tree-base/CHANGELOG.md +++ b/packages/tree-base/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/tree-base + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/tree-base diff --git a/packages/tree-base/package-lock.json b/packages/tree-base/package-lock.json index 01744e24a..e28d26562 100644 --- a/packages/tree-base/package-lock.json +++ b/packages/tree-base/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/tree-base", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/tree-base/package.json b/packages/tree-base/package.json index a88c80284..2ef9f02cc 100644 --- a/packages/tree-base/package.json +++ b/packages/tree-base/package.json @@ -1,10 +1,10 @@ { "name": "@ui-grid/tree-base", - "version": "4.11.0", + "version": "4.11.1", "description": "This ui-grid module provides a tree view of the data, with nodes and leaves", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", + "@ui-grid/core": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/tree-view/CHANGELOG.md b/packages/tree-view/CHANGELOG.md index cdb0bf51d..728489bdb 100644 --- a/packages/tree-view/CHANGELOG.md +++ b/packages/tree-view/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/tree-view + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/tree-view diff --git a/packages/tree-view/package-lock.json b/packages/tree-view/package-lock.json index 11e274369..21c344bf9 100644 --- a/packages/tree-view/package-lock.json +++ b/packages/tree-view/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/tree-view", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/tree-view/package.json b/packages/tree-view/package.json index cac89d1e9..7bb10343b 100644 --- a/packages/tree-view/package.json +++ b/packages/tree-view/package.json @@ -1,11 +1,11 @@ { "name": "@ui-grid/tree-view", - "version": "4.11.0", + "version": "4.11.1", "description": "This ui-grid module provides a tree view of the data, with nodes and leaves", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", - "@ui-grid/tree-base": "^4.11.0", + "@ui-grid/core": "^4.11.1", + "@ui-grid/tree-base": "^4.11.1", "angular": ">=1.4.0 1.8.x" }, "publishConfig": { diff --git a/packages/validate/CHANGELOG.md b/packages/validate/CHANGELOG.md index 8f41409d5..33d68b4ef 100644 --- a/packages/validate/CHANGELOG.md +++ b/packages/validate/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.11.1](https://github.com/angular-ui/ui-grid/compare/v4.11.0...v4.11.1) (2022-02-23) + +**Note:** Version bump only for package @ui-grid/validate + + + + + # [4.11.0](https://github.com/angular-ui/ui-grid/compare/v4.10.3...v4.11.0) (2021-08-12) **Note:** Version bump only for package @ui-grid/validate diff --git a/packages/validate/package-lock.json b/packages/validate/package-lock.json index cc4cf50c0..b27cd1ece 100644 --- a/packages/validate/package-lock.json +++ b/packages/validate/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui-grid/validate", - "version": "4.11.0", + "version": "4.11.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/validate/package.json b/packages/validate/package.json index bbce009d7..bacb45298 100644 --- a/packages/validate/package.json +++ b/packages/validate/package.json @@ -1,11 +1,11 @@ { "name": "@ui-grid/validate", - "version": "4.11.0", + "version": "4.11.1", "description": "This ui-grid module provides the ability to validate cells upon change", "main": "index.js", "dependencies": { - "@ui-grid/core": "^4.11.0", - "@ui-grid/edit": "^4.11.0", + "@ui-grid/core": "^4.11.1", + "@ui-grid/edit": "^4.11.1", "angular": ">=1.4.0 1.8.x", "angular-ui-bootstrap": "0.13.4" },