diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25ecf1e049..875212daa7 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 82826ea935..6f93df9a65 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 ba8a8f7d47..509a74778d 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 c7edfcb8ea..c5fb03ba92 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": {
@@ -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": {
@@ -8464,13 +8415,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.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": {
"version": "1.0.2",
@@ -8591,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
},
@@ -10236,9 +10184,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",
@@ -10296,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",
@@ -10433,9 +10358,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": {
@@ -10621,9 +10546,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": {
@@ -10718,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",
@@ -10753,9 +10672,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": {
@@ -11226,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",
@@ -11638,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",
@@ -11681,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": {
@@ -11702,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",
@@ -11716,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": {
@@ -11760,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
}
}
},
@@ -12446,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",
@@ -12497,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",
@@ -13027,10 +13088,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",
@@ -13468,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",
@@ -13650,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",
@@ -13997,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",
@@ -14061,9 +14107,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": {
@@ -14147,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": {
@@ -14650,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",
@@ -14945,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": {
@@ -15219,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": {
@@ -15568,9 +15608,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",
@@ -15758,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
}
}
@@ -15979,9 +16029,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"
@@ -16037,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
}
}
},
@@ -16302,18 +16348,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": {
@@ -16509,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",
@@ -16576,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": {
@@ -16614,9 +16654,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": {
@@ -16667,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"
}
}
}
@@ -16716,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",
@@ -16740,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",
@@ -16918,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",
@@ -17023,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",
@@ -17530,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",
@@ -17724,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",
@@ -17737,15 +17761,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==",
- "dev": true
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"dev": true
},
"yargs": {
@@ -17854,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 f063efddbf..cab60b2877 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"
@@ -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",
diff --git a/packages/auto-resize/CHANGELOG.md b/packages/auto-resize/CHANGELOG.md
index e510eba6a7..f0685fc604 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 6cde84c83e..685c0ab75e 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 1bf5d33ac6..f1f6d9d113 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 c2e4db298a..eed1d53871 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 2c4359dd01..e4330ed23a 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 cc96920df2..4f804bfbc0 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 398702de43..6f4dfe02e1 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 77b66539d4..30b894211e 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 db145c097f..723c81b717 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/core/src/js/directives/ui-grid-style.js b/packages/core/src/js/directives/ui-grid-style.js
index 54f634e4ee..164ac98d77 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 (var i = 0; i < $elm.length; i++) {
+ $elm[i].textContent = value;
+ }
});
}
}
diff --git a/packages/core/src/js/factories/Grid.js b/packages/core/src/js/factories/Grid.js
index 7d0cd90891..6e7a1026c2 100644
--- a/packages/core/src/js/factories/Grid.js
+++ b/packages/core/src/js/factories/Grid.js
@@ -686,11 +686,9 @@ angular.module('ui.grid')
* @param {string} name column name
*/
Grid.prototype.getColumn = function getColumn(name) {
- var columns = this.columns.filter(function (column) {
+ return rowColumnFinder(this.columns, function (column) {
return column.colDef.name === name;
});
-
- return columns.length > 0 ? columns[0] : null;
};
/**
@@ -701,10 +699,9 @@ angular.module('ui.grid')
* @param {string} name column.field
*/
Grid.prototype.getColDef = function getColDef(name) {
- var colDefs = this.options.columnDefs.filter(function (colDef) {
+ return rowColumnFinder(this.options.columnDefs, function (colDef) {
return colDef.name === name;
});
- return colDefs.length > 0 ? colDefs[0] : null;
};
/**
@@ -1073,6 +1070,25 @@ angular.module('ui.grid')
return t;
};
+ var rowColumnFinder = function(array, func) {
+ if (array && array.length) {
+ if (angular.isFunction(array.find)) {
+ return array.find(func) || null;
+ }
+
+ var result = null;
+ array.every(function (entry) {
+ if (func(entry)) {
+ result = entry;
+ return false;
+ }
+ return true;
+ });
+ return result;
+ }
+ return null;
+ }
+
/**
* @ngdoc function
* @name getRow
@@ -1084,15 +1100,71 @@ angular.module('ui.grid')
*/
Grid.prototype.getRow = function getRow(rowEntity, lookInRows) {
var self = this;
-
- lookInRows = typeof(lookInRows) === 'undefined' ? self.rows : lookInRows;
-
- var rows = lookInRows.filter(function (row) {
+ lookInRows = lookInRows == void 0 ? this.rows : lookInRows;
+ return rowColumnFinder(lookInRows, function (row) {
return self.options.rowEquality(row.entity, rowEntity);
});
- 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) {
+ 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.hasOwnProperty(key) && row.entity[key] === comparator;
+ } : function (row) {
+ return row.hasOwnProperty(key) && 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) {
+ var result = null;
+ 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;
+ }
+
+ lookInRows.every(func);
+ }
+ return result
+ };
/**
* @ngdoc function
diff --git a/packages/core/src/js/services/rowSearcher.js b/packages/core/src/js/services/rowSearcher.js
index b487ac2bf0..d7a230626e 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,14 +178,11 @@ 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
if (filter.condition instanceof RegExp) {
return filter.condition.test(value);
@@ -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 < columns.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] );
}
diff --git a/packages/core/src/js/services/rowSorter.js b/packages/core/src/js/services/rowSorter.js
index 00c72ec823..f6ee847977 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,18 @@ 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) {
+ 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
@@ -147,45 +141,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 +172,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 +194,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 +216,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 +248,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 +300,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,14 +381,9 @@ 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);
+ });
// Now actually sort the data
var rowSortFn = function (rowA, rowB) {
@@ -454,14 +396,12 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
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 +415,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;
};
diff --git a/packages/core/test/core/factories/Grid.spec.js b/packages/core/test/core/factories/Grid.spec.js
index 690a78a4e3..31ad340963 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.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() {
+ 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")).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")).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() {
+ 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").entity).toBe(grid.rows[0].entity);
+ expect(grid.findRowByKey(true, "str", "def")).toBe(null);
+ 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", "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(false, "innerMulti", false).entity).toBe(grid.rows[0].entity);
+ });
+ })
+
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/edit/CHANGELOG.md b/packages/edit/CHANGELOG.md
index 51ba94b78b..8d28067d64 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 42b8f621e3..e1d4099eda 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 83248372cf..7de892ec9f 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 99fc47e431..9e62f72234 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 ea8725c142..a6e278fb77 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 eea384f291..67ba921ff9 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 0baf7397ec..7d8b3a50ab 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 0ceb75d8b1..7116cf6482 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 12884c01bd..a5c5483865 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 036026bebd..4b2dfea2a7 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 0546c6224e..e1bab58d99 100644
--- a/packages/exporter/package-lock.json
+++ b/packages/exporter/package-lock.json
@@ -1,9 +1,17 @@
{
"name": "@ui-grid/exporter",
- "version": "4.11.0",
+ "version": "4.11.1",
"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",
diff --git a/packages/exporter/package.json b/packages/exporter/package.json
index afb2ddef5c..5ae5729895 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/exporter/src/js/exporter.js b/packages/exporter/src/js/exporter.js
index 64b19c0523..cf77663f69 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" + *+ *
+ * gridOptions.exporterCsvFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".csv" }; + **/ gridOptions.exporterCsvFilename = gridOptions.exporterCsvFilename ? gridOptions.exporterCsvFilename : 'download.csv'; /** @@ -240,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) *
+ * gridOptions.exporterPdfFilename = "rows.pdf" + *+ *
+ * gridOptions.exporterPdfFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".pdf" }; + **/ gridOptions.exporterPdfFilename = gridOptions.exporterPdfFilename ? gridOptions.exporterPdfFilename : 'download.pdf'; /** @@ -248,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) *
+ * gridOptions.exporterExcelFilename = "rows.xlsx" + *+ *
+ * gridOptions.exporterExcelFilename = function(grid, rowTypes, colTypes) { return "rows" + rowTypes + ".xlsx" }; + **/ gridOptions.exporterExcelFilename = gridOptions.exporterExcelFilename ? gridOptions.exporterExcelFilename : 'download.xlsx'; @@ -257,6 +278,13 @@ * @propertyOf ui.grid.exporter.api:GridOptions * @description The default sheetname to use when saving the downloaded to excel *
+ * gridOptions.exporterExcelSheetName = "HitListSheet" + *+ *
+ * gridOptions.exporterExcelSheetName = function(grid, rowTypes, colTypes) { return "HitListSheet" + rowTypes }; + **/ gridOptions.exporterExcelSheetName = gridOptions.exporterExcelSheetName ? gridOptions.exporterExcelSheetName : 'Sheet1'; @@ -831,7 +859,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); }); }, @@ -1268,7 +1297,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(); } @@ -1608,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); @@ -1633,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); }); }); } diff --git a/packages/exporter/test/exporter.spec.js b/packages/exporter/test/exporter.spec.js index e2e911836f..1f11986699 100644 --- a/packages/exporter/test/exporter.spec.js +++ b/packages/exporter/test/exporter.spec.js @@ -773,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(); }); }); diff --git a/packages/grouping/CHANGELOG.md b/packages/grouping/CHANGELOG.md index 3fc315f8c3..a1026f5884 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 d8d5273e81..c053183f6d 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 714884490f..a4824903f3 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/grouping/src/js/grouping.js b/packages/grouping/src/js/grouping.js index 28dc300dfe..6c33da961f 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++; } diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index 0be374e213..a90d535be2 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 4ac4b200ee..68b25d37ce 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 52451c9360..abf1221610 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/i18n/src/js/ru.js b/packages/i18n/src/js/ru.js index c48799eb97..17aacaf6fb 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: 'Для группы: Минимум', diff --git a/packages/importer/CHANGELOG.md b/packages/importer/CHANGELOG.md index 91012ce5ca..87a452fbce 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 5fe38cbe15..025c863947 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 6072bef5c4..c7603f2ca1 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 5e7013fd57..f1ec85c459 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 3164b030ff..82e88a6c43 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 e00098a40e..6c1f7492c2 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 1857f34e89..85e1028f63 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 7fcaddbc7d..f19bb3f53c 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 7eb8c5a6d9..672382f786 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 f159fd5934..c65c1a9d84 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 55131ca9a3..d8cd823dbd 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 3256e340ed..fa891d07ea 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 e50ab61b4d..4afbc83cd6 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 466dbc7d0b..a60b333cd6 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 ccd0831832..90662f9082 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 82f7972bbc..44cb346f41 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 92b5606276..c0259172ee 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 172472c194..a1d94c07c2 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/resize-columns/src/js/ui-grid-column-resizer.js b/packages/resize-columns/src/js/ui-grid-column-resizer.js index b746ab2c85..44e915640d 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); diff --git a/packages/row-edit/CHANGELOG.md b/packages/row-edit/CHANGELOG.md index ab63e035d5..0dc8a01961 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 a97d224eaa..b951f9401b 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 24fd86bb55..30a6d9c5b2 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 4da2ec17c0..0c8395f5fb 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 29d8f80319..eeda27e183 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 a79b140e98..205d462202 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 6ce6a79ba8..5fbeabd1f9 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 8626a316ee..3186a78420 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 a9acf1187f..624d45dbf0 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/selection/src/js/selection.js b/packages/selection/src/js/selection.js index 1ffd0ec200..8288097d56 100644 --- a/packages/selection/src/js/selection.js +++ b/packages/selection/src/js/selection.js @@ -201,8 +201,8 @@ */ toggleRowSelection: function (rowEntity, evt) { var row = grid.getRow(rowEntity); - if (row !== null) { - service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect); + if (row != void 0 && row !== null) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -215,8 +215,8 @@ */ 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); + if (row != void 0 && row !== null && !row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -232,8 +232,25 @@ */ 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); + if (row != void 0 && row !== null && typeof (row) !== 'undefined' && !row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); + } + }, + /** + * @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 != void 0 && row !== null && typeof (row) !== 'undefined' && !row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); } }, /** @@ -246,8 +263,8 @@ */ 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); + if (row != void 0 && row !== null && row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, true); } }, /** @@ -263,8 +280,25 @@ */ 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); + if (row != void 0 && row !== null && typeof (row) !== 'undefined' && row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); + } + }, + /** + * @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 != void 0 && row !== null && typeof (row) !== 'undefined' && row.isSelected) { + service.toggleRowSelection(grid, row, evt, grid.options.multiSelect, grid.options.noUnselect, false); } }, /** @@ -326,14 +360,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 +383,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 @@ -531,38 +579,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); } }, @@ -615,6 +662,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 @@ -627,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); } @@ -802,17 +883,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); } @@ -933,7 +1014,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(); } }); @@ -953,12 +1034,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); diff --git a/packages/selection/test/uiGridSelectionService.spec.js b/packages/selection/test/uiGridSelectionService.spec.js index 4887296a10..6e32757f99 100644 --- a/packages/selection/test/uiGridSelectionService.spec.js +++ b/packages/selection/test/uiGridSelectionService.spec.js @@ -77,6 +77,54 @@ 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, true, false); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false); + expect(grid.rows[1].isSelected).toBe(true); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false); + expect(grid.rows[0].isSelected).toBe(false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, 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, true, false, true); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false, true); + expect(grid.rows[1].isSelected).toBe(true); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, true); + expect(grid.rows[0].isSelected).toBe(false); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, 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; + grid.rows[2].visible = false; + grid.rows[2].isSelected = true; + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, false); + expect(grid.rows[0].isSelected).toBe(true); + uiGridSelectionService.toggleRowSelection(grid, grid.rows[1], null, true, false, false); + expect(grid.rows[1].isSelected).toBe(false); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true, false, false); + expect(grid.rows[0].isSelected).toBe(false); + + uiGridSelectionService.toggleRowSelection(grid, grid.rows[2], null, true, false, false); + expect(grid.rows[2].isSelected).toBe(true); + }); + it('should not toggle selected with enableSelection: false', function() { grid.rows[0].enableSelection = false; uiGridSelectionService.toggleRowSelection(grid, grid.rows[0], null, true); @@ -123,8 +171,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); }); }); @@ -197,6 +247,69 @@ 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() { @@ -368,6 +481,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 +505,56 @@ describe('ui.grid.selection uiGridSelectionService', function() { }; expect(grid.api.selection.getSelectedRows().length).toEqual(2); + expect(grid.api.selection.getSelectedGridRows().length).toEqual(3); + }); + + 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(6); + 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' + }); }); }); diff --git a/packages/tree-base/CHANGELOG.md b/packages/tree-base/CHANGELOG.md index 74402bb837..8e7d329a4e 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 01744e24a7..e28d26562a 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 a88c80284f..2ef9f02cc1 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 cdb0bf51d4..728489bdbc 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 11e2743696..21c344bf93 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 cac89d1e92..7bb10343b2 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 8f41409d5d..33d68b4efd 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 cc4cf50c01..b27cd1ecee 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 bbce009d7f..bacb452983 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" },