From 94d71619fabe84badf73aa0db700116913b6a365 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 02:28:40 +0200 Subject: [PATCH 001/378] chore(deps): update devdependency eslint-plugin-standard to ^4.0.2 (#5944) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 583181f8549..3a565d91541 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", + "eslint-plugin-standard": "^4.0.2", "eslint-plugin-vue": "^7.1.0", "esm": "^3.2.25", "execa": "^4.0.3", diff --git a/yarn.lock b/yarn.lock index 845eb587479..f922737c91d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5618,10 +5618,10 @@ eslint-plugin-promise@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== -eslint-plugin-standard@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" - integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== +eslint-plugin-standard@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.2.tgz#021211a9f077e63a6847e7bb9ab4247327ac8e0c" + integrity sha512-nKptN8l7jksXkwFk++PhJB3cCDTcXOEyhISIN86Ue2feJ1LFyY3PrY3/xT2keXlJSY5bpmbiTG0f885/YKAvTA== eslint-plugin-vue@^7.1.0: version "7.1.0" From 3c7a3c0378494d6debc4ad7a82902f40dbcc3bfd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 09:29:23 +0200 Subject: [PATCH 002/378] chore(deps): update devdependency eslint-config-standard to v15 (#5945) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3a565d91541..dae10a745ff 100644 --- a/package.json +++ b/package.json @@ -126,7 +126,7 @@ "cross-env": "^7.0.2", "eslint": "^7.11.0", "eslint-config-prettier": "^6.14.0", - "eslint-config-standard": "^14.1.1", + "eslint-config-standard": "^15.0.0", "eslint-config-vue": "^2.0.2", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.1.0", diff --git a/yarn.lock b/yarn.lock index f922737c91d..90096546a9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5525,10 +5525,10 @@ eslint-config-prettier@^6.14.0: dependencies: get-stdin "^6.0.0" -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== +eslint-config-standard@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-15.0.0.tgz#459f823b47ac0541b0a22b1d0a161a9da543f687" + integrity sha512-MZ8KRhUJLtMbjQo9PsEzFG29vqbQJfLoLBHrTaAaFMtDx9PIm1GZgyUanOLgf1xOE1aWrtZZSbxBYCy8dJCCBg== eslint-config-vue@^2.0.2: version "2.0.2" From ae51376c2a3bb081e6d74c934751ed5c56c2eefb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 22:23:52 +0200 Subject: [PATCH 003/378] chore(deps): update devdependency terser to ^5.3.8 (#5948) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index dae10a745ff..000dfd4ae42 100644 --- a/package.json +++ b/package.json @@ -159,7 +159,7 @@ "rollup-plugin-node-resolve": "^5.2.0", "sass-loader": "^10.0.3", "standard-version": "^9.0.0", - "terser": "^5.3.7", + "terser": "^5.3.8", "vue": "^2.6.12", "vue-jest": "^3.0.7", "vue-router": "^3.4.7", diff --git a/yarn.lock b/yarn.lock index 90096546a9b..71fc915110f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13427,10 +13427,10 @@ terser@^4.1.2, terser@^4.3.9, terser@^4.6.12, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.7: - version "5.3.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.7.tgz#798a4ae2e7ff67050c3e99fcc4e00725827d97e2" - integrity sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w== +terser@^5.3.8: + version "5.3.8" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" + integrity sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ== dependencies: commander "^2.20.0" source-map "~0.7.2" From d3cb1f2260d67eb8a3ffb2cde589dd0b020ee067 Mon Sep 17 00:00:00 2001 From: 82amp <46736702+82amp@users.noreply.github.com> Date: Fri, 23 Oct 2020 10:25:07 +1100 Subject: [PATCH 004/378] chore:fix missing ` in carousel documentation (#5951) --- src/components/carousel/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/carousel/README.md b/src/components/carousel/README.md index f90422e2fc1..29b329fca4c 100644 --- a/src/components/carousel/README.md +++ b/src/components/carousel/README.md @@ -126,7 +126,7 @@ swipe (on touch enabled devices, if not disabled). When the users mouse hovers the carousel it will automatically pause, and will automatically restart when the mouse leaves the carousel. To disable this feature, set the `no-hover-pause` prop on -`. +``. ## Controls and indicators From 345ac812abae52a2f72e9281c1cf075192060ab1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 01:29:45 +0200 Subject: [PATCH 005/378] chore(deps): update devdependency sass-loader to ^10.0.4 (#5952) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Renovate Bot Co-authored-by: Jacob Müller --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 000dfd4ae42..1827bdd0e7f 100644 --- a/package.json +++ b/package.json @@ -157,7 +157,7 @@ "rollup-plugin-babel": "^4.4.0", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-node-resolve": "^5.2.0", - "sass-loader": "^10.0.3", + "sass-loader": "^10.0.4", "standard-version": "^9.0.0", "terser": "^5.3.8", "vue": "^2.6.12", diff --git a/yarn.lock b/yarn.lock index 71fc915110f..162b2cf4c73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12354,10 +12354,10 @@ sass-graph@2.2.5: scss-tokenizer "^0.2.3" yargs "^13.3.2" -sass-loader@^10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.3.tgz#9e2f1bfdd6355f2adde4e4835d838b020bf800b0" - integrity sha512-W4+FV5oUdYy0PnC11ZoPrcAexODgDCa3ngxoy5X5qBhZYoPz9FPjb6Oox8Aa0ZYEyx34k8AQfOVuvqefOSAAUQ== +sass-loader@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.4.tgz#ec7181096947d078d60a1d76d527f47c19b151d8" + integrity sha512-zhdZ8qvZM4iL5XjLVEjJLvKWvC+MB+hHgzL2x/Nf7UHpUNmPYsJvypW79bW39g4LZ603dH/dRSsRYzJJIljtdA== dependencies: klona "^2.0.4" loader-utils "^2.0.0" From 9c7842c3a5d026793fbeeaf89777d76b81e05c2f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 08:30:47 +0200 Subject: [PATCH 006/378] chore(deps): update devdependency postcss to ^8.1.3 (#5953) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 1827bdd0e7f..e581689a8ef 100644 --- a/package.json +++ b/package.json @@ -149,7 +149,7 @@ "marked": "^1.2.2", "node-sass": "^4.14.1", "nuxt": "^2.14.7", - "postcss": "^8.1.2", + "postcss": "^8.1.3", "postcss-cli": "^8.1.0", "prettier": "1.14.3", "require-context": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 162b2cf4c73..37ed380293e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9547,11 +9547,16 @@ nanoid@^2.1.0: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.1.10, nanoid@^3.1.12: +nanoid@^3.1.10: version "3.1.12" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== +nanoid@^3.1.15: + version "3.1.15" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.15.tgz#28e7c4ce56aff2d0c2d37814c7aef9d6c5b3e6f3" + integrity sha512-n8rXUZ8UU3lV6+43atPrSizqzh25n1/f00Wx1sCiE7R1sSHytZLTTiQl8DjC4IDLOnEZDlgJhy0yO4VsIpMxow== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -11298,14 +11303,14 @@ postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.2: - version "8.1.2" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.2.tgz#9731fcaa4f7b0bef47121821bdae9eeb609a324c" - integrity sha512-mToqEVFq8jF9TFhlIK4HhE34zknFJuNTgqtsr60vUvrWn+9TIYugCwiV1JZRxCuOrej2jjstun1bn4Bc7/1HkA== +postcss@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.3.tgz#b25138b872ca9f9512c218d9d57ebb59015a9c39" + integrity sha512-AKsHGqd7HmXmL/EgyAjI4Gx719A5yQdt9HzyXrI8M/hzxfumecYS95kfvIt40UZqPVNoEt0Va1M3PG54XtNPbg== dependencies: colorette "^1.2.1" line-column "^1.0.2" - nanoid "^3.1.12" + nanoid "^3.1.15" source-map "^0.6.1" prelude-ls@^1.2.1: From 6809ecb69fd620b4e73af58ce8e9f788fe72b035 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 11:56:12 +0200 Subject: [PATCH 007/378] chore(deps): update all non-major dependencies to ^26.6.1 (#5956) Co-authored-by: Renovate Bot --- package.json | 4 +- yarn.lock | 618 +++++++++++++++++++++++++++------------------------ 2 files changed, 324 insertions(+), 298 deletions(-) diff --git a/package.json b/package.json index e581689a8ef..aa1706ac35f 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "autoprefixer": "^10.0.1", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.0", + "babel-jest": "^26.6.1", "babel-plugin-istanbul": "^6.0.0", "bootstrap-icons": "^1.0.0", "bundlewatch": "^0.3.1", @@ -142,7 +142,7 @@ "html-loader": "^1.3.2", "husky": "^4.3.0", "improved-yarn-audit": "^2.3.1", - "jest": "^26.6.0", + "jest": "^26.6.1", "lint-staged": "^10.4.2", "loader-utils": "^2.0.0", "lodash": "^4.17.20", diff --git a/yarn.lock b/yarn.lock index 37ed380293e..9ad092d6161 100644 --- a/yarn.lock +++ b/yarn.lock @@ -951,93 +951,93 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.0.tgz#fd4a4733df3c50260aefb227414296aee96e682f" - integrity sha512-ArGcZWAEYMWmWnc/QvxLDvFmGRPvmHeulhS7FUUAlUGR5vS/SqMfArsGaYmIFEThSotCMnEihwx1h62I1eg5lg== +"@jest/console@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.1.tgz#6a19eaac4aa8687b4db9130495817c65aec3d34e" + integrity sha512-cjqcXepwC5M+VeIhwT6Xpi/tT4AiNzlIx8SMJ9IihduHnsSrnWNvTBfKIpmqOOCNOPqtbBx6w2JqfoLOJguo8g== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.6.0" - jest-util "^26.6.0" + jest-message-util "^26.6.1" + jest-util "^26.6.1" slash "^3.0.0" -"@jest/core@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.0.tgz#04dd3e046e9ebbe06a4f330e05a67f21f7bb314a" - integrity sha512-7wbunxosnC5zXjxrEtTQSblFjRVOT8qz1eSytw8riEeWgegy3ct91NLPEP440CDuWrmW3cOLcEGxIf9q2u6O9Q== +"@jest/core@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.1.tgz#77426822f667a2cda82bf917cee11cc8ba71f9ac" + integrity sha512-p4F0pgK3rKnoS9olXXXOkbus1Bsu6fd8pcvLMPsUy4CVXZ8WSeiwQ1lK5hwkCIqJ+amZOYPd778sbPha/S8Srw== dependencies: - "@jest/console" "^26.6.0" - "@jest/reporters" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/reporters" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.6.0" - jest-config "^26.6.0" - jest-haste-map "^26.6.0" - jest-message-util "^26.6.0" + jest-changed-files "^26.6.1" + jest-config "^26.6.1" + jest-haste-map "^26.6.1" + jest-message-util "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-resolve-dependencies "^26.6.0" - jest-runner "^26.6.0" - jest-runtime "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" - jest-watcher "^26.6.0" + jest-resolve "^26.6.1" + jest-resolve-dependencies "^26.6.1" + jest-runner "^26.6.1" + jest-runtime "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" + jest-watcher "^26.6.1" micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.0.tgz#695ee24cbf110456272caa9debbbf7e01afb2f78" - integrity sha512-l+5MSdiC4rUUrz8xPdj0TwHBwuoqMcAbFnsYDTn5FkenJl8b+lvC5NdJl1tVICGHWnx0fnjdd1luRZ7u3U4xyg== +"@jest/environment@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.1.tgz#38a56f1cc66f96bf53befcc5ebeaf1c2dce90e9a" + integrity sha512-GNvHwkOFJtNgSwdzH9flUPzF9AYAZhUg124CBoQcwcZCM9s5TLz8Y3fMtiaWt4ffbigoetjGk5PU2Dd8nLrSEw== dependencies: - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" + jest-mock "^26.6.1" -"@jest/fake-timers@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.0.tgz#5b4cc83fab91029963c53e6e2716f02544323b22" - integrity sha512-7VQpjChrwlwvGNysS10lDBLOVLxMvMtpx0Xo6aIotzNVyojYk0NN0CR8R4T6h/eu7Zva/LB3P71jqwGdtADoag== +"@jest/fake-timers@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.1.tgz#5aafba1822075b7142e702b906094bea15f51acf" + integrity sha512-T/SkMLgOquenw/nIisBRD6XAYpFir0kNuclYLkse5BpzeDUukyBr+K31xgAo9M0hgjU9ORlekAYPSzc0DKfmKg== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@sinonjs/fake-timers" "^6.0.1" "@types/node" "*" - jest-message-util "^26.6.0" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-message-util "^26.6.1" + jest-mock "^26.6.1" + jest-util "^26.6.1" -"@jest/globals@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.0.tgz#da2f58d17105b6a7531ee3c8724acb5f233400e2" - integrity sha512-rs3a/a8Lq8FgTx11SxbqIU2bDjsFU2PApl2oK2oUVlo84RSF76afFm2nLojW93AGssr715GHUwhq5b6mpCI5BQ== +"@jest/globals@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.1.tgz#b232c7611d8a2de62b4bf9eb9a007138322916f4" + integrity sha512-acxXsSguuLV/CeMYmBseefw6apO7NuXqpE+v5r3yD9ye2PY7h1nS20vY7Obk2w6S7eJO4OIAJeDnoGcLC/McEQ== dependencies: - "@jest/environment" "^26.6.0" - "@jest/types" "^26.6.0" - expect "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/types" "^26.6.1" + expect "^26.6.1" -"@jest/reporters@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.0.tgz#2a8d631ad3b19a722fd0fae58ce9fa25e8aac1cf" - integrity sha512-PXbvHhdci5Rj1VFloolgLb+0kkdtzswhG8MzVENKJRI3O1ndwr52G6E/2QupjwrRcYnApZOelFf4nNpf5+SDxA== +"@jest/reporters@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.1.tgz#582ede05278cf5eeffe58bc519f4a35f54fbcb0d" + integrity sha512-J6OlXVFY3q1SXWJhjme5i7qT/BAZSikdOK2t8Ht5OS32BDo6KfG5CzIzzIFnAVd82/WWbc9Hb7SJ/jwSvVH9YA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1048,10 +1048,10 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.6.0" - jest-resolve "^26.6.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.1" + jest-resolve "^26.6.1" + jest-util "^26.6.1" + jest-worker "^26.6.1" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" @@ -1069,42 +1069,42 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.0.tgz#79705c8a57165777af5ef1d45c65dcc4a5965c11" - integrity sha512-LV6X1ry+sKjseQsIFz3e6XAZYxwidvmeJFnVF08fq98q08dF1mJYI0lDq/LmH/jas+R4s0pwnNGiz1hfC4ZUBw== +"@jest/test-result@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.1.tgz#d75698d8a06aa663e8936663778c831512330cc1" + integrity sha512-wqAgIerIN2gSdT2A8WeA5+AFh9XQBqYGf8etK143yng3qYd0mF0ie2W5PVmgnjw4VDU6ammI9NdXrKgNhreawg== dependencies: - "@jest/console" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/types" "^26.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.0.tgz#a9dbc6545b1c59e7f375b05466e172126609906d" - integrity sha512-rWPTMa+8rejvePZnJmnKkmKWh0qILFDPpN0qbSif+KNGvFxqqDGafMo4P2Y8+I9XWrZQBeXL9IxPL4ZzDgRlbw== +"@jest/test-sequencer@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.1.tgz#34216ac2c194b0eeebde30d25424d1134703fd2e" + integrity sha512-0csqA/XApZiNeTIPYh6koIDCACSoR6hi29T61tKJMtCZdEC+tF3PoNt7MS0oK/zKC6daBgCbqXxia5ztr/NyCQ== dependencies: - "@jest/test-result" "^26.6.0" + "@jest/test-result" "^26.6.1" graceful-fs "^4.2.4" - jest-haste-map "^26.6.0" - jest-runner "^26.6.0" - jest-runtime "^26.6.0" + jest-haste-map "^26.6.1" + jest-runner "^26.6.1" + jest-runtime "^26.6.1" -"@jest/transform@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.0.tgz#1a6b95d0c7f9b4f96dd3aab9d28422a9e5e4043e" - integrity sha512-NUNA1NMCyVV9g5NIQF1jzW7QutQhB/HAocteCiUyH0VhmLXnGMTfPYQu1G6IjPk+k1SWdh2PD+Zs1vMqbavWzg== +"@jest/transform@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.1.tgz#f70786f96e0f765947b4fb4f54ffcfb7bd783711" + integrity sha512-oNFAqVtqRxZRx6vXL3I4bPKUK0BIlEeaalkwxyQGGI8oXDQBtYQBpiMe5F7qPs4QdvvFYB42gPGIMMcxXaBBxQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.6.0" + jest-haste-map "^26.6.1" jest-regex-util "^26.0.0" - jest-util "^26.6.0" + jest-util "^26.6.1" micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" @@ -1121,10 +1121,10 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" -"@jest/types@^26.6.0": - version "26.6.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.0.tgz#2c045f231bfd79d52514cda3fbc93ef46157fa6a" - integrity sha512-8pDeq/JVyAYw7jBGU83v8RMYAkdrRxLG3BGnAJuqaQAUd6GWBmND2uyl+awI88+hit48suLoLjNFtR+ZXxWaYg== +"@jest/types@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.1.tgz#2638890e8031c0bc8b4681e0357ed986e2f866c5" + integrity sha512-ywHavIKNpAVrStiRY5wiyehvcktpijpItvGiK72RAn5ctqmzvPk8OvKnvHeBqa1XdQr959CTWAJMqxI8BTibyg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -2852,13 +2852,13 @@ babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.0.tgz#eca57ac8af99d6e06047e595b1faf0b5adf8a7bb" - integrity sha512-JI66yILI7stzjHccAoQtRKcUwJrJb4oMIxLTirL3GdAjGpaUBQSjZDFi9LsPkN4gftsS4R2AThAJwOjJxadwbg== +babel-jest@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.1.tgz#07bd7bec14de47fe0f2c9a139741329f1f41788b" + integrity sha512-duMWEOKrSBYRVTTNpL2SipNIWnZOjP77auOBMPQ3zXAdnDbyZQWU8r/RxNWpUf9N6cgPFecQYelYLytTVXVDtA== dependencies: - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" babel-preset-jest "^26.5.0" @@ -3769,6 +3769,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.4.3.tgz#9e31f7fe701f5fcee5793f77ab4e58fa8dcde8bc" + integrity sha512-5RLK0Qfs0PNDpEyBXIr3bIT1Muw3ojSlvpw6dAmkUcO0+uTrsBn7GuEIgx40u+OzbCBLDta7nvmud85P4EmTsQ== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -5886,16 +5891,16 @@ expand-tilde@^1.2.2: dependencies: os-homedir "^1.0.1" -expect@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.0.tgz#f48861317f62bb9f1248eaab7ae9e50a9a5a8339" - integrity sha512-EzhbZ1tbwcaa5Ok39BI11flIMeIUSlg1QsnXOrleaMvltwHsvIQPBtL710l+ma+qDFLUgktCXK4YuQzmHdm7cg== +expect@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.1.tgz#e1e053cdc43b21a452b36fc7cc9401e4603949c1" + integrity sha512-BRfxIBHagghMmr1D2MRY0Qv5d3Nc8HCqgbDwNXw/9izmM5eBb42a2YjLKSbsqle76ozGkAEPELQX4IdNHAKRNA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" ansi-styles "^4.0.0" jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" jest-regex-util "^26.0.0" express@^4.16.3: @@ -7590,6 +7595,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" + integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8012,57 +8024,57 @@ istextorbinary@^2.2.1: editions "^2.2.0" textextensions "^2.5.0" -jest-changed-files@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.0.tgz#63b04aa261b5733c6ade96b7dd24784d12d8bb2d" - integrity sha512-k8PZzlp3cRWDe0fDc/pYs+c4w36+hiWXe1PpW/pW1UJmu1TNTAcQfZUrVYleij+uEqlY6z4mPv7Iff3kY0o5SQ== +jest-changed-files@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.1.tgz#2fac3dc51297977ee883347948d8e3d37c417fba" + integrity sha512-NhSdZ5F6b/rIN5V46x1l31vrmukD/bJUXgYAY8VtP1SknYdJwjYDRxuLt7Z8QryIdqCjMIn2C0Cd98EZ4umo8Q== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" execa "^4.0.0" throat "^5.0.0" -jest-cli@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.0.tgz#dc3ae34fd5937310493ed07dc79c5ffba2bf6671" - integrity sha512-lJAMZGpmML+y3Kfln6L5DGRTfKGQ+n1JDM1RQstojSLUhe/EaXWR8vmcx70v4CyJKvFZs7c/0QDkPX5ra/aDew== +jest-cli@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.1.tgz#8952242fa812c05bd129abf7c022424045b7fd67" + integrity sha512-aPLoEjlwFrCWhiPpW5NUxQA1X1kWsAnQcQ0SO/fHsCvczL3W75iVAcH9kP6NN+BNqZcHNEvkhxT5cDmBfEAh+w== dependencies: - "@jest/core" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/core" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-config "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" prompts "^2.0.1" yargs "^15.4.1" -jest-config@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.0.tgz#cb879a37002f881edb66d673fd40b6704595de89" - integrity sha512-RCR1Kf7MGJ5waVCvrj/k3nCAJKquWZlzs8rkskzj0KlG392hNBOaYd5FQ4cCac08j6pwfIDOwNvMcy0/FqguJg== +jest-config@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.1.tgz#8c343fbdd9c24ad003e261f73583c3c020f32b42" + integrity sha512-mtJzIynIwW1d1nMlKCNCQiSgWaqFn8cH/fOSNY97xG7Y9tBCZbCSuW2GTX0RPmceSJGO7l27JgwC18LEg0Vg+g== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.0" - "@jest/types" "^26.6.0" - babel-jest "^26.6.0" + "@jest/test-sequencer" "^26.6.1" + "@jest/types" "^26.6.1" + babel-jest "^26.6.1" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.0" - jest-environment-node "^26.6.0" + jest-environment-jsdom "^26.6.1" + jest-environment-node "^26.6.1" jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.0" + jest-jasmine2 "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-resolve "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" micromatch "^4.0.2" - pretty-format "^26.6.0" + pretty-format "^26.6.1" jest-diff@^25.2.1: version "25.5.0" @@ -8074,15 +8086,15 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.0.tgz#5e5bbbaf93ec5017fae2b3ef12fc895e29988379" - integrity sha512-IH09rKsdWY8YEY7ii2BHlSq59oXyF2pK3GoK+hOK9eD/x6009eNB5Jv1shLMKgxekodPzLlV7eZP1jPFQYds8w== +jest-diff@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.1.tgz#38aa194979f454619bb39bdee299fb64ede5300c" + integrity sha512-BBNy/zin2m4kG5In126O8chOBxLLS/XMTuuM2+YhgyHk87ewPzKTuTJcqj3lOWOi03NNgrl+DkMeV/exdvG9gg== dependencies: chalk "^4.0.0" diff-sequences "^26.5.0" jest-get-type "^26.3.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" jest-docblock@^26.0.0: version "26.0.0" @@ -8091,41 +8103,41 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.0.tgz#9e9d90a4fc5a79e1d99a008897038325a6c7fbbf" - integrity sha512-7LzSNwNviYnm4FWK46itIE03NqD/8O8/7tVQ5rwTdTNrmPMQoQ1Z7hEFQ1uzRReluOFislpurpnQ0QsclSiDkA== +jest-each@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.1.tgz#e968e88309a3e2ae9648634af8f89d8ee5acfddd" + integrity sha512-gSn8eB3buchuq45SU7pLB7qmCGax1ZSxfaWuEFblCyNMtyokYaKFh9dRhYPujK6xYL57dLIPhLKatjmB5XWzGA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" chalk "^4.0.0" jest-get-type "^26.3.0" - jest-util "^26.6.0" - pretty-format "^26.6.0" + jest-util "^26.6.1" + pretty-format "^26.6.1" -jest-environment-jsdom@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.0.tgz#2ce353fb82d27a9066bfea3ff2c27d9405076c69" - integrity sha512-bXO9IG7a3YlyiHxwfKF+OWoTA+GIw4FrD+Y0pb6CC+nKs5JuSRZmR2ovEX6PWo6KY42ka3JoZOp3KEnXiFPPCg== +jest-environment-jsdom@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.1.tgz#63093bf89daee6139616568a43633b84cf7aac21" + integrity sha512-A17RiXuHYNVlkM+3QNcQ6n5EZyAc6eld8ra9TW26luounGWpku4tj03uqRgHJCI1d4uHr5rJiuCH5JFRtdmrcA== dependencies: - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-mock "^26.6.1" + jest-util "^26.6.1" jsdom "^16.4.0" -jest-environment-node@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.0.tgz#97f6e48085e67bda43b97f48e678ce78d760cd14" - integrity sha512-kWU6ZD1h6fs7sIl6ufuK0sXW/3d6WLaj48iow0NxhgU6eY89d9K+0MVmE0cRcVlh53yMyxTK6b+TnhLOnlGp/A== +jest-environment-node@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.1.tgz#4d73d8b33c26989a92a0ed3ad0bfd6f7a196d9bd" + integrity sha512-YffaCp6h0j1kbcf1NVZ7umC6CPgD67YS+G1BeornfuSkx5s3xdhuwG0DCxSiHPXyT81FfJzA1L7nXvhq50OWIg== dependencies: - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" - jest-mock "^26.6.0" - jest-util "^26.6.0" + jest-mock "^26.6.1" + jest-util "^26.6.1" jest-get-type@^25.2.6: version "25.2.6" @@ -8137,12 +8149,12 @@ jest-get-type@^26.3.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.0.tgz#4cd392bc51109bd8e0f765b2d5afa746bebb5ce2" - integrity sha512-RpNqAGMR58uG9E9vWITorX2/R7he/tSbHWldX5upt1ymEcmCaXczqXxjqI6xOtRR8Ev6ZEYDfgSA5Fy7WHUL5w== +jest-haste-map@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.1.tgz#97e96f5fd7576d980307fbe6160b10c016b543d4" + integrity sha512-9kPafkv0nX6ta1PrshnkiyhhoQoFWncrU/uUBt3/AP1r78WSCU5iLceYRTwDvJl67H3RrXqSlSVDDa/AsUB7OQ== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -8150,63 +8162,63 @@ jest-haste-map@^26.6.0: graceful-fs "^4.2.4" jest-regex-util "^26.0.0" jest-serializer "^26.5.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-util "^26.6.1" + jest-worker "^26.6.1" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.0.tgz#1b59e26aa56651bae3d4637965c8cd4d3851de6d" - integrity sha512-2E3c+0A9y2OIK5caw5qlcm3b4doaf8FSfXKTX3xqKTUJoR4zXh0xvERBNWxZP9xMNXEi/2Z3LVsZpR2hROgixA== +jest-jasmine2@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.1.tgz#11c92603d1fa97e3c33404359e69d6cec7e57017" + integrity sha512-2uYdT32o/ZzSxYAPduAgokO8OlAL1YdG/9oxcEY138EDNpIK5XRRJDaGzTZdIBWSxk0aR8XxN44FvfXtHB+Fiw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.0" + "@jest/environment" "^26.6.1" "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.6.0" + expect "^26.6.1" is-generator-fn "^2.0.0" - jest-each "^26.6.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" - jest-runtime "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - pretty-format "^26.6.0" + jest-each "^26.6.1" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" + jest-runtime "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + pretty-format "^26.6.1" throat "^5.0.0" -jest-leak-detector@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.0.tgz#a211c4c7627743e8d87b392bf92502cd64275df3" - integrity sha512-3oMv34imWTl1/nwKnmE/DxYo3QqHnZeF3nO6UzldppkhW0Za7OY2DYyWiamqVzwdUrjhoQkY5g+aF6Oc3alYEQ== +jest-leak-detector@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.1.tgz#f63e46dc4e3aa30d29b40ae49966a15730d25bbe" + integrity sha512-j9ZOtJSJKlHjrs4aIxWjiQUjyrffPdiAQn2Iw0916w7qZE5Lk0T2KhIH6E9vfhzP6sw0Q0jtnLLb4vQ71o1HlA== dependencies: jest-get-type "^26.3.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-matcher-utils@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.0.tgz#8f57d78353275bfa7a3ccea128c1030b347138e2" - integrity sha512-BUy/dQYb7ELGRazmK4ZVkbfPYCaNnrMtw1YljVhcKzWUxBM0xQ+bffrfnMLdRZp4wUUcT4ahaVnA3VWZtXWP9Q== +jest-matcher-utils@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.1.tgz#bc90822d352c91c2ec1814731327691d06598400" + integrity sha512-9iu3zrsYlUnl8pByhREF9rr5eYoiEb1F7ymNKg6lJr/0qD37LWS5FSW/JcoDl8UdMX2+zAzabDs7sTO+QFKjCg== dependencies: chalk "^4.0.0" - jest-diff "^26.6.0" + jest-diff "^26.6.1" jest-get-type "^26.3.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-message-util@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.0.tgz#c3499053022e05765f71b8c2535af63009e2d4be" - integrity sha512-WPAeS38Kza29f04I0iOIQrXeiebRXjmn6cFehzI7KKJOgT0NmqYAcLgjWnIAfKs5FBmEQgje1kXab0DaLKCl2w== +jest-message-util@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.1.tgz#d62c20c0fe7be10bfd6020b675abb9b5fa933ff3" + integrity sha512-cqM4HnqncIebBNdTKrBoWR/4ufHTll0pK/FWwX0YasK+TlBQEMqw3IEdynuuOTjDPFO3ONlFn37280X48beByw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" @@ -8214,12 +8226,12 @@ jest-message-util@^26.6.0: slash "^3.0.0" stack-utils "^2.0.2" -jest-mock@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.0.tgz#5d13a41f3662a98a55c7742ac67c482e232ded13" - integrity sha512-HsNmL8vVIn1rL1GWA21Drpy9Cl+7GImwbWz/0fkWHrUXVzuaG7rP0vwLtE+/n70Mt0U8nPkz8fxioi3SC0wqhw== +jest-mock@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.1.tgz#6c12a92a82fc833f81a5b6de6b67d78386e276a3" + integrity sha512-my0lPTBu1awY8iVG62sB2sx9qf8zxNDVX+5aFgoB8Vbqjb6LqIOsfyFA8P1z6H2IsqMbvOX9oCJnK67Y3yUIMA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -8232,83 +8244,84 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.0.tgz#05bfecc977a3a48929fc7d9876f03d93a16b7df0" - integrity sha512-4di+XUT7LwJJ8b8qFEEDQssC5+aeVjLhvRICCaS4alh/EVS9JCT1armfJ3pnSS8t4o6659WbMmKVo82H4LuUVw== +jest-resolve-dependencies@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.1.tgz#e9d091a159ad198c029279737a8b4c507791d75c" + integrity sha512-MN6lufbZJ3RBfTnJesZtHu3hUCBqPdHRe2+FhIt0yiqJ3fMgzWRqMRQyN/d/QwOE7KXwAG2ekZutbPhuD7s51A== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" jest-regex-util "^26.0.0" - jest-snapshot "^26.6.0" + jest-snapshot "^26.6.1" -jest-resolve@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" - integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== +jest-resolve@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.1.tgz#e9a9130cc069620d5aeeb87043dd9e130b68c6a1" + integrity sha512-hiHfQH6rrcpAmw9xCQ0vD66SDuU+7ZulOuKwc4jpbmFFsz0bQG/Ib92K+9/489u5rVw0btr/ZhiHqBpmkbCvuQ== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" chalk "^4.0.0" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^26.6.0" + jest-util "^26.6.1" read-pkg-up "^7.0.1" - resolve "^1.17.0" + resolve "^1.18.1" slash "^3.0.0" -jest-runner@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.0.tgz#465a76efc9ec12cfd83a2af3a6cfb695b13a3efe" - integrity sha512-QpeN6pje8PQvFgT+wYOlzeycKd67qAvSw5FgYBiX2cTW+QTiObTzv/k09qRvT09rcCntFxUhy9VB1mgNGFLYIA== +jest-runner@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.1.tgz#a945971b5a23740c1fe20e372a38de668b7c76bf" + integrity sha512-DmpNGdgsbl5s0FGkmsInmqnmqCtliCSnjWA2TFAJS1m1mL5atwfPsf+uoZ8uYQ2X0uDj4NM+nPcDnUpbNTRMBA== dependencies: - "@jest/console" "^26.6.0" - "@jest/environment" "^26.6.0" - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/environment" "^26.6.1" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.6.0" + jest-config "^26.6.1" jest-docblock "^26.0.0" - jest-haste-map "^26.6.0" - jest-leak-detector "^26.6.0" - jest-message-util "^26.6.0" - jest-resolve "^26.6.0" - jest-runtime "^26.6.0" - jest-util "^26.6.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.1" + jest-leak-detector "^26.6.1" + jest-message-util "^26.6.1" + jest-resolve "^26.6.1" + jest-runtime "^26.6.1" + jest-util "^26.6.1" + jest-worker "^26.6.1" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.0.tgz#90f80ea5eb0d97a1089120f582fb84bd36ca5491" - integrity sha512-JEz4YGnybFvtN4NLID6lsZf0bcd8jccwjWcG5TRE3fYVnxoX1egTthPjnC4btIwWJ6QaaHhtOQ/E3AGn8iClAw== +jest-runtime@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.1.tgz#9a131e7b4f0bc6beefd62e7443f757c1d5fa9dec" + integrity sha512-7uOCNeezXDWgjEyzYbRN2ViY7xNZzusNVGAMmU0UHRUNXuY4j4GBHKGMqPo/cBPZA9bSYp+lwK2DRRBU5Dv6YQ== dependencies: - "@jest/console" "^26.6.0" - "@jest/environment" "^26.6.0" - "@jest/fake-timers" "^26.6.0" - "@jest/globals" "^26.6.0" + "@jest/console" "^26.6.1" + "@jest/environment" "^26.6.1" + "@jest/fake-timers" "^26.6.1" + "@jest/globals" "^26.6.1" "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.6.0" - "@jest/transform" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/transform" "^26.6.1" + "@jest/types" "^26.6.1" "@types/yargs" "^15.0.0" chalk "^4.0.0" + cjs-module-lexer "^0.4.2" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.6.0" - jest-haste-map "^26.6.0" - jest-message-util "^26.6.0" - jest-mock "^26.6.0" + jest-config "^26.6.1" + jest-haste-map "^26.6.1" + jest-message-util "^26.6.1" + jest-mock "^26.6.1" jest-regex-util "^26.0.0" - jest-resolve "^26.6.0" - jest-snapshot "^26.6.0" - jest-util "^26.6.0" - jest-validate "^26.6.0" + jest-resolve "^26.6.1" + jest-snapshot "^26.6.1" + jest-util "^26.6.1" + jest-validate "^26.6.1" slash "^3.0.0" strip-bom "^4.0.0" yargs "^15.4.1" @@ -8321,63 +8334,63 @@ jest-serializer@^26.5.0: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.0.tgz#457aa9c1761efc781ac9c02b021a0b21047c6a38" - integrity sha512-mcqJZeIZqxomvBcsaiIbiEe2g7K1UxnUpTwjMoHb+DX4uFGnuZoZ6m28YOYRyCfZsdU9mmq73rNBnEH2atTR4Q== +jest-snapshot@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.1.tgz#469e9d0b749496aea7dad0d7e5e5c88b91cdb4cc" + integrity sha512-JA7bZp7HRTIJYAi85pJ/OZ2eur2dqmwIToA5/6d7Mn90isGEfeF9FvuhDLLEczgKP1ihreBzrJ6Vr7zteP5JNA== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^26.6.0" + expect "^26.6.1" graceful-fs "^4.2.4" - jest-diff "^26.6.0" + jest-diff "^26.6.1" jest-get-type "^26.3.0" - jest-haste-map "^26.6.0" - jest-matcher-utils "^26.6.0" - jest-message-util "^26.6.0" - jest-resolve "^26.6.0" + jest-haste-map "^26.6.1" + jest-matcher-utils "^26.6.1" + jest-message-util "^26.6.1" + jest-resolve "^26.6.1" natural-compare "^1.4.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" semver "^7.3.2" -jest-util@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.0.tgz#a81547f6d38738b505c5a594b37d911335dea60f" - integrity sha512-/cUGqcnKeZMjvTQLfJo65nBOEZ/k0RB/8usv2JpfYya05u0XvBmKkIH5o5c4nCh9DD61B1YQjMGGqh1Ha0aXdg== +jest-util@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.1.tgz#4cc0d09ec57f28d12d053887eec5dc976a352e9b" + integrity sha512-xCLZUqVoqhquyPLuDXmH7ogceGctbW8SMyQVjD9o+1+NPWI7t0vO08udcFLVPLgKWcvc+zotaUv/RuaR6l8HIA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.0.tgz#b95e2076cca1a58b183e5bcce2bf43af52eebf10" - integrity sha512-FKHNqvh1Pgs4NWas56gsTPmjcIoGAAzSVUCK1+g8euzuCGbmdEr8LRTtOEFjd29uMZUk0PhzmzKGlHPe6j3UWw== +jest-validate@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.1.tgz#28730eb8570d60968d9d06f1a8c94d922167bd2a" + integrity sha512-BEFpGbylKocnNPZULcnk+TGaz1oFZQH/wcaXlaXABbu0zBwkOGczuWgdLucUouuQqn7VadHZZeTvo8VSFDLMOA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" camelcase "^6.0.0" chalk "^4.0.0" jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^26.6.0" + pretty-format "^26.6.1" -jest-watcher@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.0.tgz#06001c22831583a16f9ccb388ee33316a7f4200f" - integrity sha512-gw5BvcgPi0PKpMlNWQjUet5C5A4JOYrT7gexdP6+DR/f7mRm7wE0o1GqwPwcTsTwo0/FNf9c/kIDXTRaSAYwlw== +jest-watcher@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.1.tgz#debfa34e9c5c3e735593403794fe53d2955bfabc" + integrity sha512-0LBIPPncNi9CaLKK15bnxyd2E8OMl4kJg0PTiNOI+MXztXw1zVdtX/x9Pr6pXaQYps+eS/ts43O4+HByZ7yJSw== dependencies: - "@jest/test-result" "^26.6.0" - "@jest/types" "^26.6.0" + "@jest/test-result" "^26.6.1" + "@jest/types" "^26.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.6.0" + jest-util "^26.6.1" string-length "^4.0.1" jest-worker@^25.4.0: @@ -8388,23 +8401,23 @@ jest-worker@^25.4.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" - integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== +jest-worker@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" + integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" - integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== +jest@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.1.tgz#821e8280d2bdeeed40ac7bc43941dceff0f1b650" + integrity sha512-f+ahfqw3Ffy+9vA7sWFGpTmhtKEMsNAZiWBVXDkrpIO73zIz22iimjirnV78kh/eWlylmvLh/0WxHN6fZraZdA== dependencies: - "@jest/core" "^26.6.0" + "@jest/core" "^26.6.1" import-local "^3.0.2" - jest-cli "^26.6.0" + jest-cli "^26.6.1" jimp-compact@^0.16.1: version "0.16.1" @@ -11368,15 +11381,15 @@ pretty-format@^25.2.1, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^26.6.0: - version "26.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.0.tgz#1e1030e3c70e3ac1c568a5fd15627671ea159391" - integrity sha512-Uumr9URVB7bm6SbaByXtx+zGlS+0loDkFMHP0kHahMjmfCtmFY03iqd++5v3Ld6iB5TocVXlBN/T+DXMn9d4BA== +pretty-format@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.1.tgz#af9a2f63493a856acddeeb11ba6bcf61989660a8" + integrity sha512-MeqqsP5PYcRBbGMvwzsyBdmAJ4EFX7pWFyl7x4+dMVg5pE0ZDdBIvEH2ergvIO+Gvwv1wh64YuOY9y5LuyY/GA== dependencies: - "@jest/types" "^26.6.0" + "@jest/types" "^26.6.1" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" pretty-hrtime@^1.0.3: version "1.0.3" @@ -11658,6 +11671,11 @@ react-is@^16.12.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -12159,6 +12177,14 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11. dependencies: path-parse "^1.0.6" +resolve@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" From afeefc7788eed10aeb4da1eb19cae590d97a950e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20M=C3=BCller?= Date: Fri, 23 Oct 2020 12:37:33 +0200 Subject: [PATCH 008/378] chore: update contributors --- package.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/package.json b/package.json index aa1706ac35f..fb4992d036a 100644 --- a/package.json +++ b/package.json @@ -42,14 +42,6 @@ { "name": "Alex Regan", "url": "https://github.com/alexsasharegan" - }, - { - "name": "SirLamer", - "url": "https://github.com/SirLamer" - }, - { - "name": "vizo", - "url": "https://github.com/vizo" } ], "files": [ From d8c73826276ce0190897f868c6a3f63ce4a9a78f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 15:37:32 +0200 Subject: [PATCH 009/378] chore(deps): update devdependency @testing-library/jest-dom to ^5.11.5 (#5957) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fb4992d036a..68643a0a875 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "@nuxtjs/pwa": "^3.2.2", "@nuxtjs/robots": "^2.4.2", "@nuxtjs/sitemap": "^2.4.0", - "@testing-library/jest-dom": "^5.11.4", + "@testing-library/jest-dom": "^5.11.5", "@vue/test-utils": "^1.1.0", "autoprefixer": "^10.0.1", "babel-core": "^7.0.0-bridge.0", diff --git a/yarn.lock b/yarn.lock index 9ad092d6161..a0be1ac4b80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1616,10 +1616,10 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@testing-library/jest-dom@^5.11.4": - version "5.11.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.4.tgz#f325c600db352afb92995c2576022b35621ddc99" - integrity sha512-6RRn3epuweBODDIv3dAlWjOEHQLpGJHB2i912VS3JQtsD22+ENInhdDNl4ZZQiViLlIfFinkSET/J736ytV9sw== +"@testing-library/jest-dom@^5.11.5": + version "5.11.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.5.tgz#44010f37f4b1e15f9d433963b515db0b05182fc8" + integrity sha512-XI+ClHR864i6p2kRCEyhvpVejuer+ObVUF4cjCvRSF88eOMIfqw7RoS9+qoRhyigGswMfT64L6Nt0Ufotxbwtg== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" From a29d1c16e52f0a5243c685f3c87c5528d10357bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Oct 2020 09:51:00 +0200 Subject: [PATCH 010/378] chore(deps): update all non-major dependencies (#5959) Co-authored-by: Renovate Bot --- package.json | 6 +++--- yarn.lock | 34 +++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 68643a0a875..85a9eca0b58 100644 --- a/package.json +++ b/package.json @@ -112,11 +112,11 @@ "bootstrap-icons": "^1.0.0", "bundlewatch": "^0.3.1", "clean-css-cli": "^4.3.0", - "codemirror": "^5.58.1", + "codemirror": "^5.58.2", "codesandbox": "^2.2.1", "core-js": "^3.6.5", "cross-env": "^7.0.2", - "eslint": "^7.11.0", + "eslint": "^7.12.0", "eslint-config-prettier": "^6.14.0", "eslint-config-standard": "^15.0.0", "eslint-config-vue": "^2.0.2", @@ -141,7 +141,7 @@ "marked": "^1.2.2", "node-sass": "^4.14.1", "nuxt": "^2.14.7", - "postcss": "^8.1.3", + "postcss": "^8.1.4", "postcss-cli": "^8.1.0", "prettier": "1.14.3", "require-context": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index a0be1ac4b80..a8c613104cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -919,10 +919,10 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@eslint/eslintrc@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" - integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== +"@eslint/eslintrc@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.0.tgz#bc7e3c4304d4c8720968ccaee793087dfb5fe6b4" + integrity sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -3912,10 +3912,10 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror@^5.58.1: - version "5.58.1" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.58.1.tgz#ec6bf38ad2a17f74c61bd00cc6dc5a69bd167854" - integrity sha512-UGb/ueu20U4xqWk8hZB3xIfV2/SFqnSLYONiM3wTMDqko0bsYrsAkGGhqUzbRkYm89aBKPyHtuNEbVWF9FTFzw== +codemirror@^5.58.2: + version "5.58.2" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.58.2.tgz#ed54a1796de1498688bea1cdd4e9eeb187565d1b" + integrity sha512-K/hOh24cCwRutd1Mk3uLtjWzNISOkm4fvXiMO7LucCrqbh6aJDdtqUziim3MZUI6wOY0rvY1SlL1Ork01uMy6w== codesandbox-import-util-types@^2.2.1: version "2.2.1" @@ -5671,13 +5671,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.11.0: - version "7.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.11.0.tgz#aaf2d23a0b5f1d652a08edacea0c19f7fadc0b3b" - integrity sha512-G9+qtYVCHaDi1ZuWzBsOWo2wSwd70TXnU6UHA3cTYHp7gCTXZcpggWFoUVAMRarg68qtPoNfFbzPh+VdOgmwmw== +eslint@^7.12.0: + version "7.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.0.tgz#7b6a85f87a9adc239e979bb721cde5ce0dc27da6" + integrity sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.1.3" + "@eslint/eslintrc" "^0.2.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -11316,10 +11316,10 @@ postcss@7.x.x, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.3.tgz#b25138b872ca9f9512c218d9d57ebb59015a9c39" - integrity sha512-AKsHGqd7HmXmL/EgyAjI4Gx719A5yQdt9HzyXrI8M/hzxfumecYS95kfvIt40UZqPVNoEt0Va1M3PG54XtNPbg== +postcss@^8.1.4: + version "8.1.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.4.tgz#356dfef367a70f3d04347f74560c85846e20e4c1" + integrity sha512-LfqcwgMq9LOd8pX7K2+r2HPitlIGC5p6PoZhVELlqhh2YGDVcXKpkCseqan73Hrdik6nBd2OvoDPUaP/oMj9hQ== dependencies: colorette "^1.2.1" line-column "^1.0.2" From b3946ed7a7b327fb7c66b44caaf122460fc24005 Mon Sep 17 00:00:00 2001 From: Tal Koren Date: Sun, 25 Oct 2020 13:07:05 +0200 Subject: [PATCH 011/378] fix(b-avatar): prevent avatar from being squished (#5963) Closes #5962 --- src/components/avatar/_avatar.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/avatar/_avatar.scss b/src/components/avatar/_avatar.scss index 9929c5d783e..5db9fe07a9d 100644 --- a/src/components/avatar/_avatar.scss +++ b/src/components/avatar/_avatar.scss @@ -5,6 +5,7 @@ align-items: center; justify-content: center; vertical-align: middle; + flex-shrink: 0; width: $b-avatar-size; height: $b-avatar-size; font-size: inherit; From 6a35cff87cc07d4e7a4bee559eff7b3eab39462f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2020 12:30:40 +0100 Subject: [PATCH 012/378] chore(deps): update devdependency vue-router to ^3.4.8 (#5966) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 85a9eca0b58..ab62f21419b 100644 --- a/package.json +++ b/package.json @@ -154,7 +154,7 @@ "terser": "^5.3.8", "vue": "^2.6.12", "vue-jest": "^3.0.7", - "vue-router": "^3.4.7", + "vue-router": "^3.4.8", "vue-server-renderer": "^2.6.12", "vue-template-compiler": "^2.6.12" }, diff --git a/yarn.lock b/yarn.lock index a8c613104cc..10ec952adf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14360,11 +14360,16 @@ vue-no-ssr@^1.1.1: resolved "https://registry.yarnpkg.com/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== -vue-router@^3.4.6, vue-router@^3.4.7: +vue-router@^3.4.6: version "3.4.7" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.7.tgz#bf189bafd16f4e4ef783c4a6250a3090f2c1fa1b" integrity sha512-CbHXue5BLrDivOk5O4eZ0WT4Yj8XwdXa4kCnsEIOzYUPF/07ZukayA2jGxDCJxLc9SgVQX9QX0OuGOwGlVB4Qg== +vue-router@^3.4.8: + version "3.4.8" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.8.tgz#2c06261d35d8075893470352d42d70b6287b8194" + integrity sha512-3BsR84AqarcmweXjItxw3jwQsiYNssYg090yi4rlzTnCJxmHtkyCvhNz9Z7qRSOkmiV485KkUCReTp5AjNY4wg== + vue-server-renderer@^2.6.12: version "2.6.12" resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.12.tgz#a8cb9c49439ef205293cb41c35d0d2b0541653a5" From f51d0ca096d7902b36bd2a84b80031646583a0f4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2020 20:07:08 +0100 Subject: [PATCH 013/378] chore(deps): update devdependency lint-staged to ^10.5.0 (#5967) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ab62f21419b..b1a768714b7 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "husky": "^4.3.0", "improved-yarn-audit": "^2.3.1", "jest": "^26.6.1", - "lint-staged": "^10.4.2", + "lint-staged": "^10.5.0", "loader-utils": "^2.0.0", "lodash": "^4.17.20", "marked": "^1.2.2", diff --git a/yarn.lock b/yarn.lock index 10ec952adf2..f7c70de400b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8705,10 +8705,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@^10.4.2: - version "10.4.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.4.2.tgz#9fee4635c4b5ddb845746f237c6d43494ccd21c1" - integrity sha512-OLCA9K1hS+Sl179SO6kX0JtnsaKj/MZalEhUj5yAgXsb63qPI/Gfn6Ua1KuZdbfkZNEu3/n5C/obYCu70IMt9g== +lint-staged@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.0.tgz#c923c2447a84c595874f3de696778736227e7a7a" + integrity sha512-gjC9+HGkBubOF+Yyoj9pd52Qfm/kYB+dRX1UOgWjHKvSDYl+VHkZXlBMlqSZa2cH3Kp5/uNL480sV6e2dTgXSg== dependencies: chalk "^4.1.0" cli-truncate "^2.1.0" From 3bb50087f7908be40f5bf4e319efb15a86485613 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2020 06:28:39 +0100 Subject: [PATCH 014/378] chore(deps): update devdependency eslint to ^7.12.1 (#5969) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b1a768714b7..0c1fec65687 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,7 @@ "codesandbox": "^2.2.1", "core-js": "^3.6.5", "cross-env": "^7.0.2", - "eslint": "^7.12.0", + "eslint": "^7.12.1", "eslint-config-prettier": "^6.14.0", "eslint-config-standard": "^15.0.0", "eslint-config-vue": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index f7c70de400b..5404da91253 100644 --- a/yarn.lock +++ b/yarn.lock @@ -919,10 +919,10 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@eslint/eslintrc@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.0.tgz#bc7e3c4304d4c8720968ccaee793087dfb5fe6b4" - integrity sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ== +"@eslint/eslintrc@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -5671,13 +5671,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.12.0: - version "7.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.0.tgz#7b6a85f87a9adc239e979bb721cde5ce0dc27da6" - integrity sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA== +eslint@^7.12.1: + version "7.12.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.12.1.tgz#bd9a81fa67a6cfd51656cdb88812ce49ccec5801" + integrity sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.0" + "@eslint/eslintrc" "^0.2.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" From 97e37aa7be8e5b257c7513a92068419e9b6175b9 Mon Sep 17 00:00:00 2001 From: criskgl Date: Tue, 27 Oct 2020 15:54:37 +0100 Subject: [PATCH 015/378] Update README.md (#5971) Spelling correction --- docs/markdown/reference/theming/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/markdown/reference/theming/README.md b/docs/markdown/reference/theming/README.md index 7006b177257..d7ca0ca098d 100644 --- a/docs/markdown/reference/theming/README.md +++ b/docs/markdown/reference/theming/README.md @@ -3,7 +3,7 @@ > Theming is accomplished by Sass variables, Sass maps, and custom CSS. There's no dedicated theme > stylesheet; instead, you can enable the built-in theme to add gradients, shadows, and more. -While BootstrapVue uses Bootstrap's CSS, certain features of BootstrapVue uses custom CSS (i.e. +While BootstrapVue uses Bootstrap's CSS, certain features of BootstrapVue use custom CSS (i.e. stacked tables, etc.). Our custom CSS relies on variables defined the Bootstrap v4.x SCSS. The `bootstrap-vue/dist/bootstrap-vue.css` is compiled using the default Bootstrap v4.x variables. By using the BootstrapVue source SCSS, you can have your variable overrides (such as breakpoints, theme From 884834e3c7e6b0cf2c1ce79efeb17ab79ba8657f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2020 18:48:48 +0100 Subject: [PATCH 016/378] chore(deps): update devdependency eslint-config-prettier to ^6.15.0 (#5972) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0c1fec65687..c3f92bd9f17 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "core-js": "^3.6.5", "cross-env": "^7.0.2", "eslint": "^7.12.1", - "eslint-config-prettier": "^6.14.0", + "eslint-config-prettier": "^6.15.0", "eslint-config-standard": "^15.0.0", "eslint-config-vue": "^2.0.2", "eslint-plugin-import": "^2.22.1", diff --git a/yarn.lock b/yarn.lock index 5404da91253..2e2d4762514 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5523,10 +5523,10 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.14.0.tgz#390e7863a8ae99970981933826476169285b3a27" - integrity sha512-DbVwh0qZhAC7CNDWcq8cBdK6FcVHiMTKmCypOPWeZkp9hJ8xYwTaWSa6bb6cjfi8KOeJy0e9a8Izxyx+O4+gCQ== +eslint-config-prettier@^6.15.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== dependencies: get-stdin "^6.0.0" From 5e82e7f5e2434e28be471204ee30cefb4695cfb6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2020 06:47:19 +0100 Subject: [PATCH 017/378] chore(deps): update devdependency eslint-config-standard to ^15.0.1 (#5974) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c3f92bd9f17..fa7693a56bc 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "cross-env": "^7.0.2", "eslint": "^7.12.1", "eslint-config-prettier": "^6.15.0", - "eslint-config-standard": "^15.0.0", + "eslint-config-standard": "^15.0.1", "eslint-config-vue": "^2.0.2", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.1.0", diff --git a/yarn.lock b/yarn.lock index 2e2d4762514..f67f3c253d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5530,10 +5530,10 @@ eslint-config-prettier@^6.15.0: dependencies: get-stdin "^6.0.0" -eslint-config-standard@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-15.0.0.tgz#459f823b47ac0541b0a22b1d0a161a9da543f687" - integrity sha512-MZ8KRhUJLtMbjQo9PsEzFG29vqbQJfLoLBHrTaAaFMtDx9PIm1GZgyUanOLgf1xOE1aWrtZZSbxBYCy8dJCCBg== +eslint-config-standard@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-15.0.1.tgz#1262eafaba66f4f03fdf3cf655a28aa8b40868b7" + integrity sha512-UGorkix49kBium7Y124o2U9Qy7Lpa+nO0FsaqQSIPeno5hGNxZtSBJbqJX6gtpYfDFWCtqCAN9wyK+oDd9jT7Q== eslint-config-vue@^2.0.2: version "2.0.2" From 49a3f00420bf9958deda3a6be0ccb76cc3ea06ba Mon Sep 17 00:00:00 2001 From: JD <47495003+jd-0001@users.noreply.github.com> Date: Wed, 28 Oct 2020 13:42:00 +0530 Subject: [PATCH 018/378] feat(b-media): improve aside right handling (#5965) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(b-media): removed utility classes and added style * fix(b-media): removed utility classes and added style * fix(b-media): Changes according to suggestions for media * feat(b-media): added prop desc in component's package.json * feat(b-media-asign): advanced `right` handling Co-authored-by: Jacob Müller --- src/components/index.scss | 1 + src/components/media/README.md | 2 +- src/components/media/_media.scss | 9 +++++ src/components/media/index.scss | 1 + src/components/media/media-aside.js | 18 +++++++-- src/components/media/media-aside.spec.js | 28 +++++++++++--- src/components/media/media-body.js | 11 ++---- src/components/media/media-body.spec.js | 2 +- src/components/media/media.js | 48 ++++++++++-------------- src/components/media/media.spec.js | 47 +++++++++-------------- src/components/media/package.json | 6 ++- 11 files changed, 95 insertions(+), 78 deletions(-) create mode 100644 src/components/media/_media.scss create mode 100644 src/components/media/index.scss diff --git a/src/components/index.scss b/src/components/index.scss index 25ecc44f88f..633a42f1e89 100644 --- a/src/components/index.scss +++ b/src/components/index.scss @@ -10,6 +10,7 @@ @import "form-spinbutton/index"; @import "form-tags/index"; @import "input-group/index"; +@import "media/index"; @import "modal/index"; @import "nav/index"; @import "navbar/index"; diff --git a/src/components/media/README.md b/src/components/media/README.md index 78d8820e290..08530efd86d 100644 --- a/src/components/media/README.md +++ b/src/components/media/README.md @@ -68,7 +68,7 @@ - +
Media Title

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante diff --git a/src/components/media/_media.scss b/src/components/media/_media.scss new file mode 100644 index 00000000000..56683d5e446 --- /dev/null +++ b/src/components/media/_media.scss @@ -0,0 +1,9 @@ +.media-aside { + display: flex; + margin-right: 1rem; +} + +.media-aside-right { + margin-right: 0; + margin-left: 1rem; +} diff --git a/src/components/media/index.scss b/src/components/media/index.scss new file mode 100644 index 00000000000..58539e94e0a --- /dev/null +++ b/src/components/media/index.scss @@ -0,0 +1 @@ +@import "media"; diff --git a/src/components/media/media-aside.js b/src/components/media/media-aside.js index 2e0fa27a446..41f137aa667 100644 --- a/src/components/media/media-aside.js +++ b/src/components/media/media-aside.js @@ -1,34 +1,44 @@ import Vue, { mergeData } from '../../vue' import { NAME_MEDIA_ASIDE } from '../../constants/components' +// --- Props --- + export const props = { tag: { type: String, default: 'div' }, + right: { + type: Boolean, + default: false + }, verticalAlign: { type: String, default: 'top' } } +// --- Main component --- // @vue/component export const BMediaAside = /*#__PURE__*/ Vue.extend({ name: NAME_MEDIA_ASIDE, functional: true, props, render(h, { props, data, children }) { + const { verticalAlign } = props const align = - props.verticalAlign === 'top' + verticalAlign === 'top' ? 'start' - : props.verticalAlign === 'bottom' + : verticalAlign === 'bottom' ? 'end' - : /* istanbul ignore next */ props.verticalAlign + : /* istanbul ignore next */ verticalAlign + return h( props.tag, mergeData(data, { - staticClass: 'd-flex', + staticClass: 'media-aside', class: { + 'media-aside-right': props.right, [`align-self-${align}`]: align } }), diff --git a/src/components/media/media-aside.spec.js b/src/components/media/media-aside.spec.js index 4693e2f5cbc..62f337f688c 100644 --- a/src/components/media/media-aside.spec.js +++ b/src/components/media/media-aside.spec.js @@ -6,14 +6,14 @@ describe('media-aside', () => { const wrapper = mount(BMediaAside) expect(wrapper.element.tagName).toBe('DIV') - expect(wrapper.classes()).toContain('d-flex') + expect(wrapper.classes()).toContain('media-aside') expect(wrapper.classes()).toContain('align-self-start') expect(wrapper.text()).toEqual('') wrapper.destroy() }) - it('has custom root element when prop tag set', async () => { + it('has custom root element when prop `tag` set', async () => { const wrapper = mount(BMediaAside, { propsData: { tag: 'span' @@ -21,7 +21,7 @@ describe('media-aside', () => { }) expect(wrapper.element.tagName).toBe('SPAN') - expect(wrapper.classes()).toContain('d-flex') + expect(wrapper.classes()).toContain('media-aside') expect(wrapper.classes()).toContain('align-self-start') expect(wrapper.classes().length).toBe(2) expect(wrapper.text()).toEqual('') @@ -29,7 +29,23 @@ describe('media-aside', () => { wrapper.destroy() }) - it('has alignment class when prop vertical-align set', async () => { + it('has correct class when prop `right` set', async () => { + const wrapper = mount(BMediaAside, { + propsData: { + right: true + } + }) + + expect(wrapper.element.tagName).toBe('DIV') + expect(wrapper.classes()).toContain('media-aside') + expect(wrapper.classes()).toContain('media-aside-right') + expect(wrapper.classes()).toContain('align-self-start') + expect(wrapper.classes().length).toBe(3) + + wrapper.destroy() + }) + + it('has alignment class when prop `vertical-align` set', async () => { const wrapper = mount(BMediaAside, { propsData: { verticalAlign: 'bottom' @@ -37,7 +53,7 @@ describe('media-aside', () => { }) expect(wrapper.element.tagName).toBe('DIV') - expect(wrapper.classes()).toContain('d-flex') + expect(wrapper.classes()).toContain('media-aside') expect(wrapper.classes()).toContain('align-self-end') expect(wrapper.classes().length).toBe(2) @@ -52,7 +68,7 @@ describe('media-aside', () => { }) expect(wrapper.element.tagName).toBe('DIV') - expect(wrapper.classes()).toContain('d-flex') + expect(wrapper.classes()).toContain('media-aside') expect(wrapper.classes()).toContain('align-self-start') expect(wrapper.classes().length).toBe(2) expect(wrapper.findAll('b').length).toBe(1) diff --git a/src/components/media/media-body.js b/src/components/media/media-body.js index 8e6ae68cdba..5ec316a4e29 100644 --- a/src/components/media/media-body.js +++ b/src/components/media/media-body.js @@ -1,6 +1,8 @@ import Vue, { mergeData } from '../../vue' import { NAME_MEDIA_BODY } from '../../constants/components' +// --- Props --- + export const props = { tag: { type: String, @@ -8,18 +10,13 @@ export const props = { } } +// --- Main component --- // @vue/component export const BMediaBody = /*#__PURE__*/ Vue.extend({ name: NAME_MEDIA_BODY, functional: true, props, render(h, { props, data, children }) { - return h( - props.tag, - mergeData(data, { - staticClass: 'media-body' - }), - children - ) + return h(props.tag, mergeData(data, { staticClass: 'media-body' }), children) } }) diff --git a/src/components/media/media-body.spec.js b/src/components/media/media-body.spec.js index 2699681608c..1e7c38d4c4a 100644 --- a/src/components/media/media-body.spec.js +++ b/src/components/media/media-body.spec.js @@ -13,7 +13,7 @@ describe('media-body', () => { wrapper.destroy() }) - it('custom root element when prop tag is set', async () => { + it('custom root element when prop `tag` is set', async () => { const wrapper = mount(BMediaBody, { propsData: { tag: 'article' diff --git a/src/components/media/media.js b/src/components/media/media.js index a8abe73527c..5e6c27f7063 100644 --- a/src/components/media/media.js +++ b/src/components/media/media.js @@ -2,14 +2,20 @@ import Vue, { mergeData } from '../../vue' import { NAME_MEDIA } from '../../constants/components' import { SLOT_NAME_DEFAULT } from '../../constants/slot-names' import { normalizeSlot } from '../../utils/normalize-slot' -import { BMediaBody } from './media-body' import { BMediaAside } from './media-aside' +import { BMediaBody } from './media-body' + +// --- Props --- export const props = { tag: { type: String, default: 'div' }, + noBody: { + type: Boolean, + default: false + }, rightAlign: { type: Boolean, default: false @@ -17,50 +23,36 @@ export const props = { verticalAlign: { type: String, default: 'top' - }, - noBody: { - type: Boolean, - default: false } } +// --- Main component --- // @vue/component export const BMedia = /*#__PURE__*/ Vue.extend({ name: NAME_MEDIA, functional: true, props, render(h, { props, data, slots, scopedSlots, children }) { - const childNodes = props.noBody ? children : [] + const { noBody, rightAlign, verticalAlign } = props + const $children = noBody ? children : [] - if (!props.noBody) { + if (!noBody) { + const slotScope = {} const $slots = slots() const $scopedSlots = scopedSlots || {} - const $aside = normalizeSlot('aside', {}, $scopedSlots, $slots) - const $default = normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots) - - if ($aside && !props.rightAlign) { - childNodes.push( - h( - BMediaAside, - { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } }, - $aside - ) - ) - } - childNodes.push(h(BMediaBody, $default)) + $children.push( + h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)) + ) - if ($aside && props.rightAlign) { - childNodes.push( - h( - BMediaAside, - { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } }, - $aside - ) + const $aside = normalizeSlot('aside', slotScope, $scopedSlots, $slots) + if ($aside) { + $children[rightAlign ? 'push' : 'unshift']( + h(BMediaAside, { props: { right: rightAlign, verticalAlign } }, $aside) ) } } - return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes) + return h(props.tag, mergeData(data, { staticClass: 'media' }), $children) } }) diff --git a/src/components/media/media.spec.js b/src/components/media/media.spec.js index 8d8ca1982db..794745490c4 100644 --- a/src/components/media/media.spec.js +++ b/src/components/media/media.spec.js @@ -9,15 +9,14 @@ describe('media', () => { expect(wrapper.classes()).toContain('media') expect(wrapper.classes().length).toBe(1) expect(wrapper.findAll('.media-body').length).toBe(1) - expect(wrapper.findAll('.d-flex').length).toBe(0) + expect(wrapper.findAll('.media-aside').length).toBe(0) expect(wrapper.text()).toEqual('') - // Should have only one child element expect(wrapper.findAll('.media > *').length).toBe(1) wrapper.destroy() }) - it('renders custom root element when tag prop set', async () => { + it('renders custom root element when `tag` prop set', async () => { const wrapper = mount(BMedia, { propsData: { tag: 'section' @@ -31,7 +30,7 @@ describe('media', () => { wrapper.destroy() }) - it('has expected structure when slot aside present', async () => { + it('has expected structure when slot `aside` present', async () => { const wrapper = mount(BMedia, { slots: { aside: 'foobar' @@ -42,19 +41,15 @@ describe('media', () => { expect(wrapper.classes()).toContain('media') expect(wrapper.classes().length).toBe(1) expect(wrapper.findAll('.media-body').length).toBe(1) - expect(wrapper.findAll('.d-flex').length).toBe(1) - // Should have only two child elements + expect(wrapper.findAll('.media-aside').length).toBe(1) expect(wrapper.findAll('.media > *').length).toBe(2) - // Has expected child order - expect(wrapper.find('.media > .d-flex + .media-body').exists()).toBe(true) - expect(wrapper.find('.media > .media-body + .d-flex').exists()).toBe(false) - // Aside has extra classes - expect(wrapper.find('.d-flex').classes()).toContain('mr-3') + expect(wrapper.find('.media > .media-aside + .media-body').exists()).toBe(true) + expect(wrapper.find('.media > .media-body + .media-aside').exists()).toBe(false) wrapper.destroy() }) - it('has expected structure when prop right-align is set and slot aside present', async () => { + it('has expected structure when prop `right-align` is set and slot `aside` present', async () => { const wrapper = mount(BMedia, { propsData: { rightAlign: true @@ -68,19 +63,15 @@ describe('media', () => { expect(wrapper.classes()).toContain('media') expect(wrapper.classes().length).toBe(1) expect(wrapper.findAll('.media-body').length).toBe(1) - expect(wrapper.findAll('.d-flex').length).toBe(1) - // Should have only two child elements + expect(wrapper.findAll('.media-aside').length).toBe(1) expect(wrapper.findAll('.media > *').length).toBe(2) - // Has expected child order - expect(wrapper.find('.media > .media-body + .d-flex').exists()).toBe(true) - expect(wrapper.find('.media > .d-flex + .media-body').exists()).toBe(false) - // Aside has extra classes - expect(wrapper.find('.d-flex').classes()).toContain('ml-3') + expect(wrapper.find('.media > .media-body + .media-aside').exists()).toBe(true) + expect(wrapper.find('.media > .media-aside + .media-body').exists()).toBe(false) wrapper.destroy() }) - it('places default slot inside media-body', async () => { + it('places default slot inside `media-body`', async () => { const wrapper = mount(BMedia, { slots: { default: 'foobar' @@ -97,7 +88,7 @@ describe('media', () => { wrapper.destroy() }) - it('does not have child media-body is prop no-body set', async () => { + it('does not have child `media-body` when prop `no-body` set', async () => { const wrapper = mount(BMedia, { propsData: { noBody: true @@ -109,13 +100,12 @@ describe('media', () => { expect(wrapper.classes().length).toBe(1) expect(wrapper.findAll('.media-body').length).toBe(0) expect(wrapper.text()).toEqual('') - // Should have no child elements expect(wrapper.findAll('.media > *').length).toBe(0) wrapper.destroy() }) - it('places default slot inside self when no-body set', async () => { + it('places default slot inside self when `no-body` set', async () => { const wrapper = mount(BMedia, { propsData: { noBody: true @@ -134,7 +124,7 @@ describe('media', () => { wrapper.destroy() }) - it('sets verticalAlign prop on media-aside child', async () => { + it('sets `vertical-align` prop on `media-aside` child', async () => { const wrapper = mount(BMedia, { propsData: { verticalAlign: 'bottom' @@ -148,14 +138,11 @@ describe('media', () => { expect(wrapper.classes()).toContain('media') expect(wrapper.classes().length).toBe(1) expect(wrapper.findAll('.media-body').length).toBe(1) - expect(wrapper.findAll('.d-flex').length).toBe(1) + expect(wrapper.findAll('.media-aside').length).toBe(1) expect(wrapper.text()).toEqual('foobar') - // Should have only two child elements expect(wrapper.findAll('.media > *').length).toBe(2) - // Should have media aside with self align bottom - expect(wrapper.find('.d-flex').classes()).toContain('align-self-end') - // Should have content in aside - expect(wrapper.find('.d-flex').text()).toEqual('foobar') + expect(wrapper.find('.media-aside').classes()).toContain('align-self-end') + expect(wrapper.find('.media-aside').text()).toEqual('foobar') wrapper.destroy() }) diff --git a/src/components/media/package.json b/src/components/media/package.json index 8f5cacd2845..4e7795240c5 100644 --- a/src/components/media/package.json +++ b/src/components/media/package.json @@ -24,13 +24,17 @@ "slots": [ { "name": "aside", - "description": "Media Aside" + "description": "Media aside" } ] }, { "component": "BMediaAside", "props": [ + { + "prop": "right", + "description": "Position the 'aside' on the right. Default is on the left" + }, { "prop": "verticalAlign", "description": "Vertical alignment of the aside: 'start' (or 'top'), 'center', or 'end' (or 'bottom')" From 0e225406c8498e6e25f60205b8c5a84721601180 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2020 13:53:05 +0100 Subject: [PATCH 019/378] chore(deps): update devdependency execa to ^4.1.0 (#5976) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fa7693a56bc..25b9e56a562 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "eslint-plugin-standard": "^4.0.2", "eslint-plugin-vue": "^7.1.0", "esm": "^3.2.25", - "execa": "^4.0.3", + "execa": "^4.1.0", "highlight.js": "^9.18.2", "html-loader": "^1.3.2", "husky": "^4.3.0", diff --git a/yarn.lock b/yarn.lock index f67f3c253d3..0778889c7ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5866,6 +5866,21 @@ execa@^4.0.0, execa@^4.0.3: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" From ecb33bdb510832096bc5a5196a11c97388bf6411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20M=C3=BCller?= Date: Wed, 28 Oct 2020 16:56:18 +0100 Subject: [PATCH 020/378] fix(b-avatar): badge `z-index` handling (#5975) --- src/components/avatar/README.md | 4 ++-- src/components/avatar/_avatar.scss | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/avatar/README.md b/src/components/avatar/README.md index ec75687b3a5..1cb36052333 100644 --- a/src/components/avatar/README.md +++ b/src/components/avatar/README.md @@ -236,7 +236,7 @@ When set to `true` (or the empty string `''`), it uses the Bootstrap default of ```html + + +

+ Selected: {{ selected }}
+ All Selected: {{ allSelected }}
+ Indeterminate: {{ indeterminate }} +
From c11f0db211aa2c45209a4081ae4e02337ec55015 Mon Sep 17 00:00:00 2001 From: William <82436358+ochowei@users.noreply.github.com> Date: Sat, 18 Dec 2021 21:38:14 +0800 Subject: [PATCH 342/378] fix(b-table): fix range selection of b-table (#6606) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jacob Müller Co-authored-by: Illya Klymov --- src/components/table/helpers/mixin-selectable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/table/helpers/mixin-selectable.js b/src/components/table/helpers/mixin-selectable.js index b30806497aa..5629caf4fcc 100644 --- a/src/components/table/helpers/mixin-selectable.js +++ b/src/components/table/helpers/mixin-selectable.js @@ -231,7 +231,7 @@ export const selectableMixin = Vue.extend({ selectedRows = [] selected = true } - this.selectedLastRow = selected ? index : -1 + if (selected) this.selectedLastRow = index } } selectedRows[index] = selected From 17ea50f1b5312a837377220444be9d54e9973be5 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sat, 18 Dec 2021 15:31:01 +0200 Subject: [PATCH 343/378] chore(tests): introduce tests for #6397 --- src/components/table/table-selectable.spec.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/components/table/table-selectable.spec.js b/src/components/table/table-selectable.spec.js index d5eb54c5703..ecb9e45ce42 100644 --- a/src/components/table/table-selectable.spec.js +++ b/src/components/table/table-selectable.spec.js @@ -560,6 +560,33 @@ describe('table > row select', () => { wrapper.destroy() }) + it('range selection works after deselection (issue #6397)', async () => { + const wrapper = mount(BTable, { + propsData: { + fields: testFields, + items: testItems, + selectable: true, + selectMode: 'range' + } + }) + + expect(wrapper).toBeDefined() + await waitNT(wrapper.vm) + + const $rows = wrapper.findAll('tbody > tr') + // Click second row + await $rows.at(1).trigger('click') + // Ctrl-click first row + await $rows.at(0).trigger('click', { ctrlKey: true }) + // Ctrl-click second row + await $rows.at(1).trigger('click', { ctrlKey: true }) + // Shift-click third row + await $rows.at(2).trigger('click', { shiftKey: true }) + + expect(wrapper.findAll('tbody .b-table-row-selected')).toHaveLength(3) + wrapper.destroy() + }) + it('sort change clears selection', async () => { const wrapper = mount(BTable, { propsData: { From 7ad43e189ac46a62cd3f67d7d548df099d297675 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sat, 6 Nov 2021 13:40:17 +0200 Subject: [PATCH 344/378] chore(compat): remove toBeInstanceOf assertions for Vue components Vue3 compat build wraps component and transforms them. In order to mitigate this, replace `toBeInstanceOf` assertions with check of component name --- src/directives/popover/popover.spec.js | 4 ++-- src/directives/tooltip/tooltip.spec.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/directives/popover/popover.spec.js b/src/directives/popover/popover.spec.js index 5a29b15d4e0..bd5bd7d018d 100644 --- a/src/directives/popover/popover.spec.js +++ b/src/directives/popover/popover.spec.js @@ -71,7 +71,7 @@ describe('v-b-popover directive', () => { // Should have instance of popover class on it expect($button.element[BV_POPOVER]).toBeDefined() - expect($button.element[BV_POPOVER]).toBeInstanceOf(BVPopover) + expect($button.element[BV_POPOVER].$options.name).toBe('BVPopover') wrapper.destroy() }) @@ -105,7 +105,7 @@ describe('v-b-popover directive', () => { // Should have instance of popover class on it expect($button.element[BV_POPOVER]).toBeDefined() - expect($button.element[BV_POPOVER]).toBeInstanceOf(BVPopover) + expect($button.element[BV_POPOVER].$options.name).toBe('BVPopover') expect($button.attributes('aria-describedby')).toBeUndefined() diff --git a/src/directives/tooltip/tooltip.spec.js b/src/directives/tooltip/tooltip.spec.js index db945ef009a..ecb8dd7ae13 100644 --- a/src/directives/tooltip/tooltip.spec.js +++ b/src/directives/tooltip/tooltip.spec.js @@ -71,7 +71,7 @@ describe('v-b-tooltip directive', () => { // Should have instance of popover class on it expect($button.element[BV_TOOLTIP]).toBeDefined() - expect($button.element[BV_TOOLTIP]).toBeInstanceOf(BVTooltip) + expect($button.element[BV_TOOLTIP].$options.name).toBe('BVTooltip') wrapper.destroy() }) @@ -106,7 +106,7 @@ describe('v-b-tooltip directive', () => { // Should have instance of popover class on it expect($button.element[BV_TOOLTIP]).toBeDefined() - expect($button.element[BV_TOOLTIP]).toBeInstanceOf(BVTooltip) + expect($button.element[BV_TOOLTIP].$options.name).toBe('BVTooltip') expect($button.attributes('aria-describedby')).toBeUndefined() @@ -158,7 +158,7 @@ describe('v-b-tooltip directive', () => { // Should have instance of popover class on it expect($button.element[BV_TOOLTIP]).toBeDefined() - expect($button.element[BV_TOOLTIP]).toBeInstanceOf(BVTooltip) + expect($button.element[BV_TOOLTIP].$options.name).toBe('BVTooltip') expect($button.attributes('aria-describedby')).toBeUndefined() From d113cc7ee2653b8e6f4b0450a7ee5fdaa9f61941 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sat, 6 Nov 2021 00:44:29 +0200 Subject: [PATCH 345/378] chore(tests): remove createContainer helper createContainer function is now implemented by VTU mimicking this behaviour when you pass `attachTo: document.body` --- .../button-toolbar/button-toolbar.spec.js | 8 +-- src/components/calendar/calendar.spec.js | 28 ++++---- src/components/carousel/carousel.spec.js | 38 +++++------ src/components/collapse/collapse.spec.js | 28 ++++---- src/components/dropdown/dropdown-item.spec.js | 4 +- src/components/dropdown/dropdown.spec.js | 68 +++++++++---------- .../form-checkbox/form-checkbox-group.spec.js | 58 ++++++++-------- .../form-checkbox/form-checkbox.spec.js | 16 ++--- .../form-datepicker/form-datepicker.spec.js | 26 +++---- src/components/form-file/form-file.spec.js | 6 +- src/components/form-group/form-group.spec.js | 4 +- src/components/form-input/form-input.spec.js | 32 ++++----- .../form-radio/form-radio-group.spec.js | 46 ++++++------- src/components/form-radio/form-radio.spec.js | 14 ++-- .../form-rating/form-rating.spec.js | 4 +- .../form-select/form-select.spec.js | 8 +-- .../form-spinbutton/form-spinbutton.spec.js | 10 +-- src/components/form-tags/form-tags.spec.js | 10 +-- .../form-textarea/form-textarea.spec.js | 46 ++++++------- .../form-timepicker/form-timepicker.spec.js | 18 ++--- src/components/image/img-lazy.spec.js | 8 +-- src/components/link/link.spec.js | 5 +- src/components/modal/helpers/bv-modal.spec.js | 8 +-- src/components/modal/modal.spec.js | 58 ++++++++-------- src/components/overlay/overlay.spec.js | 4 +- src/components/pagination/pagination.spec.js | 8 +-- src/components/popover/popover.spec.js | 6 +- src/components/sidebar/sidebar.spec.js | 26 +++---- src/components/table/table-provider.spec.js | 4 +- .../table/table-tbody-row-events.spec.js | 8 +-- .../table/table-tbody-transition.spec.js | 7 +- src/components/time/time.spec.js | 10 +-- src/components/toast/helpers/bv-toast.spec.js | 6 +- src/components/toast/toast.spec.js | 16 ++--- src/components/toast/toaster.spec.js | 6 +- src/components/tooltip/tooltip.spec.js | 43 ++++++------ .../transporter/transporter.spec.js | 6 +- src/directives/popover/popover.spec.js | 6 +- src/directives/tooltip/tooltip.spec.js | 10 +-- src/mixins/click-out.spec.js | 4 +- src/mixins/focus-in.spec.js | 4 +- src/mixins/listen-on-document.spec.js | 3 +- src/mixins/listen-on-window.spec.js | 3 +- src/mixins/listeners.spec.js | 5 +- src/utils/dom.spec.js | 23 +++---- tests/utils.js | 6 -- 46 files changed, 376 insertions(+), 389 deletions(-) diff --git a/src/components/button-toolbar/button-toolbar.spec.js b/src/components/button-toolbar/button-toolbar.spec.js index cecaa82c2be..01b27e50063 100644 --- a/src/components/button-toolbar/button-toolbar.spec.js +++ b/src/components/button-toolbar/button-toolbar.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BButton } from '../button/button' import { BButtonGroup } from '../button-group/button-group' import { BButtonToolbar } from './button-toolbar' @@ -93,7 +93,7 @@ describe('button-toolbar', () => { it('has correct structure', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) @@ -150,7 +150,7 @@ describe('button-toolbar', () => { it('focuses first button when tabbed into', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) @@ -173,7 +173,7 @@ describe('button-toolbar', () => { it('keyboard navigation works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) diff --git a/src/components/calendar/calendar.spec.js b/src/components/calendar/calendar.spec.js index 2878cf2dbc4..ba42e99742d 100644 --- a/src/components/calendar/calendar.spec.js +++ b/src/components/calendar/calendar.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BCalendar } from './calendar' import { formatYMD } from '../../utils/date' @@ -8,7 +8,7 @@ import { formatYMD } from '../../utils/date' describe('calendar', () => { it('has expected base structure', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -42,7 +42,7 @@ describe('calendar', () => { it('has expected structure when value is set', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-02-15' // Leap year } @@ -62,7 +62,7 @@ describe('calendar', () => { it('reacts to changes in value', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-01-01' // Leap year } @@ -88,7 +88,7 @@ describe('calendar', () => { it('clicking a date selects date', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-01-01' // Leap year } @@ -122,7 +122,7 @@ describe('calendar', () => { it('date navigation buttons work', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { showDecadeNav: true, value: '2020-02-15' // Leap year @@ -178,7 +178,7 @@ describe('calendar', () => { it('focus and blur methods work', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-02-15' // Leap year } @@ -211,7 +211,7 @@ describe('calendar', () => { it('clicking output header focuses grid', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-02-15' // Leap year } @@ -246,7 +246,7 @@ describe('calendar', () => { it('has correct header tag when "header-tag" prop is set', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-02-15', // Leap year, headerTag: 'div' @@ -266,7 +266,7 @@ describe('calendar', () => { it('keyboard navigation works', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-02-15' // Leap year } @@ -362,7 +362,7 @@ describe('calendar', () => { it('should disable key navigation when `no-key-nav` prop set', () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noKeyNav: true, navButtonVariant: 'primary' @@ -381,7 +381,7 @@ describe('calendar', () => { it('`nav-button-variant` changes nav button class', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { navButtonVariant: 'primary' } @@ -400,7 +400,7 @@ describe('calendar', () => { it('disables dates based on `date-disabled-fn` prop', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-01-01', dateDisabledFn(ymd) { @@ -433,7 +433,7 @@ describe('calendar', () => { it('applies classes on dates based on `date-info-fn` prop', async () => { const wrapper = mount(BCalendar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '2020-01-01', dateInfoFn(ymd) { diff --git a/src/components/carousel/carousel.spec.js b/src/components/carousel/carousel.spec.js index 42ce713c8ab..2276a66cec5 100644 --- a/src/components/carousel/carousel.spec.js +++ b/src/components/carousel/carousel.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BCarousel } from './carousel' import { BCarouselSlide } from './carousel-slide' @@ -34,7 +34,7 @@ const App = { describe('carousel', () => { it('has expected default structure', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -101,7 +101,7 @@ describe('carousel', () => { it('has prev/next controls when prop controls is set', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer(), + attachTo: document.body, propsData: { controls: true } @@ -164,7 +164,7 @@ describe('carousel', () => { it('has indicators showing when prop indicators is set', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer(), + attachTo: document.body, propsData: { indicators: true } @@ -211,7 +211,7 @@ describe('carousel', () => { it('should have class "carousel-fade" when prop "fade" is "true"', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer(), + attachTo: document.body, propsData: { fade: true } @@ -230,7 +230,7 @@ describe('carousel', () => { it('should not have class "fade" or "slide" when prop "no-animation" is "true"', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noAnimation: true } @@ -249,7 +249,7 @@ describe('carousel', () => { it('should not have class "fade" or "slide" when prop "no-animation" and "fade" are "true"', async () => { const wrapper = mount(BCarousel, { - attachTo: createContainer(), + attachTo: document.body, propsData: { fade: true, noAnimation: true @@ -269,7 +269,7 @@ describe('carousel', () => { it('should not automatically scroll to next slide when "interval" is "0"', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0 } @@ -296,7 +296,7 @@ describe('carousel', () => { it('should scroll to next/prev slide when next/prev clicked', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, controls: true @@ -358,7 +358,7 @@ describe('carousel', () => { it('should scroll to next/prev slide when next/prev space keypress', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, controls: true @@ -420,7 +420,7 @@ describe('carousel', () => { it('should scroll to specified slide when indicator clicked', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, controls: true @@ -482,7 +482,7 @@ describe('carousel', () => { it('should scroll to specified slide when indicator keypress space/enter', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, controls: true @@ -544,7 +544,7 @@ describe('carousel', () => { it('should scroll to next/prev slide when key next/prev pressed', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, controls: true @@ -603,7 +603,7 @@ describe('carousel', () => { it('should emit paused and unpaused events when "interval" changed to 0', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0 } @@ -682,7 +682,7 @@ describe('carousel', () => { it('should scroll to specified slide when value (v-model) changed', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, value: 0 @@ -761,7 +761,7 @@ describe('carousel', () => { it('changing slides works when "no-animation" set', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, noAnimation: true @@ -825,7 +825,7 @@ describe('carousel', () => { it('setting new slide when sliding is active, schedules the new slide to happen after finished', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0 } @@ -902,7 +902,7 @@ describe('carousel', () => { it('next/prev slide wraps to end/start when "no-wrap is "false"', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, noAnimation: true, @@ -967,7 +967,7 @@ describe('carousel', () => { it('next/prev slide does not wrap to end/start when "no-wrap" is "true"', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { interval: 0, // Transitions (or fallback timers) are not used when no-animation set diff --git a/src/components/collapse/collapse.spec.js b/src/components/collapse/collapse.spec.js index eb80e72b10f..dfffbefab18 100644 --- a/src/components/collapse/collapse.spec.js +++ b/src/components/collapse/collapse.spec.js @@ -1,5 +1,5 @@ import { createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BCollapse } from './collapse' const ROOT_ACTION_EVENT_NAME_REQUEST_STATE = 'bv::request-state::collapse' @@ -32,7 +32,7 @@ describe('collapse', () => { it('should have expected default structure', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test' @@ -56,7 +56,7 @@ describe('collapse', () => { it('should have expected structure when prop is-nav is set', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -81,7 +81,7 @@ describe('collapse', () => { it('renders default slot content', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test' @@ -107,7 +107,7 @@ describe('collapse', () => { it('should mount as visible when prop visible is true', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -134,7 +134,7 @@ describe('collapse', () => { it('should emit its state on mount (initially hidden)', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test' @@ -162,7 +162,7 @@ describe('collapse', () => { it('should emit its state on mount (initially visible)', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -191,7 +191,7 @@ describe('collapse', () => { it('should respond to state sync requests', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -229,7 +229,7 @@ describe('collapse', () => { it('setting visible to true after mount shows collapse', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -274,7 +274,7 @@ describe('collapse', () => { it('should respond to according events', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', @@ -391,7 +391,7 @@ describe('collapse', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -447,7 +447,7 @@ describe('collapse', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -477,7 +477,7 @@ describe('collapse', () => { it('should not respond to root toggle event that does not match ID', async () => { const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test' @@ -508,7 +508,7 @@ describe('collapse', () => { it('default slot scope works', async () => { let scope = null const wrapper = mount(BCollapse, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // 'id' is a required prop id: 'test', diff --git a/src/components/dropdown/dropdown-item.spec.js b/src/components/dropdown/dropdown-item.spec.js index 797fc303399..426f9fabc57 100644 --- a/src/components/dropdown/dropdown-item.spec.js +++ b/src/components/dropdown/dropdown-item.spec.js @@ -1,6 +1,6 @@ import VueRouter from 'vue-router' import { createLocalVue, mount } from '@vue/test-utils' -import { createContainer, waitRAF } from '../../../tests/utils' +import { waitRAF } from '../../../tests/utils' import { BDropdownItem } from './dropdown-item' describe('dropdown-item', () => { @@ -125,7 +125,7 @@ describe('dropdown-item', () => { const wrapper = mount(App, { localVue, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/components/dropdown/dropdown.spec.js b/src/components/dropdown/dropdown.spec.js index d0f52380c46..060abb85224 100644 --- a/src/components/dropdown/dropdown.spec.js +++ b/src/components/dropdown/dropdown.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BDropdown } from './dropdown' import { BDropdownItem } from './dropdown-item' @@ -40,7 +40,7 @@ describe('dropdown', () => { it('has expected default structure', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.tagName).toBe('DIV') @@ -87,7 +87,7 @@ describe('dropdown', () => { it('split mode has expected default structure', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true } @@ -153,7 +153,7 @@ describe('dropdown', () => { it('split mode accepts split-button-type value', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, splitButtonType: 'submit' @@ -183,7 +183,7 @@ describe('dropdown', () => { it('renders default slot inside menu', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, slots: { default: 'foobar' } @@ -201,7 +201,7 @@ describe('dropdown', () => { it('renders button-content slot inside toggle button', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, slots: { 'button-content': 'foobar' } @@ -220,7 +220,7 @@ describe('dropdown', () => { it('renders button-content slot inside split button', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true }, @@ -247,7 +247,7 @@ describe('dropdown', () => { it('does not render default slot inside menu when prop lazy set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { lazy: true }, @@ -268,7 +268,7 @@ describe('dropdown', () => { it('has user supplied ID', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test' } @@ -295,7 +295,7 @@ describe('dropdown', () => { it('should not have "btn-group" class when block is true', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { block: true } @@ -308,7 +308,7 @@ describe('dropdown', () => { it('should have "btn-group" and "d-flex" classes when block and split are true', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { block: true, split: true @@ -323,7 +323,7 @@ describe('dropdown', () => { it('should have "dropdown-toggle-no-caret" class when no-caret is true', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noCaret: true } @@ -336,7 +336,7 @@ describe('dropdown', () => { it('should not have "dropdown-toggle-no-caret" class when no-caret and split are true', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noCaret: true, split: true @@ -350,7 +350,7 @@ describe('dropdown', () => { it('should have a toggle with the given toggle tag', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { toggleTag: 'div' } @@ -363,7 +363,7 @@ describe('dropdown', () => { it('should have attributes on toggle when "toggle-attrs" prop is set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { toggleAttrs: { 'data-foo-bar': 'foo-bar' } } @@ -376,7 +376,7 @@ describe('dropdown', () => { it('should have class dropup when prop dropup set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { dropup: true } @@ -401,7 +401,7 @@ describe('dropdown', () => { it('should have class dropright when prop dropright set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { dropright: true } @@ -426,7 +426,7 @@ describe('dropdown', () => { it('should have class dropleft when prop dropleft set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { dropleft: true } @@ -452,7 +452,7 @@ describe('dropdown', () => { it('split should have class specified in split class property', () => { const splitClass = 'custom-button-class' const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { splitClass, split: true @@ -468,7 +468,7 @@ describe('dropdown', () => { it('menu should have class dropdown-menu-right when prop right set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { right: true } @@ -493,7 +493,7 @@ describe('dropdown', () => { it('split mode emits click event when split button clicked', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true } @@ -531,7 +531,7 @@ describe('dropdown', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -731,7 +731,7 @@ describe('dropdown', () => { it('preventDefault() works on show event', async () => { let prevent = true const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, listeners: { show: bvEvent => { if (prevent) { @@ -800,7 +800,7 @@ describe('dropdown', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -900,7 +900,7 @@ describe('dropdown', () => { it('when boundary not set should not have class position-static', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.tagName).toBe('DIV') expect(wrapper.vm).toBeDefined() @@ -911,7 +911,7 @@ describe('dropdown', () => { it('when boundary set to viewport should have class position-static', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { boundary: 'viewport' } @@ -925,7 +925,7 @@ describe('dropdown', () => { it('toggle button size works', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { size: 'lg' } @@ -945,7 +945,7 @@ describe('dropdown', () => { it('split button size works', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, size: 'lg' @@ -969,7 +969,7 @@ describe('dropdown', () => { it('toggle button content works', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { text: 'foobar' } @@ -989,7 +989,7 @@ describe('dropdown', () => { it('split button content works', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, text: 'foobar' @@ -1010,7 +1010,7 @@ describe('dropdown', () => { it('variant works on non-split button', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { variant: 'primary' } @@ -1031,7 +1031,7 @@ describe('dropdown', () => { it('variant works on split button', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, variant: 'primary' @@ -1065,7 +1065,7 @@ describe('dropdown', () => { it('split mode has href when prop split-href set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, splitHref: '/foo' @@ -1093,7 +1093,7 @@ describe('dropdown', () => { it('split mode has href when prop split-to set', async () => { const wrapper = mount(BDropdown, { - attachTo: createContainer(), + attachTo: document.body, propsData: { split: true, splitTo: '/foo' diff --git a/src/components/form-checkbox/form-checkbox-group.spec.js b/src/components/form-checkbox/form-checkbox-group.spec.js index ae8af4eceb7..40f32d55abd 100644 --- a/src/components/form-checkbox/form-checkbox-group.spec.js +++ b/src/components/form-checkbox/form-checkbox-group.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BFormCheckboxGroup } from './form-checkbox-group' import { BFormCheckbox } from './form-checkbox' @@ -29,7 +29,7 @@ describe('form-checkbox-group', () => { it('default has auto ID set', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) @@ -76,7 +76,7 @@ describe('form-checkbox-group', () => { it('default has user provided ID', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test' } @@ -90,7 +90,7 @@ describe('form-checkbox-group', () => { it('default has class was-validated when validated=true', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { validated: true } @@ -104,7 +104,7 @@ describe('form-checkbox-group', () => { it('default has attribute aria-invalid=true when state=false', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: false } @@ -118,7 +118,7 @@ describe('form-checkbox-group', () => { it('default does not have attribute aria-invalid when state=true', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: true } @@ -131,7 +131,7 @@ describe('form-checkbox-group', () => { it('default does not have attribute aria-invalid when state=null', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: null } @@ -144,7 +144,7 @@ describe('form-checkbox-group', () => { it('default has attribute aria-invalid=true when aria-invalid=true', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: true } @@ -158,7 +158,7 @@ describe('form-checkbox-group', () => { it('default has attribute aria-invalid=true when aria-invalid="true"', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: 'true' } @@ -172,7 +172,7 @@ describe('form-checkbox-group', () => { it('default has attribute aria-invalid=true when aria-invalid=""', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: '' } @@ -186,7 +186,7 @@ describe('form-checkbox-group', () => { it('has checkboxes with input validation class "is-valid" when `state` is `true`', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -204,7 +204,7 @@ describe('form-checkbox-group', () => { it('has checkboxes with input validation class "is-invalid" when `state` is `false`', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -222,7 +222,7 @@ describe('form-checkbox-group', () => { it('has checkboxes with no input validation class when `state` is `null`', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -242,7 +242,7 @@ describe('form-checkbox-group', () => { it('button mode has classes button-group and button-group-toggle', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true } @@ -259,7 +259,7 @@ describe('form-checkbox-group', () => { it('button mode has classes button-group-vertical and button-group-toggle when stacked=true', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, stacked: true @@ -277,7 +277,7 @@ describe('form-checkbox-group', () => { it('button mode has size class when size prop set', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, size: 'lg' @@ -296,7 +296,7 @@ describe('form-checkbox-group', () => { it('button mode has size class when size prop set and stacked', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, stacked: true, @@ -336,7 +336,7 @@ describe('form-checkbox-group', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -358,7 +358,7 @@ describe('form-checkbox-group', () => { it('has checkboxes via options array', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: [] @@ -377,7 +377,7 @@ describe('form-checkbox-group', () => { it('has checkboxes via options array which respect disabled', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: [{ text: 'one' }, { text: 'two' }, { text: 'three', disabled: true }], checked: [] @@ -399,7 +399,7 @@ describe('form-checkbox-group', () => { it('emits change event when checkbox clicked', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: [] @@ -448,7 +448,7 @@ describe('form-checkbox-group', () => { it('does not emit "input" event when value loosely changes', async () => { const value = ['one', 'two', 'three'] const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: value.slice(), checked: value.slice() @@ -497,7 +497,7 @@ describe('form-checkbox-group', () => { it('checkboxes reflect group checked v-model', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: ['two'] @@ -526,7 +526,7 @@ describe('form-checkbox-group', () => { it('child checkboxes have is-valid classes when group state set to valid', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: [], @@ -547,7 +547,7 @@ describe('form-checkbox-group', () => { it('child checkboxes have is-invalid classes when group state set to invalid', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: [], @@ -566,7 +566,7 @@ describe('form-checkbox-group', () => { it('child checkboxes have disabled attribute when group disabled', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: [], @@ -585,7 +585,7 @@ describe('form-checkbox-group', () => { it('child checkboxes have required attribute when group required', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { name: 'group', options: ['one', 'two', 'three'], @@ -606,7 +606,7 @@ describe('form-checkbox-group', () => { it('child checkboxes have class custom-control-inline when stacked=false', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { name: 'group', options: ['one', 'two', 'three'], @@ -624,7 +624,7 @@ describe('form-checkbox-group', () => { it('child checkboxes do not have class custom-control-inline when stacked=true', async () => { const wrapper = mount(BFormCheckboxGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { name: 'group', options: ['one', 'two', 'three'], diff --git a/src/components/form-checkbox/form-checkbox.spec.js b/src/components/form-checkbox/form-checkbox.spec.js index 36a14809d83..1e42d55ef3a 100644 --- a/src/components/form-checkbox/form-checkbox.spec.js +++ b/src/components/form-checkbox/form-checkbox.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormCheckbox } from './form-checkbox' describe('form-checkbox', () => { @@ -856,7 +856,7 @@ describe('form-checkbox', () => { it('stand-alone button has label class focus when input focused', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { button: true, checked: '', @@ -1095,7 +1095,7 @@ describe('form-checkbox', () => { it('emits a change event when clicked', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { uncheckedValue: 'foo', value: 'bar' @@ -1128,7 +1128,7 @@ describe('form-checkbox', () => { it('works when v-model bound to an array', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: 'bar', checked: ['foo'] @@ -1190,7 +1190,7 @@ describe('form-checkbox', () => { it('works when value is an object', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: { bar: 1, baz: 2 }, checked: ['foo'] @@ -1225,7 +1225,7 @@ describe('form-checkbox', () => { it('focus() and blur() methods work', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false }, @@ -1282,7 +1282,7 @@ describe('form-checkbox', () => { it('works when true', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false, autofocus: true @@ -1306,7 +1306,7 @@ describe('form-checkbox', () => { it('does not auto focus when false', async () => { const wrapper = mount(BFormCheckbox, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false, autofocus: false diff --git a/src/components/form-datepicker/form-datepicker.spec.js b/src/components/form-datepicker/form-datepicker.spec.js index 300ece98659..3d44117133a 100644 --- a/src/components/form-datepicker/form-datepicker.spec.js +++ b/src/components/form-datepicker/form-datepicker.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormDatepicker } from './form-datepicker' // Note that JSDOM only supports `en-US` (`en`) locale for `Intl` @@ -29,7 +29,7 @@ describe('form-date', () => { it('has expected base structure', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-base' } @@ -72,7 +72,7 @@ describe('form-date', () => { it('has expected base structure in button-only mode', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-button-only', buttonOnly: true @@ -117,7 +117,7 @@ describe('form-date', () => { it('renders custom placeholder', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', placeholder: 'FOOBAR' @@ -139,7 +139,7 @@ describe('form-date', () => { it('renders hidden input when name prop is set', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', name: 'foobar' @@ -171,7 +171,7 @@ describe('form-date', () => { it('focus and blur methods work', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-focus-blur' @@ -206,7 +206,7 @@ describe('form-date', () => { it('hover works to change icons', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-hover' @@ -248,7 +248,7 @@ describe('form-date', () => { it('opens calendar when toggle button clicked', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-open' @@ -284,7 +284,7 @@ describe('form-date', () => { it('emits new value when date updated', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-emit-input' @@ -340,7 +340,7 @@ describe('form-date', () => { it('does not close popup when prop `no-close-on-select` is set', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-no-close', @@ -399,7 +399,7 @@ describe('form-date', () => { it('renders optional footer buttons', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-footer', value: '1900-01-01', @@ -476,7 +476,7 @@ describe('form-date', () => { it('prop reset-value works', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-reset', value: '2020-01-15', @@ -534,7 +534,7 @@ describe('form-date', () => { it('`button-content` static slot works', async () => { const wrapper = mount(BFormDatepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-button-slot', value: '2020-01-15' diff --git a/src/components/form-file/form-file.spec.js b/src/components/form-file/form-file.spec.js index d9a07714f1f..ed21e2fa366 100644 --- a/src/components/form-file/form-file.spec.js +++ b/src/components/form-file/form-file.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormFile } from './form-file' describe('form-file', () => { @@ -545,7 +545,7 @@ describe('form-file', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) const file = new File(['foo'], 'foo.txt', { @@ -741,7 +741,7 @@ describe('form-file', () => { it('works when true', async () => { const wrapper = mount(BFormFile, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: true } diff --git a/src/components/form-group/form-group.spec.js b/src/components/form-group/form-group.spec.js index 1f308ac5e6f..de0116a1dc3 100644 --- a/src/components/form-group/form-group.spec.js +++ b/src/components/form-group/form-group.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BCol } from '../layout/col' import { BFormGroup } from './form-group' @@ -448,7 +448,7 @@ describe('form-group', () => { it('clicking legend focuses input', async () => { const wrapper = mount(BFormGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'group-id', label: 'test' diff --git a/src/components/form-input/form-input.spec.js b/src/components/form-input/form-input.spec.js index 4dca3cf4f80..28b44084a4b 100644 --- a/src/components/form-input/form-input.spec.js +++ b/src/components/form-input/form-input.spec.js @@ -1,6 +1,6 @@ import Vue from 'vue' import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormInput } from './form-input' describe('form-input', () => { @@ -137,7 +137,7 @@ describe('form-input', () => { it('has safeId after mount when no id provided', async () => { const wrapper = mount(BFormInput, { - attachTo: createContainer() + attachTo: document.body }) // We need to wait a tick for `safeId` to be generated @@ -394,7 +394,7 @@ describe('form-input', () => { it('emits a native focus event', async () => { const spy = jest.fn() const wrapper = mount(BFormInput, { - attachTo: createContainer(), + attachTo: document.body, listeners: { focus: spy } @@ -434,7 +434,7 @@ describe('form-input', () => { return value.toLowerCase() } }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -460,7 +460,7 @@ describe('form-input', () => { }, lazyFormatter: true }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -488,7 +488,7 @@ describe('form-input', () => { }, lazyFormatter: true }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -524,7 +524,7 @@ describe('form-input', () => { return String(value).toLowerCase() } }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -545,7 +545,7 @@ describe('form-input', () => { return value.toLowerCase() } }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -569,7 +569,7 @@ describe('form-input', () => { }, lazyFormatter: true }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -592,7 +592,7 @@ describe('form-input', () => { return false } }, - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -622,7 +622,7 @@ describe('form-input', () => { listeners: { blur: spy }, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.type).toBe('number') @@ -649,7 +649,7 @@ describe('form-input', () => { listeners: { blur: spy }, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.type).toBe('number') @@ -670,7 +670,7 @@ describe('form-input', () => { it('changing no-wheel after mount works', async () => { const spy = jest.fn(() => {}) const wrapper = mount(BFormInput, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noWheel: false, type: 'number', @@ -905,7 +905,7 @@ describe('form-input', () => { it('focus() and blur() methods work', async () => { const wrapper = mount(BFormInput, { - attachTo: createContainer() + attachTo: document.body }) const $input = wrapper.find('input') @@ -945,7 +945,7 @@ describe('form-input', () => { it('works when true', async () => { const wrapper = mount(BFormInput, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: true } @@ -965,7 +965,7 @@ describe('form-input', () => { it('does not autofocus when false', async () => { const wrapper = mount(BFormInput, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: false } diff --git a/src/components/form-radio/form-radio-group.spec.js b/src/components/form-radio/form-radio-group.spec.js index d01badb6a79..6e5f3f070ba 100644 --- a/src/components/form-radio/form-radio-group.spec.js +++ b/src/components/form-radio/form-radio-group.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BFormRadioGroup } from './form-radio-group' import { BFormRadio } from './form-radio' @@ -26,7 +26,7 @@ describe('form-radio-group', () => { it('default has auto ID set', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) // Auto ID not generated until after mount @@ -67,7 +67,7 @@ describe('form-radio-group', () => { it('default has user provided ID', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test' } @@ -80,7 +80,7 @@ describe('form-radio-group', () => { it('default has class was-validated when validated=true', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { validated: true } @@ -93,7 +93,7 @@ describe('form-radio-group', () => { it('default has attribute aria-invalid=true when state=false', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: false } @@ -106,7 +106,7 @@ describe('form-radio-group', () => { it('default does not have attribute aria-invalid when state=true', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: true } @@ -118,7 +118,7 @@ describe('form-radio-group', () => { it('default does not have attribute aria-invalid when state=null', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { state: null } @@ -130,7 +130,7 @@ describe('form-radio-group', () => { it('default has attribute aria-invalid=true when aria-invalid=true', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: true } @@ -143,7 +143,7 @@ describe('form-radio-group', () => { it('default has attribute aria-invalid=true when aria-invalid="true"', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: 'true' } @@ -156,7 +156,7 @@ describe('form-radio-group', () => { it('default has attribute aria-invalid=true when aria-invalid=""', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { ariaInvalid: '' } @@ -169,7 +169,7 @@ describe('form-radio-group', () => { it('has radios with input validation class "is-valid" when `state` is `true`', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -187,7 +187,7 @@ describe('form-radio-group', () => { it('has radios with input validation class "is-invalid" when `state` is `false`', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -205,7 +205,7 @@ describe('form-radio-group', () => { it('has radios with no input validation class when `state` is `null`', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -225,7 +225,7 @@ describe('form-radio-group', () => { it('button mode has classes button-group and button-group-toggle', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true } @@ -241,7 +241,7 @@ describe('form-radio-group', () => { it('button mode has classes button-group-vertical and button-group-toggle when stacked=true', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, stacked: true @@ -258,7 +258,7 @@ describe('form-radio-group', () => { it('button mode has size class when size prop set', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, size: 'lg' @@ -276,7 +276,7 @@ describe('form-radio-group', () => { it('button mode has size class when size prop set and stacked', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { buttons: true, stacked: true, @@ -315,7 +315,7 @@ describe('form-radio-group', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() await waitNT(wrapper.vm) @@ -336,7 +336,7 @@ describe('form-radio-group', () => { it('has radios via options array', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '' @@ -355,7 +355,7 @@ describe('form-radio-group', () => { it('has radios via options array which respect disabled', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: [{ text: 'one' }, { text: 'two' }, { text: 'three', disabled: true }], checked: '' @@ -375,7 +375,7 @@ describe('form-radio-group', () => { it('has radios with attribute required when prop required set', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '', @@ -400,7 +400,7 @@ describe('form-radio-group', () => { it('emits change event when radio clicked', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: '' @@ -439,7 +439,7 @@ describe('form-radio-group', () => { it('radios reflect group checked v-model', async () => { const wrapper = mount(BFormRadioGroup, { - attachTo: createContainer(), + attachTo: document.body, propsData: { options: ['one', 'two', 'three'], checked: 'two' diff --git a/src/components/form-radio/form-radio.spec.js b/src/components/form-radio/form-radio.spec.js index 469e7802a07..fc596d83512 100644 --- a/src/components/form-radio/form-radio.spec.js +++ b/src/components/form-radio/form-radio.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormRadio } from './form-radio' describe('form-radio', () => { @@ -677,7 +677,7 @@ describe('form-radio', () => { it('stand-alone button has label class focus when input focused', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { button: true, checked: '', @@ -797,7 +797,7 @@ describe('form-radio', () => { it('emits a change event when clicked', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: '', value: 'bar' @@ -825,7 +825,7 @@ describe('form-radio', () => { it('works when value is an object', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: { bar: 1, baz: 2 }, checked: '' @@ -850,7 +850,7 @@ describe('form-radio', () => { it('focus() and blur() methods work', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false }, @@ -906,7 +906,7 @@ describe('form-radio', () => { it('works when true', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false, autofocus: true @@ -929,7 +929,7 @@ describe('form-radio', () => { it('does not autofocus by default', async () => { const wrapper = mount(BFormRadio, { - attachTo: createContainer(), + attachTo: document.body, propsData: { checked: false }, diff --git a/src/components/form-rating/form-rating.spec.js b/src/components/form-rating/form-rating.spec.js index a55ea3eef3d..197a38e1ada 100644 --- a/src/components/form-rating/form-rating.spec.js +++ b/src/components/form-rating/form-rating.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BFormRating } from './form-rating' describe('form-rating', () => { @@ -424,7 +424,7 @@ describe('form-rating', () => { it('focus and blur methods work', async () => { const wrapper = mount(BFormRating, { - attachTo: createContainer(), + attachTo: document.body, propsData: { locale: 'en', showValue: true, diff --git a/src/components/form-select/form-select.spec.js b/src/components/form-select/form-select.spec.js index 0e1411be37e..3ba6602692f 100644 --- a/src/components/form-select/form-select.spec.js +++ b/src/components/form-select/form-select.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormSelect } from './form-select' describe('form-select', () => { @@ -280,7 +280,7 @@ describe('form-select', () => { it('focus() and blur() methods work', async () => { const wrapper = mount(BFormSelect, { - attachTo: createContainer() + attachTo: document.body }) expect(document.activeElement).not.toBe(wrapper.element) @@ -752,7 +752,7 @@ describe('form-select', () => { it('works when true', async () => { const wrapper = mount(BFormSelect, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: true, options: ['a', 'b', 'c'] @@ -772,7 +772,7 @@ describe('form-select', () => { it('does not autofocus when false', async () => { const wrapper = mount(BFormSelect, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: false, options: ['a', 'b', 'c'] diff --git a/src/components/form-spinbutton/form-spinbutton.spec.js b/src/components/form-spinbutton/form-spinbutton.spec.js index aae2de3ddf2..687899843b4 100644 --- a/src/components/form-spinbutton/form-spinbutton.spec.js +++ b/src/components/form-spinbutton/form-spinbutton.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormSpinbutton } from './form-spinbutton' describe('form-spinbutton', () => { @@ -241,7 +241,7 @@ describe('form-spinbutton', () => { it('basic +/- buttons click', async () => { const wrapper = mount(BFormSpinbutton, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() await waitNT(wrapper.vm) @@ -384,7 +384,7 @@ describe('form-spinbutton', () => { it('basic keyboard control works', async () => { const wrapper = mount(BFormSpinbutton, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() await waitNT(wrapper.vm) @@ -489,7 +489,7 @@ describe('form-spinbutton', () => { it('auto repeat works', async () => { jest.useFakeTimers() const wrapper = mount(BFormSpinbutton, { - attachTo: createContainer(), + attachTo: document.body, propsData: { min: 1, max: 100, @@ -656,7 +656,7 @@ describe('form-spinbutton', () => { it('focus and blur handling works', async () => { const wrapper = mount(BFormSpinbutton, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() await waitNT(wrapper.vm) diff --git a/src/components/form-tags/form-tags.spec.js b/src/components/form-tags/form-tags.spec.js index d7fb650f47c..87a5018e10c 100644 --- a/src/components/form-tags/form-tags.spec.js +++ b/src/components/form-tags/form-tags.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormTags } from './form-tags' describe('form-tags', () => { @@ -663,7 +663,7 @@ describe('form-tags', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.tagName).toBe('FORM') @@ -709,7 +709,7 @@ describe('form-tags', () => { it('focuses input when wrapper div clicked', async () => { const wrapper = mount(BFormTags, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: ['apple', 'orange'] } @@ -759,7 +759,7 @@ describe('form-tags', () => { it('autofocus works', async () => { const wrapper = mount(BFormTags, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: true, value: ['apple', 'orange'] @@ -847,7 +847,7 @@ describe('form-tags', () => { const onFocus = jest.fn() const onBlur = jest.fn() const wrapper = mount(BFormTags, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: ['apple', 'orange'] }, diff --git a/src/components/form-textarea/form-textarea.spec.js b/src/components/form-textarea/form-textarea.spec.js index da4ac37bf5e..2156002438e 100644 --- a/src/components/form-textarea/form-textarea.spec.js +++ b/src/components/form-textarea/form-textarea.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormTextarea } from './form-textarea' describe('form-textarea', () => { @@ -330,7 +330,7 @@ describe('form-textarea', () => { it('emits a native focus event', async () => { const spy = jest.fn() const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, listeners: { focus: spy } @@ -436,7 +436,7 @@ describe('form-textarea', () => { it('does not have style resize by default', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.style).toBeDefined() @@ -447,7 +447,7 @@ describe('form-textarea', () => { it('does not have style resize when no-resize is set', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { noResize: true } @@ -461,7 +461,7 @@ describe('form-textarea', () => { it('does not have style resize when max-rows not set', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { rows: 10 } @@ -475,7 +475,7 @@ describe('form-textarea', () => { it('does not have style resize when max-rows less than rows', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { rows: 10, maxRows: 5 @@ -490,7 +490,7 @@ describe('form-textarea', () => { it('has style resize:none when max-rows greater than rows', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { rows: 2, maxRows: 5 @@ -506,7 +506,7 @@ describe('form-textarea', () => { it('does not have style height by default', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.style).toBeDefined() @@ -518,7 +518,7 @@ describe('form-textarea', () => { it('does not have style height when rows and max-rows equal', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { rows: 2, maxRows: 2 @@ -534,7 +534,7 @@ describe('form-textarea', () => { it('does not have style height when max-rows not set', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { rows: 5 } @@ -552,7 +552,7 @@ describe('form-textarea', () => { // // it('has style height when max-rows greater than rows', async () => { // const input = mount(BFormTextarea, { - // attachTo: createContainer(), + // attachTo: document.body, // propsData: { // rows: 2, // maxRows: 5 @@ -569,7 +569,7 @@ describe('form-textarea', () => { // // it('auto height should work', async () => { // const input = mount(BFormTextarea, { - // attachTo: createContainer(), + // attachTo: document.body, // propsData: { // value: '', // rows: 2, @@ -600,7 +600,7 @@ describe('form-textarea', () => { it('Formats on input when not lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', formatter(value) { @@ -628,7 +628,7 @@ describe('form-textarea', () => { it('Formats on change when not lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', formatter(value) { @@ -656,7 +656,7 @@ describe('form-textarea', () => { it('Formats on blur when lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { formatter(value) { return value.toLowerCase() @@ -712,7 +712,7 @@ describe('form-textarea', () => { it('Does not format value on mount when not lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: 'TEST', formatter(value) { @@ -731,7 +731,7 @@ describe('form-textarea', () => { it('Does not format value on mount when lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: 'TEST', formatter(value) { @@ -751,7 +751,7 @@ describe('form-textarea', () => { it('Does not format on prop "value" change when not lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', formatter(value) { @@ -776,7 +776,7 @@ describe('form-textarea', () => { it('does not format on value prop change when lazy', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', formatter(value) { @@ -803,7 +803,7 @@ describe('form-textarea', () => { it('trim modifier prop works', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', trim: true @@ -870,7 +870,7 @@ describe('form-textarea', () => { it('number modifier prop works', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', number: true @@ -959,7 +959,7 @@ describe('form-textarea', () => { it('works when true', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: true } @@ -979,7 +979,7 @@ describe('form-textarea', () => { it('does not autofocus when false', async () => { const wrapper = mount(BFormTextarea, { - attachTo: createContainer(), + attachTo: document.body, propsData: { autofocus: false } diff --git a/src/components/form-timepicker/form-timepicker.spec.js b/src/components/form-timepicker/form-timepicker.spec.js index ff42290c604..e73b68a285a 100644 --- a/src/components/form-timepicker/form-timepicker.spec.js +++ b/src/components/form-timepicker/form-timepicker.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BFormTimepicker } from './form-timepicker' // Note that JSDOM only supports `en-US` (`en`) locale for Intl @@ -29,7 +29,7 @@ describe('form-timepicker', () => { it('has expected default structure', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-base' } @@ -72,7 +72,7 @@ describe('form-timepicker', () => { it('has expected default structure when button-only is true', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-button-only', buttonOnly: true @@ -118,7 +118,7 @@ describe('form-timepicker', () => { it('renders hidden input when name prop is set', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', name: 'foobar', @@ -163,7 +163,7 @@ describe('form-timepicker', () => { it('renders placeholder text', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', hour12: false @@ -203,7 +203,7 @@ describe('form-timepicker', () => { it('focus and blur methods work', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-focus-blur' @@ -238,7 +238,7 @@ describe('form-timepicker', () => { it('hover works to change icons', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-hover' @@ -280,7 +280,7 @@ describe('form-timepicker', () => { it('opens calendar when toggle button clicked', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { value: '', id: 'test-open' @@ -411,7 +411,7 @@ describe('form-timepicker', () => { it('`button-content` static slot works', async () => { const wrapper = mount(BFormTimepicker, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-button-slot', showSeconds: true, diff --git a/src/components/image/img-lazy.spec.js b/src/components/image/img-lazy.spec.js index 8ef5f72bbb3..9064ce0b8e6 100644 --- a/src/components/image/img-lazy.spec.js +++ b/src/components/image/img-lazy.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BImgLazy } from './img-lazy' const src = 'https://picsum.photos/1024/400/?image=41' @@ -7,7 +7,7 @@ const src = 'https://picsum.photos/1024/400/?image=41' describe('img-lazy', () => { it('has root element "img"', async () => { const wrapper = mount(BImgLazy, { - attachTo: createContainer(), + attachTo: document.body, propsData: { src } @@ -19,7 +19,7 @@ describe('img-lazy', () => { it('is initially shown show prop is set', async () => { const wrapper = mount(BImgLazy, { - attachTo: createContainer(), + attachTo: document.body, propsData: { src, show: true @@ -35,7 +35,7 @@ describe('img-lazy', () => { it('shows when IntersectionObserver not supported', async () => { const wrapper = mount(BImgLazy, { - attachTo: createContainer(), + attachTo: document.body, propsData: { src, show: false diff --git a/src/components/link/link.spec.js b/src/components/link/link.spec.js index 34abc9f5793..782924edd95 100644 --- a/src/components/link/link.spec.js +++ b/src/components/link/link.spec.js @@ -1,6 +1,5 @@ import VueRouter from 'vue-router' import { createLocalVue, mount } from '@vue/test-utils' -import { createContainer } from '../../../tests/utils' import { BLink } from './link' describe('b-link', () => { @@ -182,7 +181,7 @@ describe('b-link', () => { it('focus and blur methods work', async () => { const wrapper = mount(BLink, { - attachTo: createContainer(), + attachTo: document.body, propsData: { href: '#foobar' } @@ -405,7 +404,7 @@ describe('b-link', () => { const wrapper = mount(App, { localVue, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/components/modal/helpers/bv-modal.spec.js b/src/components/modal/helpers/bv-modal.spec.js index 6c5ede4ec62..794da3c935e 100644 --- a/src/components/modal/helpers/bv-modal.spec.js +++ b/src/components/modal/helpers/bv-modal.spec.js @@ -1,5 +1,5 @@ import { config as vtuConfig, createLocalVue, createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../../tests/utils' +import { waitNT, waitRAF } from '../../../../tests/utils' import { TransitionStub } from '../../../../tests/components' import { ModalPlugin } from '../index' @@ -17,7 +17,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) @@ -65,7 +65,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) @@ -127,7 +127,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) diff --git a/src/components/modal/modal.spec.js b/src/components/modal/modal.spec.js index 67207053a81..827693139ea 100644 --- a/src/components/modal/modal.spec.js +++ b/src/components/modal/modal.spec.js @@ -1,5 +1,5 @@ import { createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BModal } from './modal' import { BvModalEvent } from './helpers/bv-modal-event.class' @@ -30,7 +30,7 @@ describe('modal', () => { describe('structure', () => { it('has expected default structure', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test' @@ -76,7 +76,7 @@ describe('modal', () => { it('has expected default structure when static and lazy', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, lazy: true @@ -93,7 +93,7 @@ describe('modal', () => { it('has expected default structure when not static', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: false } @@ -109,7 +109,7 @@ describe('modal', () => { it('has expected structure when initially open', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -158,7 +158,7 @@ describe('modal', () => { it('renders appended to body when initially open and not static', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: false, id: 'test-target', @@ -192,7 +192,7 @@ describe('modal', () => { it('has expected structure when closed after being initially open', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -245,7 +245,7 @@ describe('modal', () => { it('title-html prop works', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -265,7 +265,7 @@ describe('modal', () => { it('has correct header tag when "header-tag" prop is set', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -286,7 +286,7 @@ describe('modal', () => { it('has correct footer tag when "footer-tag" prop is set', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -310,7 +310,7 @@ describe('modal', () => { // We may want to move these tests into individual files for manageability it('default footer ok and cancel buttons', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true } @@ -339,7 +339,7 @@ describe('modal', () => { it('default header close button', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true } @@ -360,7 +360,7 @@ describe('modal', () => { it('ok-title-html and cancel-title-html works', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, okTitleHtml: 'ok', @@ -391,7 +391,7 @@ describe('modal', () => { it('modal-ok and modal-cancel button content slots works', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true }, @@ -429,7 +429,7 @@ describe('modal', () => { let trigger = null let event = null const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -507,7 +507,7 @@ describe('modal', () => { let cancelHide = true let trigger = null const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -589,7 +589,7 @@ describe('modal', () => { it('pressing ESC closes modal', async () => { let trigger = null const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -644,7 +644,7 @@ describe('modal', () => { it('click outside closes modal', async () => { let trigger = null const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -700,7 +700,7 @@ describe('modal', () => { let trigger = null let called = false const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -776,7 +776,7 @@ describe('modal', () => { it('$root bv::show::modal and bv::hide::modal work', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -823,7 +823,7 @@ describe('modal', () => { it('$root bv::toggle::modal works', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -883,7 +883,7 @@ describe('modal', () => { let prevent = true let called = 0 const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -948,7 +948,7 @@ describe('modal', () => { it('instance .toggle() methods works', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -995,7 +995,7 @@ describe('modal', () => { it('modal closes when no-stacking is true and another modal opens', async () => { const wrapper = mount(BModal, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, id: 'test', @@ -1044,7 +1044,7 @@ describe('modal', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -1122,7 +1122,7 @@ describe('modal', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -1202,7 +1202,7 @@ describe('modal', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -1295,7 +1295,7 @@ describe('modal', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -1363,7 +1363,7 @@ describe('modal', () => { } } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/components/overlay/overlay.spec.js b/src/components/overlay/overlay.spec.js index 63afa2f7677..882a8c547b0 100644 --- a/src/components/overlay/overlay.spec.js +++ b/src/components/overlay/overlay.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BOverlay } from './overlay' describe('overlay', () => { @@ -74,7 +74,7 @@ describe('overlay', () => { it('responds to changes in the `show` prop', async () => { const wrapper = mount(BOverlay, { - attachTo: createContainer(), + attachTo: document.body, propsData: { show: false }, diff --git a/src/components/pagination/pagination.spec.js b/src/components/pagination/pagination.spec.js index 8524db41560..8294d2b467b 100644 --- a/src/components/pagination/pagination.spec.js +++ b/src/components/pagination/pagination.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { isVisible, getBCR, contains } from '../../utils/dom' import { BPagination } from './pagination' @@ -1091,7 +1091,7 @@ describe('pagination', () => { value: 2, limit: 3 }, - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) expect(wrapper.element.tagName).toBe('UL') @@ -1146,7 +1146,7 @@ describe('pagination', () => { value: 2, limit: 3 }, - attachTo: createContainer() + attachTo: document.body }) await waitNT(wrapper.vm) expect(wrapper.element.tagName).toBe('UL') @@ -1174,7 +1174,7 @@ describe('pagination', () => { value: 1, limit: 5 }, - attachTo: createContainer() + attachTo: document.body }) let links diff --git a/src/components/popover/popover.spec.js b/src/components/popover/popover.spec.js index 058e0cef40d..44189769b93 100644 --- a/src/components/popover/popover.spec.js +++ b/src/components/popover/popover.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BPopover } from './popover' // Our test application definition @@ -95,7 +95,7 @@ describe('b-popover', () => { it('has expected default structure', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click' }, @@ -130,7 +130,7 @@ describe('b-popover', () => { it('initially open has expected structure', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true diff --git a/src/components/sidebar/sidebar.spec.js b/src/components/sidebar/sidebar.spec.js index 2b13b70f054..5cca0b91b34 100644 --- a/src/components/sidebar/sidebar.spec.js +++ b/src/components/sidebar/sidebar.spec.js @@ -1,5 +1,5 @@ import { createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BSidebar } from './sidebar' const ROOT_ACTION_EVENT_NAME_REQUEST_STATE = 'bv::request-state::collapse' @@ -11,7 +11,7 @@ const ROOT_EVENT_NAME_SYNC_STATE = 'bv::collapse::sync-state' describe('sidebar', () => { it('should have expected default structure', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-1', visible: true @@ -62,7 +62,7 @@ describe('sidebar', () => { it('shows backdrop when prop `backdrop` is `true`', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-backdrop', noCloseOnBackdrop: true, @@ -103,7 +103,7 @@ describe('sidebar', () => { it('applies "bg-*" class to backdrop based on `backdrop-variant` prop', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-backdrop', noCloseOnBackdrop: true, @@ -145,7 +145,7 @@ describe('sidebar', () => { it('shows and hides in response to v-b-toggle events', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-toggle' } @@ -184,7 +184,7 @@ describe('sidebar', () => { it('closes when ESC key is pressed', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-esc' } @@ -228,7 +228,7 @@ describe('sidebar', () => { it('handles state sync requests', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-sync', visible: true @@ -261,7 +261,7 @@ describe('sidebar', () => { it('should have expected structure when `no-header` is set', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-2', visible: true, @@ -280,7 +280,7 @@ describe('sidebar', () => { it('should have expected structure when `no-header-close` is set', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-3', visible: true, @@ -300,7 +300,7 @@ describe('sidebar', () => { it('should have expected structure when `lazy` is set', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-4', visible: false, @@ -327,7 +327,7 @@ describe('sidebar', () => { it('should have expected structure when `header` slot provided', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'sidebar-header-slot', visible: true, @@ -357,7 +357,7 @@ describe('sidebar', () => { it('should have expected structure when `footer` slot provided', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-5', visible: true, @@ -384,7 +384,7 @@ describe('sidebar', () => { it('should have expected structure when `title` prop provided', async () => { const wrapper = mount(BSidebar, { - attachTo: createContainer(), + attachTo: document.body, propsData: { id: 'test-title', visible: true, diff --git a/src/components/table/table-provider.spec.js b/src/components/table/table-provider.spec.js index f5ce0054a6c..623787fdf9d 100644 --- a/src/components/table/table-provider.spec.js +++ b/src/components/table/table-provider.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BTable } from './table' const testItems = [ @@ -374,7 +374,7 @@ describe('table > provider functions', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.element.tagName).toBe('TABLE') diff --git a/src/components/table/table-tbody-row-events.spec.js b/src/components/table/table-tbody-row-events.spec.js index 2437f33a473..e6c56ed7569 100644 --- a/src/components/table/table-tbody-row-events.spec.js +++ b/src/components/table/table-tbody-row-events.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BTable } from './table' const testItems = [{ a: 1, b: 2, c: 3 }, { a: 5, b: 5, c: 6 }, { a: 7, b: 8, c: 9 }] @@ -357,7 +357,7 @@ describe('table > tbody row events', () => { // Rows will only have tabindex=0 when a row-clicked listener present 'row-clicked': () => {} }, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() const $rows = wrapper.findAll('tbody > tr') @@ -402,7 +402,7 @@ describe('table > tbody row events', () => { it('should not emit row-clicked event when clicking on a button or other interactive element', async () => { const wrapper = mount(BTable, { - attachTo: createContainer(), + attachTo: document.body, propsData: { // Add extra virtual columns fields: [].concat(testFields, ['d', 'e', 'f']), @@ -473,7 +473,7 @@ describe('table > tbody row events', () => { // Tabindex will only be set if there is a row-clicked listener 'row-clicked': () => {} }, - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() await waitNT(wrapper.vm) diff --git a/src/components/table/table-tbody-transition.spec.js b/src/components/table/table-tbody-transition.spec.js index 7ca3c4a01d5..85f36d87799 100644 --- a/src/components/table/table-tbody-transition.spec.js +++ b/src/components/table/table-tbody-transition.spec.js @@ -1,5 +1,4 @@ import { config as vtuConfig, mount } from '@vue/test-utils' -import { createContainer } from '../../../tests/utils' import { TransitionGroupStub } from '../../../tests/components' import { BTable } from './table' @@ -12,7 +11,7 @@ const testFields = ['a', 'b', 'c'] describe('table > tbody transition', () => { it('tbody should not be a transition-group component by default', async () => { const wrapper = mount(BTable, { - attachTo: createContainer(), + attachTo: document.body, propsData: { fields: testFields, items: testItems @@ -30,7 +29,7 @@ describe('table > tbody transition', () => { it('tbody should be a transition-group component when tbody-transition-props set', async () => { const wrapper = mount(BTable, { - attachTo: createContainer(), + attachTo: document.body, propsData: { fields: testFields, items: testItems, @@ -50,7 +49,7 @@ describe('table > tbody transition', () => { it('tbody should be a transition-group component when tbody-transition-handlers set', async () => { const wrapper = mount(BTable, { - attachTo: createContainer(), + attachTo: document.body, propsData: { fields: testFields, items: testItems, diff --git a/src/components/time/time.spec.js b/src/components/time/time.spec.js index 7033796b696..d32514024a5 100644 --- a/src/components/time/time.spec.js +++ b/src/components/time/time.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BTime } from './time' // Note that JSDOM only supports `en-US` (`en`) locale for Intl @@ -147,7 +147,7 @@ describe('time', () => { it('has correct header tag when "header-tag" prop is set', async () => { const wrapper = mount(BTime, { - attachTo: createContainer(), + attachTo: document.body, propsData: { headerTag: 'div' } @@ -166,7 +166,7 @@ describe('time', () => { it('has correct footer tag when "footer-tag" prop is set', async () => { const wrapper = mount(BTime, { - attachTo: createContainer(), + attachTo: document.body, propsData: { footerTag: 'div' }, @@ -246,7 +246,7 @@ describe('time', () => { it('blur and focus methods work', async () => { const wrapper = mount(BTime, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -275,7 +275,7 @@ describe('time', () => { it('arrow left/right moves focus', async () => { const wrapper = mount(BTime, { - attachTo: createContainer(), + attachTo: document.body, propsData: { showSeconds: true, value: '00:00:00', diff --git a/src/components/toast/helpers/bv-toast.spec.js b/src/components/toast/helpers/bv-toast.spec.js index d0a44b23cd5..9df82b9d1fb 100644 --- a/src/components/toast/helpers/bv-toast.spec.js +++ b/src/components/toast/helpers/bv-toast.spec.js @@ -1,5 +1,5 @@ import { createLocalVue, createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../../tests/utils' +import { waitNT, waitRAF } from '../../../../tests/utils' import { ToastPlugin } from '../index' const localVue = createLocalVue() @@ -24,7 +24,7 @@ describe('$bvToast', () => { } } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) @@ -75,7 +75,7 @@ describe('$bvToast', () => { } } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) diff --git a/src/components/toast/toast.spec.js b/src/components/toast/toast.spec.js index ba1a5a646e3..3dc2b08bc0d 100644 --- a/src/components/toast/toast.spec.js +++ b/src/components/toast/toast.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BToast } from './toast' describe('b-toast', () => { @@ -14,7 +14,7 @@ describe('b-toast', () => { it('has expected structure', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: true, @@ -69,7 +69,7 @@ describe('b-toast', () => { it('has correct header tag when "header-tag" prop is set', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: true, @@ -97,7 +97,7 @@ describe('b-toast', () => { it('visible prop works', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: true, @@ -164,7 +164,7 @@ describe('b-toast', () => { it('alert with link closes on click works', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: true, @@ -219,7 +219,7 @@ describe('b-toast', () => { it('auto-hide works', async () => { jest.useFakeTimers() const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: false, @@ -263,7 +263,7 @@ describe('b-toast', () => { it('hover pause works', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: false, @@ -304,7 +304,7 @@ describe('b-toast', () => { it('hover pause has no effect when no-hover-pause is set', async () => { const wrapper = mount(BToast, { - attachTo: createContainer(), + attachTo: document.body, propsData: { static: true, noAutoHide: false, diff --git a/src/components/toast/toaster.spec.js b/src/components/toast/toaster.spec.js index 1ab6beb2303..9016c436b70 100644 --- a/src/components/toast/toaster.spec.js +++ b/src/components/toast/toaster.spec.js @@ -1,12 +1,12 @@ import { PortalTarget } from 'portal-vue' import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BToaster } from './toaster' describe('b-toaster', () => { it('has expected structure', async () => { const wrapper = mount(BToaster, { - attachTo: createContainer(), + attachTo: document.body, propsData: { name: 'foo' } @@ -39,7 +39,7 @@ describe('b-toaster', () => { it('accepts aria props', async () => { const wrapper = mount(BToaster, { - attachTo: createContainer(), + attachTo: document.body, propsData: { name: 'bar', ariaLive: 'assertive', diff --git a/src/components/tooltip/tooltip.spec.js b/src/components/tooltip/tooltip.spec.js index 7ba5b7ed40c..5903d64cbad 100644 --- a/src/components/tooltip/tooltip.spec.js +++ b/src/components/tooltip/tooltip.spec.js @@ -1,5 +1,5 @@ import { createWrapper, mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { BTooltip } from './tooltip' const MODAL_CLOSE_EVENT = 'bv::modal::hidden' @@ -99,7 +99,7 @@ describe('b-tooltip', () => { it('has expected default structure', async () => { const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click' }, @@ -136,7 +136,7 @@ describe('b-tooltip', () => { it('initially open has expected structure', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true @@ -220,7 +220,7 @@ describe('b-tooltip', () => { it('title prop is reactive', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -287,9 +287,8 @@ describe('b-tooltip', () => { it('providing the trigger element by function works', async () => { jest.useFakeTimers() - const container = createContainer() const wrapper = mount(App, { - attachTo: container, + attachTo: document.body, propsData: { target: () => wrapper.vm.$refs.target, triggers: 'click', @@ -350,7 +349,7 @@ describe('b-tooltip', () => { it('activating trigger element (click) opens tooltip', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: false @@ -410,7 +409,7 @@ describe('b-tooltip', () => { it('activating trigger element (focus) opens tooltip', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'focus', show: false, @@ -488,7 +487,7 @@ describe('b-tooltip', () => { it('activating trigger element (hover) opens tooltip', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'hover', show: false, @@ -567,7 +566,7 @@ describe('b-tooltip', () => { it('disabled tooltip does not open on trigger', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: false, @@ -669,7 +668,7 @@ describe('b-tooltip', () => { it('closes/opens on instance events', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -750,7 +749,7 @@ describe('b-tooltip', () => { it('closes on $root close specific ID event', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -822,7 +821,7 @@ describe('b-tooltip', () => { it('does not close on $root close specific other ID event', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -893,7 +892,7 @@ describe('b-tooltip', () => { it('closes on $root close all event', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -966,7 +965,7 @@ describe('b-tooltip', () => { it('does not close on $root modal hidden event by default', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -1038,7 +1037,7 @@ describe('b-tooltip', () => { it('closes on $root modal hidden event when inside a modal', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -1112,7 +1111,7 @@ describe('b-tooltip', () => { jest.spyOn(console, 'warn').mockImplementation(() => {}) const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: true, @@ -1224,7 +1223,7 @@ describe('b-tooltip', () => { it('closes when title is set to empty', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { show: true, title: 'hello' @@ -1288,7 +1287,7 @@ describe('b-tooltip', () => { it('applies noninteractive class based on noninteractive prop', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { show: true }, @@ -1342,7 +1341,7 @@ describe('b-tooltip', () => { it('applies variant class', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { show: true, variant: 'danger' @@ -1394,7 +1393,7 @@ describe('b-tooltip', () => { it('applies custom class', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { show: true, customClass: 'foobar-class' @@ -1449,7 +1448,7 @@ describe('b-tooltip', () => { it('saves title in data attribute on open and adds to back on hide', async () => { jest.useFakeTimers() const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { triggers: 'click', show: false, diff --git a/src/components/transporter/transporter.spec.js b/src/components/transporter/transporter.spec.js index d9cfc0ce75e..f6b7eb97879 100644 --- a/src/components/transporter/transporter.spec.js +++ b/src/components/transporter/transporter.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../../tests/utils' +import { waitNT } from '../../../tests/utils' import { BVTransporter } from './transporter' describe('utils/transporter component', () => { @@ -11,7 +11,7 @@ describe('utils/transporter component', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -31,7 +31,7 @@ describe('utils/transporter component', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/directives/popover/popover.spec.js b/src/directives/popover/popover.spec.js index bd5bd7d018d..92a0e1a468c 100644 --- a/src/directives/popover/popover.spec.js +++ b/src/directives/popover/popover.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { VBPopover } from './popover' import { BVPopover } from '../../components/popover/helpers/bv-popover' @@ -52,7 +52,7 @@ describe('v-b-popover directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -87,7 +87,7 @@ describe('v-b-popover directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/directives/tooltip/tooltip.spec.js b/src/directives/tooltip/tooltip.spec.js index ecb8dd7ae13..cf9a4460365 100644 --- a/src/directives/tooltip/tooltip.spec.js +++ b/src/directives/tooltip/tooltip.spec.js @@ -1,5 +1,5 @@ import { mount } from '@vue/test-utils' -import { createContainer, waitNT, waitRAF } from '../../../tests/utils' +import { waitNT, waitRAF } from '../../../tests/utils' import { VBTooltip } from './tooltip' import { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip' @@ -52,7 +52,7 @@ describe('v-b-tooltip directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -87,7 +87,7 @@ describe('v-b-tooltip directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -139,7 +139,7 @@ describe('v-b-tooltip directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -186,7 +186,7 @@ describe('v-b-tooltip directive', () => { } const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/mixins/click-out.spec.js b/src/mixins/click-out.spec.js index 9c893c6048a..e1cada20170 100644 --- a/src/mixins/click-out.spec.js +++ b/src/mixins/click-out.spec.js @@ -1,5 +1,5 @@ import { createLocalVue, mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../tests/utils' +import { waitNT } from '../../tests/utils' import { clickOutMixin } from './click-out' describe('utils/click-out', () => { @@ -23,7 +23,7 @@ describe('utils/click-out', () => { }) const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) diff --git a/src/mixins/focus-in.spec.js b/src/mixins/focus-in.spec.js index acf3b3aa1cf..5d72cce4082 100644 --- a/src/mixins/focus-in.spec.js +++ b/src/mixins/focus-in.spec.js @@ -1,5 +1,5 @@ import { createLocalVue, mount } from '@vue/test-utils' -import { createContainer, waitNT } from '../../tests/utils' +import { waitNT } from '../../tests/utils' import { focusInMixin } from './focus-in' describe('mixins/focus-in', () => { @@ -23,7 +23,7 @@ describe('mixins/focus-in', () => { }) const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, localVue }) diff --git a/src/mixins/listen-on-document.spec.js b/src/mixins/listen-on-document.spec.js index a0f12849c35..b1bbe50487c 100644 --- a/src/mixins/listen-on-document.spec.js +++ b/src/mixins/listen-on-document.spec.js @@ -1,5 +1,4 @@ import { mount } from '@vue/test-utils' -import { createContainer } from '../../tests/utils' import { listenOnDocumentMixin } from './listen-on-document' describe('mixins/listen-on-document', () => { @@ -58,7 +57,7 @@ describe('mixins/listen-on-document', () => { } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { destroy: false } diff --git a/src/mixins/listen-on-window.spec.js b/src/mixins/listen-on-window.spec.js index 9973d68e0b0..d5e035c36dc 100644 --- a/src/mixins/listen-on-window.spec.js +++ b/src/mixins/listen-on-window.spec.js @@ -1,5 +1,4 @@ import { mount } from '@vue/test-utils' -import { createContainer } from '../../tests/utils' import { listenOnWindowMixin } from './listen-on-window' describe('mixins/listen-on-window', () => { @@ -54,7 +53,7 @@ describe('mixins/listen-on-window', () => { } const wrapper = mount(App, { - attachTo: createContainer(), + attachTo: document.body, propsData: { destroy: false } diff --git a/src/mixins/listeners.spec.js b/src/mixins/listeners.spec.js index 4b027294399..4077638f631 100644 --- a/src/mixins/listeners.spec.js +++ b/src/mixins/listeners.spec.js @@ -1,5 +1,4 @@ import { mount } from '@vue/test-utils' -import { createContainer } from '../../tests/utils' import { listenersMixin } from './listeners' // Note: The following tests indirectly test `utils/cache` @@ -132,8 +131,8 @@ describe('mixins > listeners', () => { ` } - const wrapper1 = mount(App1, { attachTo: createContainer() }) - const wrapper2 = mount(App2, { attachTo: createContainer() }) + const wrapper1 = mount(App1, { attachTo: document.body }) + const wrapper2 = mount(App2, { attachTo: document.body }) // --- `Input1` tests --- diff --git a/src/utils/dom.spec.js b/src/utils/dom.spec.js index 1c43133c152..0281a44858e 100644 --- a/src/utils/dom.spec.js +++ b/src/utils/dom.spec.js @@ -1,5 +1,4 @@ import { mount } from '@vue/test-utils' -import { createContainer } from '../../tests/utils' import { closest, contains, @@ -31,7 +30,7 @@ const App = { template } describe('utils/dom', () => { it('isElement() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -45,7 +44,7 @@ describe('utils/dom', () => { it('isDisabled() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -62,7 +61,7 @@ describe('utils/dom', () => { it('hasClass() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -80,7 +79,7 @@ describe('utils/dom', () => { it('contains() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -102,7 +101,7 @@ describe('utils/dom', () => { it('closest() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -129,7 +128,7 @@ describe('utils/dom', () => { it('matches() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -155,7 +154,7 @@ describe('utils/dom', () => { it('hasAttr() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -176,7 +175,7 @@ describe('utils/dom', () => { it('getAttr() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -200,7 +199,7 @@ describe('utils/dom', () => { it('getStyle() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -217,7 +216,7 @@ describe('utils/dom', () => { it('select() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() @@ -244,7 +243,7 @@ describe('utils/dom', () => { it('selectAll() works', async () => { const wrapper = mount(App, { - attachTo: createContainer() + attachTo: document.body }) expect(wrapper).toBeDefined() diff --git a/tests/utils.js b/tests/utils.js index eb5ce19cdc6..87099a3015f 100644 --- a/tests/utils.js +++ b/tests/utils.js @@ -1,10 +1,4 @@ // --- Utils for testing --- -export const createContainer = (tag = 'div') => { - const container = document.createElement(tag) - document.body.appendChild(container) - return container -} - export const waitNT = ctx => new Promise(resolve => ctx.$nextTick(resolve)) export const waitRAF = () => new Promise(resolve => requestAnimationFrame(resolve)) From 5f0877a2049629c38311ec934d42da107a5a79d7 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Thu, 18 Nov 2021 03:40:29 +0200 Subject: [PATCH 346/378] chore(tests): fix warnings in existing tests --- src/components/form-checkbox/form-checkbox-group.spec.js | 6 +++--- src/utils/props.spec.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/form-checkbox/form-checkbox-group.spec.js b/src/components/form-checkbox/form-checkbox-group.spec.js index 40f32d55abd..4ac74dd27d7 100644 --- a/src/components/form-checkbox/form-checkbox-group.spec.js +++ b/src/components/form-checkbox/form-checkbox-group.spec.js @@ -189,7 +189,7 @@ describe('form-checkbox-group', () => { attachTo: document.body, propsData: { options: ['one', 'two', 'three'], - checked: '', + checked: [], state: true } }) @@ -207,7 +207,7 @@ describe('form-checkbox-group', () => { attachTo: document.body, propsData: { options: ['one', 'two', 'three'], - checked: '', + checked: [], state: false } }) @@ -225,7 +225,7 @@ describe('form-checkbox-group', () => { attachTo: document.body, propsData: { options: ['one', 'two', 'three'], - checked: '', + checked: [], state: null } }) diff --git a/src/utils/props.spec.js b/src/utils/props.spec.js index 7e99a26aebe..2f218901aa8 100644 --- a/src/utils/props.spec.js +++ b/src/utils/props.spec.js @@ -80,7 +80,7 @@ describe('utils/props', () => { }) it('makePropsConfigurable() works', async () => { - const NAME = 'Component' + const NAME = 'MyComponent' const props = { text: { type: String, From 4f5df28a06551c7c30bd91410d489614ab07d032 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sun, 25 Jul 2021 04:06:43 +0300 Subject: [PATCH 347/378] chore(compat): remove parentComponent usage parentComponent is not supported in VTU v2 --- .../table/table-item-formatter.spec.js | 20 ++--- src/components/table/table-lite.spec.js | 83 +++++++++---------- src/components/table/table.spec.js | 64 +++++++------- src/icons/icons.spec.js | 8 +- tests/utils.js | 12 +++ 5 files changed, 95 insertions(+), 92 deletions(-) diff --git a/src/components/table/table-item-formatter.spec.js b/src/components/table/table-item-formatter.spec.js index 9d883b8b3d3..9ef5ab538a0 100644 --- a/src/components/table/table-item-formatter.spec.js +++ b/src/components/table/table-item-formatter.spec.js @@ -1,3 +1,4 @@ +import { wrapWithMethods } from '../../../tests/utils' import { mount } from '@vue/test-utils' import { BTable } from './table' @@ -29,20 +30,19 @@ describe('table > field-formatter', () => { }) it('item field formatter as string works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTable, { formatter(value, key, item) { return item.a + item.b } + }), + { + propsData: { + items: [{ a: 1, b: 2 }], + fields: [{ key: 'a', formatter: 'formatter' }, 'b'] + } } - } - const wrapper = mount(BTable, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2 }], - fields: [{ key: 'a', formatter: 'formatter' }, 'b'] - } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('tbody > tr').length).toBe(1) diff --git a/src/components/table/table-lite.spec.js b/src/components/table/table-lite.spec.js index 8808d5531d9..0b7e879c3d9 100644 --- a/src/components/table/table-lite.spec.js +++ b/src/components/table/table-lite.spec.js @@ -1,5 +1,6 @@ import { mount } from '@vue/test-utils' import { BTableLite } from './table-lite' +import { wrapWithMethods } from '../../../tests/utils' const items1 = [{ a: 1, b: 2, c: 3 }, { a: 4, b: 5, c: 6 }] const fields1 = ['a', 'b', 'c'] @@ -536,24 +537,23 @@ describe('table-lite', () => { }) it('item field tdAttr and tdClass works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTableLite, { parentTdAttrs() { return { 'data-parent': 'parent' } } + }), + { + propsData: { + items: [{ a: 1, b: 2, c: 3 }], + fields: [ + { key: 'a', tdAttr: { 'data-foo': 'bar' } }, + { key: 'b', tdClass: () => 'baz' }, + { key: 'c', tdAttr: 'parentTdAttrs' } + ] + } } - } - const wrapper = mount(BTableLite, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2, c: 3 }], - fields: [ - { key: 'a', tdAttr: { 'data-foo': 'bar' } }, - { key: 'b', tdClass: () => 'baz' }, - { key: 'c', tdAttr: 'parentTdAttrs' } - ] - } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('tbody > tr').length).toBe(1) @@ -577,30 +577,28 @@ describe('table-lite', () => { }) it('item field thAttr works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTableLite, { parentThAttrs(value, key, item, type) { return { 'data-type': type } } - } - } - - const wrapper = mount(BTableLite, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2, c: 3 }], - fields: [ - { key: 'a', thAttr: { 'data-foo': 'bar' } }, - { key: 'b', thAttr: 'parentThAttrs', isRowHeader: true }, - { - key: 'c', - thAttr: (v, k, i, t) => { - return { 'data-type': t } + }), + { + propsData: { + items: [{ a: 1, b: 2, c: 3 }], + fields: [ + { key: 'a', thAttr: { 'data-foo': 'bar' } }, + { key: 'b', thAttr: 'parentThAttrs', isRowHeader: true }, + { + key: 'c', + thAttr: (v, k, i, t) => { + return { 'data-type': t } + } } - } - ] + ] + } } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('thead > tr').length).toBe(1) @@ -658,20 +656,19 @@ describe('table-lite', () => { }) it('item field formatter as string works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTableLite, { formatter(value, key, item) { return item.a + item.b } + }), + { + propsData: { + items: [{ a: 1, b: 2 }], + fields: [{ key: 'a', formatter: 'formatter' }, 'b'] + } } - } - const wrapper = mount(BTableLite, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2 }], - fields: [{ key: 'a', formatter: 'formatter' }, 'b'] - } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('tbody > tr').length).toBe(1) diff --git a/src/components/table/table.spec.js b/src/components/table/table.spec.js index 40ecb8eb6aa..d3c741e0e8e 100644 --- a/src/components/table/table.spec.js +++ b/src/components/table/table.spec.js @@ -1,5 +1,6 @@ import { mount } from '@vue/test-utils' import { BTable } from './table' +import { wrapWithMethods } from '../../../tests/utils' const items1 = [{ a: 1, b: 2, c: 3 }, { a: 4, b: 5, c: 6 }] const fields1 = ['a', 'b', 'c'] @@ -597,24 +598,23 @@ describe('table', () => { }) it('item field tdAttr and tdClass works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTable, { parentTdAttrs() { return { 'data-parent': 'parent' } } + }), + { + propsData: { + items: [{ a: 1, b: 2, c: 3 }], + fields: [ + { key: 'a', tdAttr: { 'data-foo': 'bar' } }, + { key: 'b', tdClass: () => 'baz' }, + { key: 'c', tdAttr: 'parentTdAttrs' } + ] + } } - } - const wrapper = mount(BTable, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2, c: 3 }], - fields: [ - { key: 'a', tdAttr: { 'data-foo': 'bar' } }, - { key: 'b', tdClass: () => 'baz' }, - { key: 'c', tdAttr: 'parentTdAttrs' } - ] - } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('tbody > tr').length).toBe(1) @@ -638,30 +638,28 @@ describe('table', () => { }) it('item field thAttr works', async () => { - const Parent = { - methods: { + const wrapper = mount( + wrapWithMethods(BTable, { parentThAttrs(value, key, item, type) { return { 'data-type': type } } - } - } - - const wrapper = mount(BTable, { - parentComponent: Parent, - propsData: { - items: [{ a: 1, b: 2, c: 3 }], - fields: [ - { key: 'a', thAttr: { 'data-foo': 'bar' } }, - { key: 'b', thAttr: 'parentThAttrs', isRowHeader: true }, - { - key: 'c', - thAttr: (v, k, i, t) => { - return { 'data-type': t } + }), + { + propsData: { + items: [{ a: 1, b: 2, c: 3 }], + fields: [ + { key: 'a', thAttr: { 'data-foo': 'bar' } }, + { key: 'b', thAttr: 'parentThAttrs', isRowHeader: true }, + { + key: 'c', + thAttr: (v, k, i, t) => { + return { 'data-type': t } + } } - } - ] + ] + } } - }) + ) expect(wrapper).toBeDefined() expect(wrapper.findAll('thead > tr').length).toBe(1) diff --git a/src/icons/icons.spec.js b/src/icons/icons.spec.js index ed8921c89c9..7eadaef06e0 100644 --- a/src/icons/icons.spec.js +++ b/src/icons/icons.spec.js @@ -196,15 +196,11 @@ describe('icons', () => { // For testing user defined Icons BIconFakeIconTest: makeIcon('FakeIconTest', '') }, - render(h) { - return h(this.$slots.default) - } + template: '' } - const wrapper = mount(BIcon, { + const wrapper = mount(ParentComponent, { localVue, - // Parent component has a custom icon registered - parentComponent: ParentComponent, propsData: { icon: 'fake-icon-test' } diff --git a/tests/utils.js b/tests/utils.js index 87099a3015f..6165c8bcf20 100644 --- a/tests/utils.js +++ b/tests/utils.js @@ -1,4 +1,16 @@ // --- Utils for testing --- +export const wrapWithMethods = (Component, methods) => ({ + inheritAttrs: false, + components: { wrappedComponent: Component }, + methods, + template: ` + + + + + ` +}) + export const waitNT = ctx => new Promise(resolve => ctx.$nextTick(resolve)) export const waitRAF = () => new Promise(resolve => requestAnimationFrame(resolve)) From 5c4c54af124a4f60856a613bc682910b603b0824 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Wed, 17 Nov 2021 17:08:29 +0200 Subject: [PATCH 348/378] chore(deps): Upgrade @vue/test-utils to v1.3.0 Start preparing Vue 3 migration --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4febd13d993..5c93d370808 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "@nuxtjs/robots": "^2.5.0", "@nuxtjs/sitemap": "^2.4.0", "@testing-library/jest-dom": "^5.12.0", - "@vue/test-utils": "^1.2.0", + "@vue/test-utils": "^1.3.0", "autoprefixer": "^10.2.5", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.1.0", diff --git a/yarn.lock b/yarn.lock index 1661731f469..b935148cd5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2389,10 +2389,10 @@ optionalDependencies: prettier "^1.18.2" -"@vue/test-utils@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.2.0.tgz#3bc8c17ed549157275f0aec6b95da40887f7297f" - integrity sha512-poBTLqeJYNq1TXVhtVfnY8vELUVOFdJY8KZZoUuaAkIqPTWsxonU1M8nMWpZT+xEMrM+49+YcuEqtMHVD9Q9gw== +"@vue/test-utils@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.3.0.tgz#d563decdcd9c68a7bca151d4179a2bfd6d5c3e15" + integrity sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA== dependencies: dom-event-types "^1.0.0" lodash "^4.17.15" From 66a910f369c4806526734f6bdb08da0437bc82f7 Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sat, 18 Dec 2021 16:01:13 +0200 Subject: [PATCH 349/378] chore: bump size limit for future vue3 compat build --- .bundlewatch.config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bundlewatch.config.json b/.bundlewatch.config.json index db95e16cf4c..f8480509309 100644 --- a/.bundlewatch.config.json +++ b/.bundlewatch.config.json @@ -46,7 +46,7 @@ }, { "path": "./dist/bootstrap-vue.common.min.js", - "maxSize": "235 kB" + "maxSize": "240 kB" }, { "path": "./dist/bootstrap-vue.esm.js", From e7aaf2db70975f322e6eb6941b1916b463015b9e Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Sat, 18 Dec 2021 16:44:36 +0200 Subject: [PATCH 350/378] chore(tests): fix lint warnings --- src/directives/popover/popover.spec.js | 1 - src/directives/tooltip/tooltip.spec.js | 1 - 2 files changed, 2 deletions(-) diff --git a/src/directives/popover/popover.spec.js b/src/directives/popover/popover.spec.js index 92a0e1a468c..055ffd6b8ff 100644 --- a/src/directives/popover/popover.spec.js +++ b/src/directives/popover/popover.spec.js @@ -1,7 +1,6 @@ import { mount } from '@vue/test-utils' import { waitNT, waitRAF } from '../../../tests/utils' import { VBPopover } from './popover' -import { BVPopover } from '../../components/popover/helpers/bv-popover' // Key which we use to store tooltip object on element const BV_POPOVER = '__BV_Popover__' diff --git a/src/directives/tooltip/tooltip.spec.js b/src/directives/tooltip/tooltip.spec.js index cf9a4460365..008a055b07d 100644 --- a/src/directives/tooltip/tooltip.spec.js +++ b/src/directives/tooltip/tooltip.spec.js @@ -1,7 +1,6 @@ import { mount } from '@vue/test-utils' import { waitNT, waitRAF } from '../../../tests/utils' import { VBTooltip } from './tooltip' -import { BVTooltip } from '../../components/tooltip/helpers/bv-tooltip' // Key which we use to store tooltip object on element const BV_TOOLTIP = '__BV_Tooltip__' From ac8ebfeab04cbca378fe1b2e7a96d5d1e2befbfe Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Wed, 10 Nov 2021 23:34:26 +0200 Subject: [PATCH 351/378] chore(compat): replace find with findComponents - accessing vm on DOMWrapper is discouraged and unsupported in VTU v1 --- src/components/button-toolbar/button-toolbar.spec.js | 2 +- src/components/dropdown/dropdown-item.spec.js | 2 +- src/components/dropdown/dropdown.spec.js | 2 +- src/components/form-input/form-input.spec.js | 6 +++--- src/components/link/link.spec.js | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/button-toolbar/button-toolbar.spec.js b/src/components/button-toolbar/button-toolbar.spec.js index 01b27e50063..0167a87d85d 100644 --- a/src/components/button-toolbar/button-toolbar.spec.js +++ b/src/components/button-toolbar/button-toolbar.spec.js @@ -105,7 +105,7 @@ describe('button-toolbar', () => { expect($groups).toBeDefined() expect($groups.length).toBe(3) - const $btns = wrapper.findAllComponents(BButton) + const $btns = wrapper.findAll('button') expect($btns).toBeDefined() expect($btns.length).toBe(6) expect( diff --git a/src/components/dropdown/dropdown-item.spec.js b/src/components/dropdown/dropdown-item.spec.js index 426f9fabc57..341dff0eef7 100644 --- a/src/components/dropdown/dropdown-item.spec.js +++ b/src/components/dropdown/dropdown-item.spec.js @@ -134,7 +134,7 @@ describe('dropdown-item', () => { expect(wrapper.findAll('li').length).toBe(4) expect(wrapper.findAll('a').length).toBe(4) - const $links = wrapper.findAll('a') + const $links = wrapper.findAllComponents('a') expect($links.at(0).vm).toBeDefined() expect($links.at(0).vm.$options.name).toBe('BLink') diff --git a/src/components/dropdown/dropdown.spec.js b/src/components/dropdown/dropdown.spec.js index 060abb85224..02311f238ab 100644 --- a/src/components/dropdown/dropdown.spec.js +++ b/src/components/dropdown/dropdown.spec.js @@ -542,7 +542,7 @@ describe('dropdown', () => { expect(wrapper.findAll('.dropdown-menu .dropdown-item').length).toBe(1) const $container = wrapper.find('#container') - const $dropdown = wrapper.find('.dropdown') + const $dropdown = wrapper.findComponent('.dropdown') const $toggle = wrapper.find('.dropdown-toggle') const $menu = wrapper.find('.dropdown-menu') const $item = wrapper.find('.dropdown-item') diff --git a/src/components/form-input/form-input.spec.js b/src/components/form-input/form-input.spec.js index 28b44084a4b..4474ec07329 100644 --- a/src/components/form-input/form-input.spec.js +++ b/src/components/form-input/form-input.spec.js @@ -463,7 +463,7 @@ describe('form-input', () => { attachTo: document.body }) - const $input = wrapper.find('input') + const $input = wrapper.findComponent('input') $input.element.value = 'TEST' await $input.trigger('input') @@ -491,7 +491,7 @@ describe('form-input', () => { attachTo: document.body }) - const $input = wrapper.find('input') + const $input = wrapper.findComponent('input') // Input event needed to set initial value $input.element.value = 'TEST' @@ -527,7 +527,7 @@ describe('form-input', () => { attachTo: document.body }) - const $input = wrapper.find('input') + const $input = wrapper.findComponent('input') expect($input.vm.localValue).toEqual('TEST') expect(wrapper.emitted('update')).toBeUndefined() expect(wrapper.emitted('input')).toBeUndefined() diff --git a/src/components/link/link.spec.js b/src/components/link/link.spec.js index 782924edd95..ded5295e993 100644 --- a/src/components/link/link.spec.js +++ b/src/components/link/link.spec.js @@ -412,7 +412,7 @@ describe('b-link', () => { expect(wrapper.findAll('a').length).toBe(5) - const $links = wrapper.findAll('a') + const $links = wrapper.findAllComponents('a') expect($links.at(0).vm).toBeDefined() expect($links.at(0).vm.$options.name).toBe('BLink') From b16514b980c87d983d42b915a50ff2a3aa46d30a Mon Sep 17 00:00:00 2001 From: Illya Klymov Date: Wed, 17 Nov 2021 23:10:31 +0200 Subject: [PATCH 352/378] chore(compat): remove useless localVue usage Jest resets modules for each test suite. If we are using localVue just to install plugins - it is useless and could be removed --- src/components/dropdown/dropdown-item.spec.js | 9 +++---- src/components/link/link.spec.js | 4 ++- src/components/modal/helpers/bv-modal.spec.js | 21 +++++---------- .../pagination-nav/pagination-nav.spec.js | 10 +++---- src/components/skeleton/skeleton-icon.spec.js | 8 +++--- src/components/toast/helpers/bv-toast.spec.js | 12 ++++----- src/icons/icons.spec.js | 27 +++---------------- src/mixins/click-out.spec.js | 10 +++---- src/mixins/focus-in.spec.js | 10 +++---- 9 files changed, 38 insertions(+), 73 deletions(-) diff --git a/src/components/dropdown/dropdown-item.spec.js b/src/components/dropdown/dropdown-item.spec.js index 341dff0eef7..27a29a6bd01 100644 --- a/src/components/dropdown/dropdown-item.spec.js +++ b/src/components/dropdown/dropdown-item.spec.js @@ -1,8 +1,11 @@ import VueRouter from 'vue-router' -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { waitRAF } from '../../../tests/utils' +import { Vue } from '../../vue' import { BDropdownItem } from './dropdown-item' +Vue.use(VueRouter) + describe('dropdown-item', () => { it('renders with tag "a" and href="#" by default', async () => { const wrapper = mount(BDropdownItem) @@ -94,9 +97,6 @@ describe('dropdown-item', () => { describe('router-link support', () => { it('works', async () => { - const localVue = createLocalVue() - localVue.use(VueRouter) - const router = new VueRouter({ mode: 'abstract', routes: [ @@ -124,7 +124,6 @@ describe('dropdown-item', () => { } const wrapper = mount(App, { - localVue, attachTo: document.body }) diff --git a/src/components/link/link.spec.js b/src/components/link/link.spec.js index ded5295e993..fbf05f199b2 100644 --- a/src/components/link/link.spec.js +++ b/src/components/link/link.spec.js @@ -1,6 +1,9 @@ import VueRouter from 'vue-router' import { createLocalVue, mount } from '@vue/test-utils' import { BLink } from './link' +import { Vue } from '../../vue' + +Vue.use(VueRouter) describe('b-link', () => { it('has expected default structure', async () => { @@ -353,7 +356,6 @@ describe('b-link', () => { describe('router-link support', () => { it('works', async () => { const localVue = createLocalVue() - localVue.use(VueRouter) const router = new VueRouter({ mode: 'abstract', diff --git a/src/components/modal/helpers/bv-modal.spec.js b/src/components/modal/helpers/bv-modal.spec.js index 794da3c935e..ab2e6c69185 100644 --- a/src/components/modal/helpers/bv-modal.spec.js +++ b/src/components/modal/helpers/bv-modal.spec.js @@ -1,13 +1,9 @@ -import { config as vtuConfig, createLocalVue, createWrapper, mount } from '@vue/test-utils' +import { Vue } from '../../../vue' +import { createWrapper, mount } from '@vue/test-utils' import { waitNT, waitRAF } from '../../../../tests/utils' -import { TransitionStub } from '../../../../tests/components' import { ModalPlugin } from '../index' -// Stub `` component -vtuConfig.stubs.transition = TransitionStub - -const localVue = createLocalVue() -localVue.use(ModalPlugin) +Vue.use(ModalPlugin) describe('$bvModal', () => { it('$bvModal.show() and $bvModal.hide() works', async () => { @@ -17,8 +13,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -44,7 +39,7 @@ describe('$bvModal', () => { await waitNT(wrapper.vm) await waitRAF() - expect($modal.element.style.display).toEqual('') + expect($modal.element.style.display).not.toEqual('none') wrapper.vm.$bvModal.hide('test1') @@ -65,8 +60,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -127,8 +121,7 @@ describe('$bvModal', () => { } } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/components/pagination-nav/pagination-nav.spec.js b/src/components/pagination-nav/pagination-nav.spec.js index adceaa1226a..1b6376bf1a5 100644 --- a/src/components/pagination-nav/pagination-nav.spec.js +++ b/src/components/pagination-nav/pagination-nav.spec.js @@ -1,10 +1,10 @@ import VueRouter from 'vue-router' -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { waitNT, waitRAF } from '../../../tests/utils' +import { Vue } from '../../vue' import { BPaginationNav } from './pagination-nav' -const localVue = createLocalVue() -localVue.use(VueRouter) +Vue.use(VueRouter) // The majority of tests for the core of pagination mixin are performed // in pagination.spec.js. Here we just test the differences that @@ -569,7 +569,7 @@ describe('pagination-nav', () => { const router = new VueRouter({ routes: [{ path: '/', component: FooRoute }, { path: '/:page', component: FooRoute }] }) - const wrapper = mount(App, { localVue, router }) + const wrapper = mount(App, { router }) expect(wrapper).toBeDefined() @@ -630,7 +630,7 @@ describe('pagination-nav', () => { const router = new VueRouter({ routes: [{ path: '/', component: FooRoute }, { path: '/:page', component: FooRoute }] }) - const wrapper = mount(App, { localVue, router }) + const wrapper = mount(App, { router }) expect(wrapper).toBeDefined() diff --git a/src/components/skeleton/skeleton-icon.spec.js b/src/components/skeleton/skeleton-icon.spec.js index 588ad539dbc..4e651453aa2 100644 --- a/src/components/skeleton/skeleton-icon.spec.js +++ b/src/components/skeleton/skeleton-icon.spec.js @@ -1,9 +1,9 @@ -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { IconsPlugin } from '../../icons' +import { Vue } from '../../vue' import { BSkeletonIcon } from './skeleton-icon' -const localVue = createLocalVue() -localVue.use(IconsPlugin) +Vue.use(IconsPlugin) describe('skeleton-icon', () => { it('root element is DIV and contains SVG', async () => { @@ -40,7 +40,6 @@ describe('skeleton-icon', () => { it('`icon` prop works', async () => { const wrapper = mount(BSkeletonIcon, { - localVue, propsData: { icon: 'heart' } @@ -55,7 +54,6 @@ describe('skeleton-icon', () => { it('`icon-props` is passed correctly to icon', async () => { const wrapper = mount(BSkeletonIcon, { - localVue, propsData: { icon: 'heart', iconProps: { diff --git a/src/components/toast/helpers/bv-toast.spec.js b/src/components/toast/helpers/bv-toast.spec.js index 9df82b9d1fb..f4478bb4ddd 100644 --- a/src/components/toast/helpers/bv-toast.spec.js +++ b/src/components/toast/helpers/bv-toast.spec.js @@ -1,9 +1,9 @@ -import { createLocalVue, createWrapper, mount } from '@vue/test-utils' +import { createWrapper, mount } from '@vue/test-utils' +import { Vue } from '../../../vue' import { waitNT, waitRAF } from '../../../../tests/utils' import { ToastPlugin } from '../index' -const localVue = createLocalVue() -localVue.use(ToastPlugin) +Vue.use(ToastPlugin) describe('$bvToast', () => { it('$bvToast.show() and $bvToast.hide() works', async () => { @@ -24,8 +24,7 @@ describe('$bvToast', () => { } } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) expect(wrapper.vm).toBeDefined() @@ -75,8 +74,7 @@ describe('$bvToast', () => { } } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) expect(wrapper.vm).toBeDefined() diff --git a/src/icons/icons.spec.js b/src/icons/icons.spec.js index 7eadaef06e0..951781b54a3 100644 --- a/src/icons/icons.spec.js +++ b/src/icons/icons.spec.js @@ -1,15 +1,14 @@ -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { IconsPlugin } from './index' import { BIcon } from './icon' import { makeIcon } from './helpers/make-icon' +import { Vue } from '../vue' -const localVue = createLocalVue() -localVue.use(IconsPlugin) +Vue.use(IconsPlugin) describe('icons', () => { it('b-icon has expected structure', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill' } @@ -40,7 +39,6 @@ describe('icons', () => { it('b-icon has expected structure when `stacked` prop is true', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', stacked: true @@ -77,7 +75,6 @@ describe('icons', () => { // As we don't specify a parent instance (which has all the registered // components for the icons) const wrapper = mount(BIcon, { - localVue, propsData: { icon: '' } @@ -99,7 +96,6 @@ describe('icons', () => { // This test assumes Vue doesn't puke on unknown component names // As we currently do not check the validity of icon names const wrapper = mount(BIcon, { - localVue, propsData: { icon: undefined } @@ -117,7 +113,6 @@ describe('icons', () => { it('b-icon with unknown icon name renders BIconBlank', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'unknown-icon-name' } @@ -138,7 +133,6 @@ describe('icons', () => { it('b-icon variant works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', variant: 'danger' @@ -164,7 +158,6 @@ describe('icons', () => { it('b-icon font-scale prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', fontScale: '1.25' @@ -200,7 +193,6 @@ describe('icons', () => { } const wrapper = mount(ParentComponent, { - localVue, propsData: { icon: 'fake-icon-test' } @@ -221,7 +213,6 @@ describe('icons', () => { it('b-icon rotate prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', rotate: '45' @@ -246,7 +237,6 @@ describe('icons', () => { it('b-icon scale prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', scale: '1.5' @@ -271,7 +261,6 @@ describe('icons', () => { it('b-icon flip-h prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', flipH: true @@ -296,7 +285,6 @@ describe('icons', () => { it('b-icon flip-v prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', flipV: true @@ -321,7 +309,6 @@ describe('icons', () => { it('b-icon flip-h prop works with flip-v prop', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', flipH: true, @@ -347,7 +334,6 @@ describe('icons', () => { it('b-icon scale prop works with flip-h prop', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', scale: '1.5', @@ -373,7 +359,6 @@ describe('icons', () => { it('b-icon scale prop works with flip-v prop', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', scale: '1.5', @@ -399,7 +384,6 @@ describe('icons', () => { it('b-icon scale prop works with flip-h and flip-v prop', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', scale: '1.5', @@ -426,7 +410,6 @@ describe('icons', () => { it('b-icon shift-h and shift-v props work', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', shiftH: 8, @@ -452,7 +435,6 @@ describe('icons', () => { it('b-icon shift-h and shift-v props work with rotate prop', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'alarm-fill', rotate: 45, @@ -482,7 +464,6 @@ describe('icons', () => { it('b-icon animation prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'circle-fill', animation: 'spin' @@ -501,7 +482,6 @@ describe('icons', () => { it('b-icon title prop works', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'circle-fill', title: 'Circle' @@ -523,7 +503,6 @@ describe('icons', () => { it('b-icon should not render when title is undefined', async () => { const wrapper = mount(BIcon, { - localVue, propsData: { icon: 'circle-fill' } diff --git a/src/mixins/click-out.spec.js b/src/mixins/click-out.spec.js index e1cada20170..3e4a12b5ff6 100644 --- a/src/mixins/click-out.spec.js +++ b/src/mixins/click-out.spec.js @@ -1,12 +1,11 @@ -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { waitNT } from '../../tests/utils' import { clickOutMixin } from './click-out' describe('utils/click-out', () => { it('works', async () => { let count = 0 - const localVue = createLocalVue() - const App = localVue.extend({ + const App = { mixins: [clickOutMixin], // `listenForClickOut` comes from the mixin data created() { @@ -20,11 +19,10 @@ describe('utils/click-out', () => { render(h) { return h('div', [h('button', 'button')]) } - }) + } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) const clickEvent = new MouseEvent('click') diff --git a/src/mixins/focus-in.spec.js b/src/mixins/focus-in.spec.js index 5d72cce4082..b25d08722fa 100644 --- a/src/mixins/focus-in.spec.js +++ b/src/mixins/focus-in.spec.js @@ -1,12 +1,11 @@ -import { createLocalVue, mount } from '@vue/test-utils' +import { mount } from '@vue/test-utils' import { waitNT } from '../../tests/utils' import { focusInMixin } from './focus-in' describe('mixins/focus-in', () => { it('works', async () => { let count = 0 - const localVue = createLocalVue() - const App = localVue.extend({ + const App = { mixins: [focusInMixin], // listenForFocusIn comes from the mixin created() { @@ -20,11 +19,10 @@ describe('mixins/focus-in', () => { render(h) { return h('div', [h('button', 'button')]) } - }) + } const wrapper = mount(App, { - attachTo: document.body, - localVue + attachTo: document.body }) const focusinEvent = new FocusEvent('focusin') From 010ab3180eaeb9f43e9c922fb6e47419504b8f99 Mon Sep 17 00:00:00 2001 From: Connor Forbes <connorforbes25@gmail.com> Date: Sun, 19 Dec 2021 01:03:05 +1000 Subject: [PATCH 353/378] fix(b-table): selected table header text no longer prevents table row selection (#6645) Co-authored-by: Illya Klymov <xanf@xanf.me> --- src/components/table/helpers/mixin-tbody.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/table/helpers/mixin-tbody.js b/src/components/table/helpers/mixin-tbody.js index c124095a314..cc6bf8a04ca 100644 --- a/src/components/table/helpers/mixin-tbody.js +++ b/src/components/table/helpers/mixin-tbody.js @@ -124,9 +124,15 @@ export const tbodyMixin = Vue.extend({ } }, onTBodyRowClicked(event) { + const { $refs } = this + const tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null // Don't emit event when the table is busy, the user clicked // on a non-disabled control or is selecting text - if (this.tbodyRowEventStopped(event) || filterEvent(event) || textSelectionActive(this.$el)) { + if ( + this.tbodyRowEventStopped(event) || + filterEvent(event) || + textSelectionActive(tbody || this.$el) + ) { return } this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event) From b1f6538e3fb4191d1ed03506214024ca4629eaee Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Sat, 6 Nov 2021 23:02:56 +0200 Subject: [PATCH 354/378] chore(compat): refactor icon search in component tree When we reach top of the tree - use Vue.component --- src/icons/icon.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/icons/icon.js b/src/icons/icon.js index 49c7f9d7bac..98959fa4781 100644 --- a/src/icons/icon.js +++ b/src/icons/icon.js @@ -12,10 +12,10 @@ import { props as BVIconBaseProps } from './helpers/icon-base' const findIconComponent = (ctx, iconName) => { if (!ctx) { - return null + return Vue.component(iconName) } const components = (ctx.$options || {}).components - const iconComponent = components[iconName] + const iconComponent = components && components[iconName] return iconComponent || findIconComponent(ctx.$parent, iconName) } From ccf62a49e875693fba09d9714dc035fe41f49e60 Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Wed, 17 Nov 2021 22:14:53 +0200 Subject: [PATCH 355/378] chore(compat): replace toHaveBeenCalledLastWith with relaxed check * toHaveBeenCalledLastWith is too strict especially when you are running compat Build generating TONS of warnings --- src/components/form-select/form-select-option-group.spec.js | 2 +- src/components/form-select/form-select.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/form-select/form-select-option-group.spec.js b/src/components/form-select/form-select-option-group.spec.js index fb22e992cfd..f4368efaeba 100644 --- a/src/components/form-select/form-select-option-group.spec.js +++ b/src/components/form-select/form-select-option-group.spec.js @@ -114,7 +114,7 @@ describe('form-select-option-group', () => { expect($options.at(1).attributes('value')).toBe('2') expect($options.at(2).attributes('value')).toBe('three') - expect(spyWarn).toHaveBeenLastCalledWith( + expect(spyWarn).toHaveBeenCalledWith( '[BootstrapVue warn]: BFormSelectOptionGroup - Setting prop "options" to an object is deprecated. Use the array format instead.' ) diff --git a/src/components/form-select/form-select.spec.js b/src/components/form-select/form-select.spec.js index 3ba6602692f..cb730eb98bc 100644 --- a/src/components/form-select/form-select.spec.js +++ b/src/components/form-select/form-select.spec.js @@ -559,7 +559,7 @@ describe('form-select', () => { expect($options.at(1).attributes('value')).toBe('2') expect($options.at(2).attributes('value')).toBe('three') - expect(spyWarn).toHaveBeenLastCalledWith( + expect(spyWarn).toHaveBeenCalledWith( '[BootstrapVue warn]: BFormSelect - Setting prop "options" to an object is deprecated. Use the array format instead.' ) From 6353c319609a91e96c2183795c87baecfa5aeb6e Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Wed, 17 Nov 2021 22:59:04 +0200 Subject: [PATCH 356/378] chore(compat): deal with timing differences in Vue 2 and Vue 3 * apply nextTick and waitRAF here & there to be consistent --- src/components/modal/modal.spec.js | 3 +++ src/components/popover/popover.spec.js | 4 +++- src/components/table/table-provider.spec.js | 3 +++ src/components/tooltip/tooltip.spec.js | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/modal/modal.spec.js b/src/components/modal/modal.spec.js index 827693139ea..ee7d62985a6 100644 --- a/src/components/modal/modal.spec.js +++ b/src/components/modal/modal.spec.js @@ -571,6 +571,7 @@ describe('modal', () => { await waitRAF() await waitNT(wrapper.vm) await waitRAF() + await waitNT(wrapper.vm) // Modal should now be closed expect($modal.element.style.display).toEqual('none') @@ -625,6 +626,7 @@ describe('modal', () => { await waitRAF() await waitNT(wrapper.vm) await waitRAF() + await waitNT(wrapper.vm) // Modal should now be closed expect($modal.element.style.display).toEqual('none') @@ -680,6 +682,7 @@ describe('modal', () => { await waitRAF() await waitNT(wrapper.vm) await waitRAF() + await waitNT(wrapper.vm) // Modal should now be closed expect($modal.element.style.display).toEqual('none') diff --git a/src/components/popover/popover.spec.js b/src/components/popover/popover.spec.js index 44189769b93..3fedb61ffda 100644 --- a/src/components/popover/popover.spec.js +++ b/src/components/popover/popover.spec.js @@ -87,10 +87,11 @@ describe('b-popover', () => { })) }) - afterEach(() => { + afterEach(async () => { // Reset overrides document.createRange = originalCreateRange Element.prototype.getBoundingClientRect = origGetBCR + await waitRAF() }) it('has expected default structure', async () => { @@ -147,6 +148,7 @@ describe('b-popover', () => { await waitNT(wrapper.vm) await waitRAF() jest.runOnlyPendingTimers() + await waitNT(wrapper.vm) expect(wrapper.element.tagName).toBe('ARTICLE') expect(wrapper.attributes('id')).toBeDefined() diff --git a/src/components/table/table-provider.spec.js b/src/components/table/table-provider.spec.js index 623787fdf9d..af05056b4bc 100644 --- a/src/components/table/table-provider.spec.js +++ b/src/components/table/table-provider.spec.js @@ -206,11 +206,13 @@ describe('table > provider functions', () => { // Instance refresh method wrapper.vm.refresh() await waitNT(wrapper.vm) + await waitNT(wrapper.vm) expect(wrapper.emitted('refreshed').length).toBe(2) // Root event refreshing wrapper.vm.$root.$emit('bv::refresh::table', 'the-table') await waitNT(wrapper.vm) + await waitNT(wrapper.vm) expect(wrapper.emitted('refreshed').length).toBe(3) wrapper.destroy() @@ -298,6 +300,7 @@ describe('table > provider functions', () => { await wrapper.setProps({ items: provider2 }) await waitNT(wrapper.vm) + await waitNT(wrapper.vm) expect(wrapper.find('tbody').exists()).toBe(true) expect( diff --git a/src/components/tooltip/tooltip.spec.js b/src/components/tooltip/tooltip.spec.js index 5903d64cbad..6223dd10e8f 100644 --- a/src/components/tooltip/tooltip.spec.js +++ b/src/components/tooltip/tooltip.spec.js @@ -95,6 +95,7 @@ describe('b-tooltip', () => { // Reset overrides document.createRange = originalCreateRange Element.prototype.getBoundingClientRect = origGetBCR + return waitRAF() }) it('has expected default structure', async () => { From 92d588f84eca465a10ab7c9938bb2740a3b79386 Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Wed, 17 Nov 2021 23:17:52 +0200 Subject: [PATCH 357/378] chore(compat): refactor skeleton-wrapper test @vue/test-utils v2 have special handling of functional component Refactor test to be independent of this --- src/components/skeleton/skeleton-wrapper.spec.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/skeleton/skeleton-wrapper.spec.js b/src/components/skeleton/skeleton-wrapper.spec.js index 889b39101c0..dcfc5d8bead 100644 --- a/src/components/skeleton/skeleton-wrapper.spec.js +++ b/src/components/skeleton/skeleton-wrapper.spec.js @@ -31,8 +31,7 @@ describe('skeleton-wrapper', () => { } }) - expect(wrapper.element.tagName).toBe('BUTTON') - expect(wrapper.text()).toBe('Action') + expect(wrapper.find('button').text()).toBe('Action') }) it('root element has correct aria attributes in loading state', async () => { From 6683001673e5616d0dc647f8d5b0ee7aa8087057 Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Wed, 17 Nov 2021 23:20:29 +0200 Subject: [PATCH 358/378] chore(compat): fix table-sorting test * workaround minor inconsistency in emits count between Vue 2 and 3 --- src/components/table/table-sorting.spec.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/table/table-sorting.spec.js b/src/components/table/table-sorting.spec.js index 5f79eb88c11..d569d2ebc60 100644 --- a/src/components/table/table-sorting.spec.js +++ b/src/components/table/table-sorting.spec.js @@ -201,7 +201,12 @@ describe('table > sorting', () => { sortBy: null, sortDesc: false }) - expect(wrapper.emitted('input').length).toBe(4) + const [[lastInput]] = wrapper.emitted('input').reverse() + expect(lastInput).toStrictEqual([ + { a: 3, b: 'b', c: 'x' }, + { a: 1, b: 'c', c: 'y' }, + { a: 2, b: 'a', c: 'z' } + ]) $rows = wrapper.findAll('tbody > tr').wrappers expect($rows.length).toBe(3) // Map the rows to the first column text value From 8ce291b54360c717646fb10927423220b6646c4d Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Sat, 20 Nov 2021 02:30:10 +0200 Subject: [PATCH 359/378] chore(compat): refactor tests not to use $children --- src/components/dropdown/dropdown-item.spec.js | 30 ++++---------- src/components/link/link.spec.js | 41 +++++++------------ .../pagination-nav/pagination-nav.spec.js | 5 +++ src/mixins/listeners.spec.js | 16 ++++++++ 4 files changed, 45 insertions(+), 47 deletions(-) diff --git a/src/components/dropdown/dropdown-item.spec.js b/src/components/dropdown/dropdown-item.spec.js index 27a29a6bd01..5533e58df67 100644 --- a/src/components/dropdown/dropdown-item.spec.js +++ b/src/components/dropdown/dropdown-item.spec.js @@ -116,8 +116,6 @@ describe('dropdown-item', () => { h(BDropdownItem, { props: { href: '/a' } }, ['href-a']), // <router-link> h(BDropdownItem, { props: { to: { path: '/b' } } }, ['to-path-b']), - // Regular link - h(BDropdownItem, { props: { href: '/b' } }, ['href-a']), h('router-view') ]) } @@ -130,28 +128,18 @@ describe('dropdown-item', () => { expect(wrapper.vm).toBeDefined() expect(wrapper.element.tagName).toBe('UL') - expect(wrapper.findAll('li').length).toBe(4) - expect(wrapper.findAll('a').length).toBe(4) + expect(wrapper.findAll('li').length).toBe(3) + expect(wrapper.findAll('a').length).toBe(3) const $links = wrapper.findAllComponents('a') - expect($links.at(0).vm).toBeDefined() - expect($links.at(0).vm.$options.name).toBe('BLink') - expect($links.at(0).vm.$children.length).toBe(1) - expect($links.at(0).vm.$children[0].$options.name).toBe('RouterLink') - - expect($links.at(1).vm).toBeDefined() - expect($links.at(1).vm.$options.name).toBe('BLink') - expect($links.at(1).vm.$children.length).toBe(0) - - expect($links.at(2).vm).toBeDefined() - expect($links.at(2).vm.$options.name).toBe('BLink') - expect($links.at(2).vm.$children.length).toBe(1) - expect($links.at(2).vm.$children[0].$options.name).toBe('RouterLink') - - expect($links.at(3).vm).toBeDefined() - expect($links.at(3).vm.$options.name).toBe('BLink') - expect($links.at(3).vm.$children.length).toBe(0) + $links.wrappers.forEach($link => { + expect($link.vm).toBeDefined() + expect($links.at(0).vm.$options.name).toBe('BLink') + }) + expect( + $links.wrappers.map($link => $link.findComponent({ name: 'RouterLink' }).exists()) + ).toStrictEqual([true, false, true]) wrapper.destroy() }) diff --git a/src/components/link/link.spec.js b/src/components/link/link.spec.js index fbf05f199b2..36545bd395a 100644 --- a/src/components/link/link.spec.js +++ b/src/components/link/link.spec.js @@ -395,8 +395,6 @@ describe('b-link', () => { h('b-link', { props: { href: '/a' } }, ['href-a']), // router-link h('b-link', { props: { to: { path: '/b' } } }, ['to-path-b']), - // regular link - h('b-link', { props: { href: '/b' } }, ['href-a']), // g-link h('b-link', { props: { routerComponentName: 'g-link', to: '/a' } }, ['g-link-a']), h('router-view') @@ -412,32 +410,23 @@ describe('b-link', () => { expect(wrapper.vm).toBeDefined() expect(wrapper.element.tagName).toBe('MAIN') - expect(wrapper.findAll('a').length).toBe(5) + expect(wrapper.findAll('a').length).toBe(4) const $links = wrapper.findAllComponents('a') - - expect($links.at(0).vm).toBeDefined() - expect($links.at(0).vm.$options.name).toBe('BLink') - expect($links.at(0).vm.$children.length).toBe(1) - expect($links.at(0).vm.$children[0].$options.name).toBe('RouterLink') - - expect($links.at(1).vm).toBeDefined() - expect($links.at(1).vm.$options.name).toBe('BLink') - expect($links.at(1).vm.$children.length).toBe(0) - - expect($links.at(2).vm).toBeDefined() - expect($links.at(2).vm.$options.name).toBe('BLink') - expect($links.at(2).vm.$children.length).toBe(1) - expect($links.at(2).vm.$children[0].$options.name).toBe('RouterLink') - - expect($links.at(3).vm).toBeDefined() - expect($links.at(3).vm.$options.name).toBe('BLink') - expect($links.at(3).vm.$children.length).toBe(0) - - expect($links.at(4).vm).toBeDefined() - expect($links.at(4).vm.$options.name).toBe('BLink') - expect($links.at(4).vm.$children.length).toBe(1) - expect($links.at(4).vm.$children[0].$options.name).toBe('GLink') + $links.wrappers.forEach($link => { + expect($link.vm).toBeDefined() + expect($links.at(0).vm.$options.name).toBe('BLink') + }) + expect( + $links.wrappers.map($link => $link.findComponent({ name: 'RouterLink' }).exists()) + ).toStrictEqual([true, false, true, false]) + + expect( + $links + .at(3) + .findComponent(GLink) + .exists() + ).toBe(true) wrapper.destroy() }) diff --git a/src/components/pagination-nav/pagination-nav.spec.js b/src/components/pagination-nav/pagination-nav.spec.js index 1b6376bf1a5..78735ba2bc0 100644 --- a/src/components/pagination-nav/pagination-nav.spec.js +++ b/src/components/pagination-nav/pagination-nav.spec.js @@ -408,6 +408,7 @@ describe('pagination-nav', () => { it('clicking buttons updates the v-model', async () => { const App = { + compatConfig: { MODE: 3, RENDER_FUNCTION: 'suppress-warning' }, methods: { onPageClick(bvEvent, page) { // Prevent 3rd page from being selected @@ -543,6 +544,7 @@ describe('pagination-nav', () => { it('works with $router to detect path and linkGen returns location object', async () => { const App = { + compatConfig: { MODE: 3, COMPONENT_FUNCTIONAL: 'suppress-warning' }, components: { BPaginationNav }, methods: { linkGen(page) { @@ -561,6 +563,7 @@ describe('pagination-nav', () => { } // Our router view component const FooRoute = { + compatConfig: { MODE: 3, RENDER_FUNCTION: 'suppress-warning' }, render(h) { return h('div', { class: 'foo-content' }, ['stub']) } @@ -604,6 +607,7 @@ describe('pagination-nav', () => { it('works with $router to detect path and use-router set and linkGen returns string', async () => { const App = { + compatConfig: { MODE: 3, COMPONENT_FUNCTIONAL: 'suppress-warning' }, components: { BPaginationNav }, methods: { linkGen(page) { @@ -622,6 +626,7 @@ describe('pagination-nav', () => { } // Our router view component const FooRoute = { + compatConfig: { MODE: 3, RENDER_FUNCTION: 'suppress-warning' }, render(h) { return h('div', { class: 'foo-content' }, ['stub']) } diff --git a/src/mixins/listeners.spec.js b/src/mixins/listeners.spec.js index 4077638f631..fe4c0bd2c59 100644 --- a/src/mixins/listeners.spec.js +++ b/src/mixins/listeners.spec.js @@ -6,6 +6,11 @@ import { listenersMixin } from './listeners' describe('mixins > listeners', () => { it('works', async () => { const BTest = { + compatConfig: { + MODE: 3, + RENDER_FUNCTION: 'suppress-warning', + INSTANCE_LISTENERS: 'suppress-warning' + }, name: 'BTest', mixins: [listenersMixin], inheritAttrs: false, @@ -14,6 +19,7 @@ describe('mixins > listeners', () => { } } const App = { + compatConfig: { MODE: 3, RENDER_FUNCTION: 'suppress-warning' }, name: 'App', props: ['listenClick', 'listenFocus', 'listenBlur'], computed: { @@ -91,6 +97,11 @@ describe('mixins > listeners', () => { let input2RenderCount = 0 const Input1 = { + compatConfig: { + MODE: 3, + RENDER_FUNCTION: 'suppress-warning', + INSTANCE_LISTENERS: 'suppress-warning' + }, props: ['value'], render(h) { input1RenderCount++ @@ -102,6 +113,11 @@ describe('mixins > listeners', () => { } } const Input2 = { + compatConfig: { + MODE: 3, + RENDER_FUNCTION: 'suppress-warning', + INSTANCE_LISTENERS: 'suppress-warning' + }, props: ['value'], mixins: [listenersMixin], render(h) { From 9f70574d2731392525a06cc584b67c492a108fd6 Mon Sep 17 00:00:00 2001 From: Sam Turrell <sam@samturrell.co.uk> Date: Sat, 18 Dec 2021 15:20:00 +0000 Subject: [PATCH 360/378] Update README.md (#6794) Co-authored-by: Illya Klymov <xanf@xanf.me> --- src/components/breadcrumb/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/breadcrumb/README.md b/src/components/breadcrumb/README.md index 4b41ca2d539..37ce9291864 100644 --- a/src/components/breadcrumb/README.md +++ b/src/components/breadcrumb/README.md @@ -39,8 +39,9 @@ ## Breadcrumb items Items are rendered using `:items` prop. It can be an array of objects to provide link and active -state. Links can be `href`'s for anchor tags, or `to`'s for router-links. Active state of last -element is automatically set if it is `undefined`. +state. Links can be `href`'s for anchor tags, or `to`'s for router-links. Breadcrumb works under +the assumption that there is one active link in every set of ordered breadcrumbs, so the active +state of the last element is automatically set to `false`. <!-- eslint-disable no-unused-vars --> From d2133b842b0f6152dd3e38c2646290c550d8e8cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Dec 2021 17:34:35 +0200 Subject: [PATCH 361/378] chore(deps-dev): bump eslint-plugin-prettier from 3.4.0 to 3.4.1 (#6880) Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/commits) --- updated-dependencies: - dependency-name: eslint-plugin-prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Illya Klymov <xanf@xanf.me> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5c93d370808..d42f4b2b5d0 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "eslint-plugin-jest": "^24.3.6", "eslint-plugin-markdown": "^2.1.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.0", + "eslint-plugin-prettier": "^3.4.1", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-vue": "^7.9.0", "esm": "^3.2.25", diff --git a/yarn.lock b/yarn.lock index b935148cd5c..5d3a2c4fea8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5891,10 +5891,10 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" - integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== +eslint-plugin-prettier@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== dependencies: prettier-linter-helpers "^1.0.0" From 7ea67d2e9455579dfba18b45b732dcf4f19bece6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Dec 2021 14:08:43 +0200 Subject: [PATCH 362/378] chore(deps-dev): bump improved-yarn-audit from 2.3.2 to 3.0.0 (#6881) Bumps [improved-yarn-audit](https://github.com/djfdyuruiry/improved-yarn-audit) from 2.3.2 to 3.0.0. - [Release notes](https://github.com/djfdyuruiry/improved-yarn-audit/releases) - [Commits](https://github.com/djfdyuruiry/improved-yarn-audit/commits/v3.0.0) --- updated-dependencies: - dependency-name: improved-yarn-audit dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Illya Klymov <xanf@xanf.me> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d42f4b2b5d0..06518f6fe2a 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "highlight.js": "^10.7.2", "html-loader": "^1.3.2", "husky": "^6.0.0", - "improved-yarn-audit": "^2.3.2", + "improved-yarn-audit": "^3.0.0", "jest": "^26.6.3", "lint-staged": "^11.0.0", "loader-utils": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 5d3a2c4fea8..7ba2633fcb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7585,10 +7585,10 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -improved-yarn-audit@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/improved-yarn-audit/-/improved-yarn-audit-2.3.2.tgz#f18e13c6ca2c96e80fec1818619cbc0ab9a326be" - integrity sha512-82F04JFheMtMOMOp8uyfu8kicEttYRfl0d0j0wZOLGCDEbDg4qaXafM6+At1u11vrqWSWlJJidHMOWkLoWV7EA== +improved-yarn-audit@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/improved-yarn-audit/-/improved-yarn-audit-3.0.0.tgz#dfb09cea1a3a92c790ea2b4056431f6fb1b99bfa" + integrity sha512-b7CrBYYwMidtPciCBkW62C7vqGjAV10bxcAWHeJvGrltrcMSEnG5I9CQgi14nmAlUKUQiSvpz47Lo3d7Z3Vjcg== imurmurhash@^0.1.4: version "0.1.4" From fefc76b88a6ccd95573b22a6371112eb02ae1c8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Dec 2021 14:16:30 +0200 Subject: [PATCH 363/378] chore(deps-dev): bump autoprefixer from 10.2.5 to 10.4.0 (#6883) Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.2.5 to 10.4.0. - [Release notes](https://github.com/postcss/autoprefixer/releases) - [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/autoprefixer/compare/10.2.5...10.4.0) --- updated-dependencies: - dependency-name: autoprefixer dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 60 +++++++++++++++------------------------------------- 2 files changed, 18 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index 06518f6fe2a..bf6f4ea1013 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@nuxtjs/sitemap": "^2.4.0", "@testing-library/jest-dom": "^5.12.0", "@vue/test-utils": "^1.3.0", - "autoprefixer": "^10.2.5", + "autoprefixer": "^10.4.0", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", diff --git a/yarn.lock b/yarn.lock index 7ba2633fcb9..c66f24c6442 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3053,16 +3053,16 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.2.5: - version "10.2.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d" - integrity sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA== +autoprefixer@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" + integrity sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA== dependencies: - browserslist "^4.16.3" - caniuse-lite "^1.0.30001196" - colorette "^1.2.2" - fraction.js "^4.0.13" + browserslist "^4.17.5" + caniuse-lite "^1.0.30001272" + fraction.js "^4.1.1" normalize-range "^0.1.2" + picocolors "^1.0.0" postcss-value-parser "^4.1.0" autoprefixer@^9.6.1: @@ -3558,18 +3558,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.16.6, browserslist@^4.6.4: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" - -browserslist@^4.17.5, browserslist@^4.18.1: +browserslist@*, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.6.4: version "4.19.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== @@ -3882,15 +3871,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== - -caniuse-lite@^1.0.30001286: - version "1.0.30001286" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" - integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001286: + version "1.0.30001291" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz#08a8d2cfea0b2cf2e1d94dd795942d0daef6108c" + integrity sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA== capital-case@^1.0.4: version "1.0.4" @@ -5562,11 +5546,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.723: - version "1.3.727" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz#857e310ca00f0b75da4e1db6ff0e073cc4a91ddf" - integrity sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg== - electron-to-chromium@^1.4.17: version "1.4.18" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.18.tgz#2fb282213937986a20a653315963070e8321b3f3" @@ -6523,10 +6502,10 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= -fraction.js@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" - integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== +fraction.js@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" + integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== fragment-cache@^0.2.1: version "0.2.1" @@ -10049,11 +10028,6 @@ node-object-hash@^1.2.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== -node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" From dfbc56d357281f2c517d541ec475af559fabe556 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Dec 2021 16:45:10 +0200 Subject: [PATCH 364/378] chore(deps-dev): bump @babel/standalone from 7.14.1 to 7.16.6 (#6884) Bumps [@babel/standalone](https://github.com/babel/babel/tree/HEAD/packages/babel-standalone) from 7.14.1 to 7.16.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.16.6/packages/babel-standalone) --- updated-dependencies: - dependency-name: "@babel/standalone" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Illya Klymov <xanf@xanf.me> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bf6f4ea1013..c7b21d06e97 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-runtime": "^7.16.5", "@babel/preset-env": "^7.14.2", - "@babel/standalone": "^7.14.1", + "@babel/standalone": "^7.16.6", "@nuxt/content": "^1.14.0", "@nuxtjs/google-analytics": "^2.4.0", "@nuxtjs/pwa": "^3.3.5", diff --git a/yarn.lock b/yarn.lock index c66f24c6442..c56dc70d5c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1007,10 +1007,10 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/standalone@^7.14.1": - version "7.14.1" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.14.1.tgz#2c5f6908f03108583eea75bdcc94eb29e720fbac" - integrity sha512-HFkwJyIv91mP38447ERwnVgw9yhx2/evs+r0+1hdAXf1Q1fBypPwtY8YOqsPniqoYCEVbBIqYELt0tNrOAg/Iw== +"@babel/standalone@^7.16.6": + version "7.16.6" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.16.6.tgz#2999d50df80207f747095118c19ed63a596a268b" + integrity sha512-wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw== "@babel/template@^7.12.13", "@babel/template@^7.16.0", "@babel/template@^7.3.3": version "7.16.0" From 48ec2e042f1698cfb05b886756d547dffa12cdce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Dec 2021 17:03:06 +0200 Subject: [PATCH 365/378] chore(deps-dev): bump terser from 5.7.0 to 5.10.0 (#6885) Bumps [terser](https://github.com/terser/terser) from 5.7.0 to 5.10.0. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/compare/v5.7.0...v5.10.0) --- updated-dependencies: - dependency-name: terser dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c7b21d06e97..9e2f2f01379 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "sass": "^1.45.0", "sass-loader": "^10.1.1", "standard-version": "^9.3.0", - "terser": "^5.7.0", + "terser": "^5.10.0", "vue": "^2.6.12", "vue-jest": "^3.0.7", "vue-router": "^3.5.1", diff --git a/yarn.lock b/yarn.lock index c56dc70d5c0..fdb4aa76fd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13023,10 +13023,10 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -13659,14 +13659,14 @@ terser@^4.1.2, terser@^4.6.13, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.4, terser@^5.5.1, terser@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== +terser@^5.10.0, terser@^5.3.4, terser@^5.5.1: + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== dependencies: commander "^2.20.0" source-map "~0.7.2" - source-map-support "~0.5.19" + source-map-support "~0.5.20" test-exclude@^6.0.0: version "6.0.0" From 524652aa88d308d5e726fcb47d2966b98cff2911 Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Wed, 17 Nov 2021 23:15:18 +0200 Subject: [PATCH 366/378] chore(compat): fetch fresh template element when checking visibility Vue 3 and Vue 2 seems to have different order of execution, so in order to get rid of depending on it - just fetch a fresh $tip inside setInterval for visibility check --- src/components/tooltip/helpers/bv-tooltip.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/tooltip/helpers/bv-tooltip.js b/src/components/tooltip/helpers/bv-tooltip.js index 8ee30be82e0..1f0d114ac82 100644 --- a/src/components/tooltip/helpers/bv-tooltip.js +++ b/src/components/tooltip/helpers/bv-tooltip.js @@ -756,9 +756,9 @@ export const BVTooltip = /*#__PURE__*/ Vue.extend({ visibleCheck(on) { this.clearVisibilityInterval() const target = this.getTarget() - const tip = this.getTemplateElement() if (on) { this.$_visibleInterval = setInterval(() => { + const tip = this.getTemplateElement() if (tip && this.localShow && (!target.parentNode || !isVisible(target))) { // Target element is no longer visible or not in DOM, so force-hide the tooltip this.forceHide() From 4222833b5d74e5a38c1ded814cc3a550c743dce1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Dec 2021 17:12:35 +0200 Subject: [PATCH 367/378] chore(deps): bump bootstrap from 4.5.3 to 4.6.0 (#6337) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.5.3 to 4.6.0. - [Release notes](https://github.com/twbs/bootstrap/releases) - [Commits](https://github.com/twbs/bootstrap/compare/v4.5.3...v4.6.0) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jacob Müller <jacob.mueller.elz@gmail.com> Co-authored-by: Illya Klymov <xanf@xanf.me> From c9d244ab0a40f6e67575d129d640cd555da21fdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jan 2022 16:51:02 +0200 Subject: [PATCH 368/378] chore(deps): bump shelljs from 0.8.4 to 0.8.5 (#6896) Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5. - [Release notes](https://github.com/shelljs/shelljs/releases) - [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md) - [Commits](https://github.com/shelljs/shelljs/compare/v0.8.4...v0.8.5) --- updated-dependencies: - dependency-name: shelljs dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index fdb4aa76fd1..25e6f7f2494 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6851,9 +6851,9 @@ glob-to-regexp@^0.4.1: integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@7.x, glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -7817,13 +7817,20 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.2.0, is-core-module@^2.8.0: +is-core-module@^2.2.0: version "2.8.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== dependencies: has "^1.0.3" +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -10745,7 +10752,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -12387,7 +12394,16 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.2.0, resolve@^1.20.0: +resolve@^1.1.6: + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + dependencies: + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.2.0, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -12822,9 +12838,9 @@ shell-quote@^1.6.1: integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== shelljs@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -13507,6 +13523,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" From c645a33790ccaa0e4695dc7b74f9c9d7a812aa8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jan 2022 17:53:02 +0200 Subject: [PATCH 369/378] chore(deps): bump node-fetch from 2.6.1 to 2.6.7 (#6903) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 25e6f7f2494..34593464fa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9967,9 +9967,11 @@ node-fetch-npm@^2.0.2: safe-buffer "^5.1.1" node-fetch@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" node-html-parser@^3.2.0: version "3.2.0" @@ -13869,6 +13871,11 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -14678,6 +14685,11 @@ web-namespaces@^1.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -14830,6 +14842,14 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" From 2eb08fe892478e4732e195cfb4ed12824e14c03d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 09:50:40 +0300 Subject: [PATCH 370/378] chore(deps): bump actions/cache from 2.1.7 to 3.0.2 (#6954) Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.0.2. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v2.1.7...v3.0.2) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c202ada749..023309ffa8d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache node_modules - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ matrix.os }}-node-v${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fefe51f31e3..e1c7ea0070e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache node_modules - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ matrix.os }}-node-v${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }} @@ -70,7 +70,7 @@ jobs: run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache node_modules - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ matrix.os }}-node-v${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }} @@ -107,7 +107,7 @@ jobs: run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache node_modules - uses: actions/cache@v2.1.7 + uses: actions/cache@v3.0.2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ matrix.os }}-node-v${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }} From 14ae1c7cd8f4b24633af2dde84d0c3a35a88583d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 09:57:29 +0300 Subject: [PATCH 371/378] chore(deps): bump actions/setup-node from 2.5.0 to 3.1.1 (#6953) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.0 to 3.1.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.5.0...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 023309ffa8d..27fda848e11 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v2 - name: Set Node.js version - uses: actions/setup-node@v2.5.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e1c7ea0070e..3257e94e9a9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v2 - name: Set Node.js version - uses: actions/setup-node@v2.5.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node }} @@ -61,7 +61,7 @@ jobs: uses: actions/checkout@v2 - name: Set Node.js version - uses: actions/setup-node@v2.5.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node }} @@ -98,7 +98,7 @@ jobs: uses: actions/checkout@v2 - name: Set Node.js version - uses: actions/setup-node@v2.5.0 + uses: actions/setup-node@v3.1.1 with: node-version: ${{ matrix.node }} From 6b3bd36fa1718c4d7e1d1950822bd7cc016fffa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 10:09:49 +0300 Subject: [PATCH 372/378] chore(deps): bump codecov/codecov-action from 2.1.0 to 3.0.0 (#6955) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.0.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.1.0...v3.0.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3257e94e9a9..de0d9ca3431 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -123,7 +123,7 @@ jobs: run: yarn run test:unit --coverage --maxWorkers=2 - name: CodeCov - uses: codecov/codecov-action@v2.1.0 + uses: codecov/codecov-action@v3.0.0 with: token: ${{ secrets.CODECOV_TOKEN }} flags: unittests From 8501a326f39df42111f77fdc8c78dc0253e23a5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 10:14:10 +0300 Subject: [PATCH 373/378] chore(deps): bump minimist from 1.2.5 to 1.2.6 (#6949) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34593464fa8..c3acf423203 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9710,9 +9710,9 @@ minimist-options@4.1.0: kind-of "^6.0.3" minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass-collect@^1.0.2: version "1.0.2" From 048e847ebf68bbba8b62349bec05211f1acfa8cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 10:39:39 +0300 Subject: [PATCH 374/378] chore(deps): bump prismjs from 1.25.0 to 1.27.0 (#6922) Bumps [prismjs](https://github.com/PrismJS/prism) from 1.25.0 to 1.27.0. - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.25.0...v1.27.0) --- updated-dependencies: - dependency-name: prismjs dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c3acf423203..161ae33b96c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11662,9 +11662,9 @@ pretty@^2.0.0: js-beautify "^1.6.12" prismjs@^1.23.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" - integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== + version "1.27.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" + integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== process-nextick-args@~2.0.0: version "2.0.1" From 6c34b1491a045f6006b6092610a20047e438c64f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Apr 2022 10:47:12 +0300 Subject: [PATCH 375/378] chore(deps): bump actions/checkout from 2 to 3 (#6928) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/test.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27fda848e11..bee69ae881f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set Node.js version uses: actions/setup-node@v3.1.1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ffd81997f3f..526eca1d7bb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index de0d9ca3431..af6e86d5c79 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set Node.js version uses: actions/setup-node@v3.1.1 @@ -58,7 +58,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set Node.js version uses: actions/setup-node@v3.1.1 @@ -95,7 +95,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set Node.js version uses: actions/setup-node@v3.1.1 From 94c810aa967a503cab8333fd72d2fce5e5944142 Mon Sep 17 00:00:00 2001 From: Pooya Parsa <pyapar@gmail.com> Date: Sun, 17 Apr 2022 13:52:52 +0200 Subject: [PATCH 376/378] build: update release scripts Co-authored-by: Illya Klymov <xanf@xanf.me> --- package.json | 26 +++++++++++++------------- scripts/build.sh | 6 +++--- src/components/breadcrumb/README.md | 6 +++--- src/components/toast/README.md | 12 ++++++------ src/icons/icons.d.ts | 2 +- src/icons/icons.js | 2 +- src/icons/plugin.js | 2 +- yarn.lock | 10 +++++----- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 9e2f2f01379..2cb1d69a00e 100644 --- a/package.json +++ b/package.json @@ -2,21 +2,21 @@ "name": "bootstrap-vue", "version": "2.21.2", "description": "With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extensive and automated WAI-ARIA accessibility markup.", - "main": "dist/bootstrap-vue.common.js", - "web": "dist/bootstrap-vue.js", - "module": "esm/index.js", - "jsnext:main": "esm/index.js", - "source": "src/index.js", - "sass": "src/index.scss", - "style": "dist/bootstrap-vue.css", + "main": "./dist/bootstrap-vue.common.js", + "web": "./dist/bootstrap-vue.js", + "module": "./esm/index.js", + "jsnext:main": "./esm/index.js", + "source": "./src/index.js", + "sass": "./src/index.scss", + "style": "./dist/bootstrap-vue.css", "license": "MIT", "repository": "bootstrap-vue/bootstrap-vue", "homepage": "https://bootstrap-vue.org", - "types": "src/index.d.ts", - "web-types": "dist/web-types.json", + "types": "./src/index.d.ts", + "web-types": "./dist/web-types.json", "vetur": { - "tags": "dist/vetur-tags.json", - "attributes": "dist/vetur-attributes.json" + "tags": "./dist/vetur-tags.json", + "attributes": "./dist/vetur-attributes.json" }, "contributors": [ { @@ -69,7 +69,7 @@ "prepare": "husky install", "prettify": "prettier --write '**/*.{js,json,md,scss,ts,vue}'", "release": "yarn run prettify && yarn run test && yarn run build && yarn run release-notes && standard-version", - "release-notes": "node -r esm scripts/release-notes.js", + "release-notes": "jiti ./scripts/release-notes", "test": "yarn run test:lint && yarn run test:unit", "test:lint": "yarn run lint", "test:unit": "jest", @@ -123,13 +123,13 @@ "eslint-plugin-prettier": "^3.4.1", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-vue": "^7.9.0", - "esm": "^3.2.25", "execa": "^5.0.0", "highlight.js": "^10.7.2", "html-loader": "^1.3.2", "husky": "^6.0.0", "improved-yarn-audit": "^3.0.0", "jest": "^26.6.3", + "jiti": "^1.13.0", "lint-staged": "^11.0.0", "loader-utils": "^2.0.0", "lodash": "^4.17.21", diff --git a/scripts/build.sh b/scripts/build.sh index e3c703c20e3..497e2761fb7 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -8,12 +8,12 @@ echo "Building BootstrapVue ${BV_VERSION}" echo '' echo 'Generating icon source files...' -node -r esm scripts/create-icons.js || exit 1 +yarn jiti ./scripts/create-icons || exit 1 echo 'done.' echo '' echo 'Checking plugin metadata...' -node -r esm scripts/check-plugin-meta.js || exit 1 +yarn jiti ./scripts/check-plugin-meta || exit 1 echo 'Done.' echo '' @@ -144,7 +144,7 @@ echo 'Done.' echo '' echo 'Building IDE auto-complete helper files...' -node -r esm scripts/create-web-types.js || exit 1 +yarn jiti ./scripts/create-web-types || exit 1 echo 'Done.' echo '' diff --git a/src/components/breadcrumb/README.md b/src/components/breadcrumb/README.md index 37ce9291864..63330fb2b63 100644 --- a/src/components/breadcrumb/README.md +++ b/src/components/breadcrumb/README.md @@ -39,9 +39,9 @@ ## Breadcrumb items Items are rendered using `:items` prop. It can be an array of objects to provide link and active -state. Links can be `href`'s for anchor tags, or `to`'s for router-links. Breadcrumb works under -the assumption that there is one active link in every set of ordered breadcrumbs, so the active -state of the last element is automatically set to `false`. +state. Links can be `href`'s for anchor tags, or `to`'s for router-links. Breadcrumb works under the +assumption that there is one active link in every set of ordered breadcrumbs, so the active state of +the last element is automatically set to `false`. <!-- eslint-disable no-unused-vars --> diff --git a/src/components/toast/README.md b/src/components/toast/README.md index 2c97cd11f21..41f43cb8a62 100644 --- a/src/components/toast/README.md +++ b/src/components/toast/README.md @@ -635,12 +635,12 @@ provides general guidelines when using toasts. - For toasts with long textual content, adjust the `auto-hide-delay` to a larger timeout, to allow users time to read the content of the toast. The average person reads about 200 words per minute, so a good length of time to keep messages up is 5 seconds, plus 300 extra milliseconds per word. - The shortest default that should be used as a best practice is 5 - seconds (5000ms). In addition to a reasonable default timeout, you could also allow the user to - choose how long they want toasts to stay up for. Most people inherently understand whether they - are fast or slow readers. Having a profile setting that is part of the user login will allow slow - readers to pick a longer time if the messages are going away too fast, and fast readers to pick a - short time if the messages are staying up too long. + The shortest default that should be used as a best practice is 5 seconds (5000ms). In addition to + a reasonable default timeout, you could also allow the user to choose how long they want toasts to + stay up for. Most people inherently understand whether they are fast or slow readers. Having a + profile setting that is part of the user login will allow slow readers to pick a longer time if + the messages are going away too fast, and fast readers to pick a short time if the messages are + staying up too long. - To account for memory loss and distraction as well as disability-related issues such as ADHD, a best practice would be to implement a location where users can refer to a list of past toast messages which have been shown. Preferably this list should be sortable, with the default being diff --git a/src/icons/icons.d.ts b/src/icons/icons.d.ts index f35f7a286a7..f8607f24373 100644 --- a/src/icons/icons.d.ts +++ b/src/icons/icons.d.ts @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2021-05-11T07:06:21.646Z +// @Generated: 2022-04-17T11:16:04.866Z // // This file is generated on each build. Do not edit this file! diff --git a/src/icons/icons.js b/src/icons/icons.js index 930f3b92307..1346b6c739e 100644 --- a/src/icons/icons.js +++ b/src/icons/icons.js @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2021-05-11T07:06:21.646Z +// @Generated: 2022-04-17T11:16:04.866Z // // This file is generated on each build. Do not edit this file! diff --git a/src/icons/plugin.js b/src/icons/plugin.js index d6b46b98235..45db30dd480 100644 --- a/src/icons/plugin.js +++ b/src/icons/plugin.js @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2021-05-11T07:06:21.646Z +// @Generated: 2022-04-17T11:16:04.866Z // // This file is generated on each build. Do not edit this file! diff --git a/yarn.lock b/yarn.lock index 161ae33b96c..1ab4911c8cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5968,11 +5968,6 @@ eslint@^7.26.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - espree@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" @@ -8628,6 +8623,11 @@ jimp-compact@^0.16.1: resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== +jiti@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.13.0.tgz#3cdfc4e651ca0cca4c62ed5e47747b5841d41a8e" + integrity sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ== + jiti@^1.3.0: version "1.9.1" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.9.1.tgz#d9e267fa050ddc52191f17d8af815d49a38ebafd" From 93a759098760f60fec34df92933af9cf216369d9 Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Sun, 17 Apr 2022 15:10:31 +0300 Subject: [PATCH 377/378] chore: simplify bootstrap version range in package.json --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 2cb1d69a00e..d24eba14e73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-vue", - "version": "2.21.2", + "version": "2.22.0", "description": "With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extensive and automated WAI-ARIA accessibility markup.", "main": "./dist/bootstrap-vue.common.js", "web": "./dist/bootstrap-vue.js", @@ -81,7 +81,7 @@ }, "dependencies": { "@nuxt/opencollective": "^0.3.2", - "bootstrap": ">=4.5.3 <5.0.0", + "bootstrap": "^4.6.1", "popper.js": "^1.16.1", "portal-vue": "^2.1.7", "vue-functional-data-merge": "^3.1.0" diff --git a/yarn.lock b/yarn.lock index 1ab4911c8cc..d1d627bb0f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3424,10 +3424,10 @@ bootstrap-icons@^1.5.0: resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.5.0.tgz#2cb19da148aa9105cb3174de2963564982d3dc55" integrity sha512-44feMc7DE1Ccpsas/1wioN8ewFJNquvi5FewA06wLnqct7CwMdGDVy41ieHaacogzDqLfG8nADIvMNp9e4bfbA== -"bootstrap@>=4.5.3 <5.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" - integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== +bootstrap@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.1.tgz#bc25380c2c14192374e8dec07cf01b2742d222a2" + integrity sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og== boxen@^1.2.1: version "1.3.0" From a8034ee92a6da3eb9fbb58246969c958e0052cda Mon Sep 17 00:00:00 2001 From: Illya Klymov <xanf@xanf.me> Date: Sun, 17 Apr 2022 15:21:16 +0300 Subject: [PATCH 378/378] chore(release): v2.22.0 --- CHANGELOG.md | 442 +++++++++++++++++++++++++++++++++++++++++++ src/icons/icons.d.ts | 2 +- src/icons/icons.js | 2 +- src/icons/plugin.js | 2 +- 4 files changed, 445 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 706db281092..51e90f719c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,448 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.22.0](https://github.com/bootstrap-vue/bootstrap-vue/compare/v2.21.2...v2.22.0) (2022-04-17) + +### Features + +- **b-dropdown:** add `toggle-attrs` prop (closes + [#3694](https://github.com/bootstrap-vue/bootstrap-vue/issues/3694)) + ([#6339](https://github.com/bootstrap-vue/bootstrap-vue/issues/6339)) + ([6cfcbb3](https://github.com/bootstrap-vue/bootstrap-vue/commit/6cfcbb300877e7e1fc03e847c540c6f2c8b0742b)) +- **b-form-group:** add `content-cols` props and scoped `default` slot (closes + [#6095](https://github.com/bootstrap-vue/bootstrap-vue/issues/6095), + [#6118](https://github.com/bootstrap-vue/bootstrap-vue/issues/6118)) + ([#6178](https://github.com/bootstrap-vue/bootstrap-vue/issues/6178)) + ([fab6dc5](https://github.com/bootstrap-vue/bootstrap-vue/commit/fab6dc57e974f14b7fb50f6f413f3fa9a4504290)) +- **b-form-tags:** add `feedback-aria-live` prop + ([#6347](https://github.com/bootstrap-vue/bootstrap-vue/issues/6347)) + ([5332970](https://github.com/bootstrap-vue/bootstrap-vue/commit/533297054ce98e879071b35da11a3dd5927beafe)) +- **b-form-tags:** add `no-tags-remove` prop (closes + [#6162](https://github.com/bootstrap-vue/bootstrap-vue/issues/6162)) + ([#6163](https://github.com/bootstrap-vue/bootstrap-vue/issues/6163)) + ([92de1f9](https://github.com/bootstrap-vue/bootstrap-vue/commit/92de1f9f7772c595afcd16d25d8f71b54a2e077b)) +- **b-form-tags:** add `reset` method + ([#6104](https://github.com/bootstrap-vue/bootstrap-vue/issues/6104)) + ([d610291](https://github.com/bootstrap-vue/bootstrap-vue/commit/d6102913a5f9a3295f646fad50ba58ffc31533e8)) +- **b-form-tags:** adds `focusin` & `focusout` to wrapper and prevents firing multiple + `focus`/`blur` events ([#6395](https://github.com/bootstrap-vue/bootstrap-vue/issues/6395)) + ([44e558f](https://github.com/bootstrap-vue/bootstrap-vue/commit/44e558f73c2ae0d4daafbdbc2616002c7c7a763f)) +- **b-link:** support `exact-path` and `exact-path-active-class` props for router link (fixes + [#6434](https://github.com/bootstrap-vue/bootstrap-vue/issues/6434)) + ([#6811](https://github.com/bootstrap-vue/bootstrap-vue/issues/6811)) + ([576e67b](https://github.com/bootstrap-vue/bootstrap-vue/commit/576e67b3af434037a5ee17533a232465527d5edd)) +- add `headerTag` and `footerTag` props to all componets with header and footer + ([#6375](https://github.com/bootstrap-vue/bootstrap-vue/issues/6375)) + ([c6dd70a](https://github.com/bootstrap-vue/bootstrap-vue/commit/c6dd70a787cdc711b3ce539a65f6aac273749874)) +- **b-media:** improve aside right handling + ([#5965](https://github.com/bootstrap-vue/bootstrap-vue/issues/5965)) + ([49a3f00](https://github.com/bootstrap-vue/bootstrap-vue/commit/49a3f00420bf9958deda3a6be0ccb76cc3ea06ba)) +- **b-sidebar:** add `header` slot + ([#6179](https://github.com/bootstrap-vue/bootstrap-vue/issues/6179)) + ([341b7f0](https://github.com/bootstrap-vue/bootstrap-vue/commit/341b7f07943d6079d2bf5d6ab88bbcc50f91d0c5)) +- **config:** improved defaults handling (closes + [#4507](https://github.com/bootstrap-vue/bootstrap-vue/issues/4507), + [#5138](https://github.com/bootstrap-vue/bootstrap-vue/issues/5138), + [#5291](https://github.com/bootstrap-vue/bootstrap-vue/issues/5291), + [#5459](https://github.com/bootstrap-vue/bootstrap-vue/issues/5459), + [#5958](https://github.com/bootstrap-vue/bootstrap-vue/issues/5958)) + ([#5981](https://github.com/bootstrap-vue/bootstrap-vue/issues/5981)) + ([7ea0cc4](https://github.com/bootstrap-vue/bootstrap-vue/commit/7ea0cc4a16d27b179eca47d351eaa9fe6fdfd56e)) +- **refactor:** code enhancements for easier Vue 3 migration (closes + [#6124](https://github.com/bootstrap-vue/bootstrap-vue/issues/6124), + [#6139](https://github.com/bootstrap-vue/bootstrap-vue/issues/6139)) + ([#6141](https://github.com/bootstrap-vue/bootstrap-vue/issues/6141)) + ([5bf6733](https://github.com/bootstrap-vue/bootstrap-vue/commit/5bf6733595091cc204d3acc0641f8f0301bcbe9c)) + +### Bug Fixes + +- **b-avatar:** badge `z-index` handling + ([#5975](https://github.com/bootstrap-vue/bootstrap-vue/issues/5975)) + ([ecb33bd](https://github.com/bootstrap-vue/bootstrap-vue/commit/ecb33bdb510832096bc5a5196a11c97388bf6411)) +- **b-avatar:** prevent avatar from being squished + ([#5963](https://github.com/bootstrap-vue/bootstrap-vue/issues/5963)) + ([b3946ed](https://github.com/bootstrap-vue/bootstrap-vue/commit/b3946ed7a7b327fb7c66b44caaf122460fc24005)), + closes [#5962](https://github.com/bootstrap-vue/bootstrap-vue/issues/5962) +- **b-badge:** attribute inheritance + ([#6217](https://github.com/bootstrap-vue/bootstrap-vue/issues/6217)) + ([2d31f31](https://github.com/bootstrap-vue/bootstrap-vue/commit/2d31f31909c002faa2a9d8bd8620115ddf8ce603)) +- **b-dropdown:** click handling on close (closes + [#5982](https://github.com/bootstrap-vue/bootstrap-vue/issues/5982)) + ([#6009](https://github.com/bootstrap-vue/bootstrap-vue/issues/6009)) + ([cf7a1cb](https://github.com/bootstrap-vue/bootstrap-vue/commit/cf7a1cb017e2263939a64e300abbbbac35c121d4)) +- **b-dropdown:** decrease delay when hiding inside a navbar on no-touch devices (closes + [#6306](https://github.com/bootstrap-vue/bootstrap-vue/issues/6306)) + ([#6367](https://github.com/bootstrap-vue/bootstrap-vue/issues/6367)) + ([7d72605](https://github.com/bootstrap-vue/bootstrap-vue/commit/7d726056eb40a148afbafd0710035cb306582bb6)) +- **b-dropdown:** only apply `heading` role to header when not a `header` tag + ([#6274](https://github.com/bootstrap-vue/bootstrap-vue/issues/6274)) + ([bd67da0](https://github.com/bootstrap-vue/bootstrap-vue/commit/bd67da0c40744e6b245a4e514e2319ca7bfafe2d)) +- **b-dropdown:** root events ([#6198](https://github.com/bootstrap-vue/bootstrap-vue/issues/6198)) + ([6dcd233](https://github.com/bootstrap-vue/bootstrap-vue/commit/6dcd23334f2870220ed5c4d8b30bd556e57c03d5)) +- **b-dropdown:** Sets correct `aria-haspopup` attribute for the toggle button + ([#6865](https://github.com/bootstrap-vue/bootstrap-vue/issues/6865)) + ([d92c2f1](https://github.com/bootstrap-vue/bootstrap-vue/commit/d92c2f1237b44102f0bf6eadd26d97423b9f8c2b)) +- **b-form-checkbox/b-form-radio:** `chnage` event timing + ([#6008](https://github.com/bootstrap-vue/bootstrap-vue/issues/6008)) + ([37ec7e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/37ec7e9991b66af51ff81420da8eb88928615f9d)) +- **b-form-datepicker:** `valueAsDate` prop handling + ([#6159](https://github.com/bootstrap-vue/bootstrap-vue/issues/6159)) + ([5cb8e0c](https://github.com/bootstrap-vue/bootstrap-vue/commit/5cb8e0c474ab750868379b4293d0eb5d52f5dd85)) +- **b-form-datepicker/b-form-timepicker:** control size + ([#6249](https://github.com/bootstrap-vue/bootstrap-vue/issues/6249)) + ([f2ffbeb](https://github.com/bootstrap-vue/bootstrap-vue/commit/f2ffbeb85a71f0e3ac5c6ea55622771357c703e1)) +- **b-form-datepicker/b-form-timepicker:** label styles when in `button-only` mode (closes + [#6172](https://github.com/bootstrap-vue/bootstrap-vue/issues/6172)) + ([#6186](https://github.com/bootstrap-vue/bootstrap-vue/issues/6186)) + ([e8842ba](https://github.com/bootstrap-vue/bootstrap-vue/commit/e8842bae98e83d16f3429b37f219ae61890a5c38)) +- **b-form-group:** accessibility when `label-for` prop not set + ([#6006](https://github.com/bootstrap-vue/bootstrap-vue/issues/6006)) + ([16f777b](https://github.com/bootstrap-vue/bootstrap-vue/commit/16f777b14bdcf9ebb6fae0325d355c7f5272bd98)) +- **b-form-input:** modified value handling + ([#6084](https://github.com/bootstrap-vue/bootstrap-vue/issues/6084)) + ([d6d8e3c](https://github.com/bootstrap-vue/bootstrap-vue/commit/d6d8e3c0f309ca16ede0c874bb787ab2fed7b380)) +- **b-form-input/b-form-textarea:** legacy browser support (closes + [#6283](https://github.com/bootstrap-vue/bootstrap-vue/issues/6283)) + ([#6345](https://github.com/bootstrap-vue/bootstrap-vue/issues/6345)) + ([a79d98a](https://github.com/bootstrap-vue/bootstrap-vue/commit/a79d98a78f68ba3c15e626928f5e5208aba05d2f)) +- **b-form-spinbutton:** button markup + ([#6101](https://github.com/bootstrap-vue/bootstrap-vue/issues/6101)) + ([5082976](https://github.com/bootstrap-vue/bootstrap-vue/commit/5082976e90264cadd84a4c9dbf339ce90fe49456)) +- **b-form-tags:** required handling (closes + [#6094](https://github.com/bootstrap-vue/bootstrap-vue/issues/6094)) + ([#6103](https://github.com/bootstrap-vue/bootstrap-vue/issues/6103)) + ([2dc6b9d](https://github.com/bootstrap-vue/bootstrap-vue/commit/2dc6b9d5bc5fcb3cf1febda7d9e5b03d1ee9a3d0)) +- **b-icon:** title render handling + ([#6233](https://github.com/bootstrap-vue/bootstrap-vue/issues/6233)) + ([b025047](https://github.com/bootstrap-vue/bootstrap-vue/commit/b0250477e6b4228f1f228c2776c8c211d8a57f00)) +- **b-img-lazy:** `blank` placeholder for Firefox (closes + [#6320](https://github.com/bootstrap-vue/bootstrap-vue/issues/6320)) + ([#6349](https://github.com/bootstrap-vue/bootstrap-vue/issues/6349)) + ([9b297c9](https://github.com/bootstrap-vue/bootstrap-vue/commit/9b297c9415744ddb7bd3d50bbe5957859a61123e)) +- **b-img-lazy:** fix blank-src not work error + ([#6302](https://github.com/bootstrap-vue/bootstrap-vue/issues/6302)) + ([a6ace2f](https://github.com/bootstrap-vue/bootstrap-vue/commit/a6ace2f229680e13b0f91c17458461b8afda9f7b)) +- **b-link:** remove default values from `vue-router` pass-down props (closes + [#6373](https://github.com/bootstrap-vue/bootstrap-vue/issues/6373)) + ([#6374](https://github.com/bootstrap-vue/bootstrap-vue/issues/6374)) + ([0a14828](https://github.com/bootstrap-vue/bootstrap-vue/commit/0a14828961846b907cf8243e1a14954911f802cf)) +- **b-skeleton:** accepts custom attributes + ([#6858](https://github.com/bootstrap-vue/bootstrap-vue/issues/6858)) + ([9b1edc9](https://github.com/bootstrap-vue/bootstrap-vue/commit/9b1edc978f7029facaf5a4f2a512b13cd43987a8)) +- **b-table:** fix range selection of b-table + ([#6606](https://github.com/bootstrap-vue/bootstrap-vue/issues/6606)) + ([c11f0db](https://github.com/bootstrap-vue/bootstrap-vue/commit/c11f0db211aa2c45209a4081ae4e02337ec55015)) +- **b-table:** selected table header text no longer prevents table row selection + ([#6645](https://github.com/bootstrap-vue/bootstrap-vue/issues/6645)) + ([010ab31](https://github.com/bootstrap-vue/bootstrap-vue/commit/010ab3180eaeb9f43e9c922fb6e47419504b8f99)) +- replace sass division with multiplication + ([#6834](https://github.com/bootstrap-vue/bootstrap-vue/issues/6834)) + ([dd051e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/dd051e93cbb2ce41d3060eda2b5a82ce28fe183c)) +- **b-form-group:** remove `role="alert"` from valid/invalid feedback (closes + [#6300](https://github.com/bootstrap-vue/bootstrap-vue/issues/6300), + [#6307](https://github.com/bootstrap-vue/bootstrap-vue/issues/6307)) + ([#6346](https://github.com/bootstrap-vue/bootstrap-vue/issues/6346)) + ([c0959c4](https://github.com/bootstrap-vue/bootstrap-vue/commit/c0959c4df2552929d7fa68e28fb700297df291f8)) +- **b-input-tags:** not respecting custom `$input-color` (closes + [#6388](https://github.com/bootstrap-vue/bootstrap-vue/issues/6388)) + ([#6389](https://github.com/bootstrap-vue/bootstrap-vue/issues/6389)) + ([9f045d4](https://github.com/bootstrap-vue/bootstrap-vue/commit/9f045d47b1eae4036910a1e397ed17b664e259c5)) +- **b-pagination:** don't set initial page count twice + ([#6200](https://github.com/bootstrap-vue/bootstrap-vue/issues/6200)) + ([d7394e3](https://github.com/bootstrap-vue/bootstrap-vue/commit/d7394e3426e5b06797caef070137ec47b25ef62a)) +- **b-sidebar:** make sure to not exceed 100% in height (closes + [#6176](https://github.com/bootstrap-vue/bootstrap-vue/issues/6176)) + ([#6234](https://github.com/bootstrap-vue/bootstrap-vue/issues/6234)) + ([782e11d](https://github.com/bootstrap-vue/bootstrap-vue/commit/782e11dedf8ed9f362a1c44772d660adf24975a5)) +- **b-table:** add missing `role="grid"` when selectable (closes + [#6305](https://github.com/bootstrap-vue/bootstrap-vue/issues/6305)) + ([#6372](https://github.com/bootstrap-vue/bootstrap-vue/issues/6372)) + ([bc02fb8](https://github.com/bootstrap-vue/bootstrap-vue/commit/bc02fb86198701f8f2ef7b05dadf59cd2c0381cd)) +- **b-table:** add missing `sortKey` field type and correct a typo + ([#6355](https://github.com/bootstrap-vue/bootstrap-vue/issues/6355)) + ([f5ca62f](https://github.com/bootstrap-vue/bootstrap-vue/commit/f5ca62faec6d5fb9e873b362b6efb153d419a7cc)) +- **b-table:** allow `responsive` and `stacked` props together + ([#6266](https://github.com/bootstrap-vue/bootstrap-vue/issues/6266)) + ([fa977a8](https://github.com/bootstrap-vue/bootstrap-vue/commit/fa977a83cf21dd118e30f81aacf80d1c25b5c484)) +- **b-table:** default `role` to `grid` when `selectable` and `table` otherwise + ([#6383](https://github.com/bootstrap-vue/bootstrap-vue/issues/6383)) + ([3f5a309](https://github.com/bootstrap-vue/bootstrap-vue/commit/3f5a3095500c706a75f0f0d6015b0b2777051e1f)), + closes [#6326](https://github.com/bootstrap-vue/bootstrap-vue/issues/6326) +- **b-table:** header cell overflow for `.sr-only` sort label + ([#6371](https://github.com/bootstrap-vue/bootstrap-vue/issues/6371)) + ([11617b4](https://github.com/bootstrap-vue/bootstrap-vue/commit/11617b4c78d06a0f48306983621fdb4ec1aa9932)) +- **b-table:** only set `aria-describedby` when caption really exists + ([#6251](https://github.com/bootstrap-vue/bootstrap-vue/issues/6251)) + ([b980017](https://github.com/bootstrap-vue/bootstrap-vue/commit/b980017139613db5d7c8df4293a4d80673c9e646)) +- **b-table:** only set `tabindex="0"` for sortable TH's + ([#6102](https://github.com/bootstrap-vue/bootstrap-vue/issues/6102)) + ([dd23742](https://github.com/bootstrap-vue/bootstrap-vue/commit/dd237425e4e7a7e73d5c17210780b02dab2110e2)) +- **b-table:** prefer user-provided `role` attribute + ([#6382](https://github.com/bootstrap-vue/bootstrap-vue/issues/6382)) + ([9e25a3b](https://github.com/bootstrap-vue/bootstrap-vue/commit/9e25a3b97e911e84473991def78c9b4307b6f822)) +- **b-table:** set `aria-sort` when using `sortKey` and `no-local-sorting` (closes + [#6602](https://github.com/bootstrap-vue/bootstrap-vue/issues/6602)) + ([#6603](https://github.com/bootstrap-vue/bootstrap-vue/issues/6603)) + ([2438137](https://github.com/bootstrap-vue/bootstrap-vue/commit/2438137c3757b28657e7185432805079ee25c559)) +- **b-table:** sort handling for numeric string values (closes + [#6092](https://github.com/bootstrap-vue/bootstrap-vue/issues/6092)) + ([#6105](https://github.com/bootstrap-vue/bootstrap-vue/issues/6105)) + ([29fbcb5](https://github.com/bootstrap-vue/bootstrap-vue/commit/29fbcb58c5efed0dbbafa8b0bb5fc1d1651079cd)) +- **b-tabs:** cleanup rendering logic + ([#6154](https://github.com/bootstrap-vue/bootstrap-vue/issues/6154)) + ([8aeb9e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/8aeb9e941e84ec45a3415ab7238729458f56e427)) +- **b-tabs:** restore correct active tab detection logic (closes + [#6205](https://github.com/bootstrap-vue/bootstrap-vue/issues/6205)) + ([#6208](https://github.com/bootstrap-vue/bootstrap-vue/issues/6208)) + ([6d92a43](https://github.com/bootstrap-vue/bootstrap-vue/commit/6d92a4376c227a02a7c24e19c04e437bb8909c1c)) +- **docs:** completing the url so that the link is correct + ([#6545](https://github.com/bootstrap-vue/bootstrap-vue/issues/6545)) + ([c9c85a9](https://github.com/bootstrap-vue/bootstrap-vue/commit/c9c85a92460c583439f96b61095e2fa0f3c41378)) +- **nav-item-dropdown:** update dropdown to set correct aria-controls + ([97bb97b](https://github.com/bootstrap-vue/bootstrap-vue/commit/97bb97b004b28bc34a49fc20dcc5b247f228404f)) +- **utils/dom:** bind `requestAF()` to `window` + ([#6508](https://github.com/bootstrap-vue/bootstrap-vue/issues/6508)) + ([#6511](https://github.com/bootstrap-vue/bootstrap-vue/issues/6511)) + ([f8caaec](https://github.com/bootstrap-vue/bootstrap-vue/commit/f8caaec837b184d3f2736a6fdb4b8ceea28942ae)) +- clean up props inheritance ([#6265](https://github.com/bootstrap-vue/bootstrap-vue/issues/6265)) + ([79784ae](https://github.com/bootstrap-vue/bootstrap-vue/commit/79784ae6e03f90ee14ce90f8f5e02d0249eb5c4a)) +- environment detection based on `userAgent` + ([#6226](https://github.com/bootstrap-vue/bootstrap-vue/issues/6226)) + ([cdfd16c](https://github.com/bootstrap-vue/bootstrap-vue/commit/cdfd16c32296072e49596a8acf722c77709f1b93)) +- **table:** default sort compare logic for date strings + ([#6153](https://github.com/bootstrap-vue/bootstrap-vue/issues/6153)) + ([3696a1f](https://github.com/bootstrap-vue/bootstrap-vue/commit/3696a1f888f2462a428431a593e235fd89bf54d4)) +- user supplied prop function detection + ([#6070](https://github.com/bootstrap-vue/bootstrap-vue/issues/6070)) + ([cea6051](https://github.com/bootstrap-vue/bootstrap-vue/commit/cea6051efc901325d63c22f65381242bd6e774e7)) +- user supplied prop function detection (closes + [#6112](https://github.com/bootstrap-vue/bootstrap-vue/issues/6112)) + ([#6113](https://github.com/bootstrap-vue/bootstrap-vue/issues/6113)) + ([1d85839](https://github.com/bootstrap-vue/bootstrap-vue/commit/1d85839fa76c88f1a411a81945d03a4c895b3f4f)) +- **table:** use original value for fallback when number parsing fails in `defaultSortCompare()` + ([c375ce9](https://github.com/bootstrap-vue/bootstrap-vue/commit/c375ce9093ed91060b4ab199ad771dd667a68589)) + +## [2.22.0](https://github.com/bootstrap-vue/bootstrap-vue/compare/v2.21.2...v2.22.0) (2022-04-17) + +### Features + +- **b-dropdown:** add `toggle-attrs` prop (closes + [#3694](https://github.com/bootstrap-vue/bootstrap-vue/issues/3694)) + ([#6339](https://github.com/bootstrap-vue/bootstrap-vue/issues/6339)) + ([6cfcbb3](https://github.com/bootstrap-vue/bootstrap-vue/commit/6cfcbb300877e7e1fc03e847c540c6f2c8b0742b)) +- **b-form-group:** add `content-cols` props and scoped `default` slot (closes + [#6095](https://github.com/bootstrap-vue/bootstrap-vue/issues/6095), + [#6118](https://github.com/bootstrap-vue/bootstrap-vue/issues/6118)) + ([#6178](https://github.com/bootstrap-vue/bootstrap-vue/issues/6178)) + ([fab6dc5](https://github.com/bootstrap-vue/bootstrap-vue/commit/fab6dc57e974f14b7fb50f6f413f3fa9a4504290)) +- **b-form-tags:** add `feedback-aria-live` prop + ([#6347](https://github.com/bootstrap-vue/bootstrap-vue/issues/6347)) + ([5332970](https://github.com/bootstrap-vue/bootstrap-vue/commit/533297054ce98e879071b35da11a3dd5927beafe)) +- **b-form-tags:** add `no-tags-remove` prop (closes + [#6162](https://github.com/bootstrap-vue/bootstrap-vue/issues/6162)) + ([#6163](https://github.com/bootstrap-vue/bootstrap-vue/issues/6163)) + ([92de1f9](https://github.com/bootstrap-vue/bootstrap-vue/commit/92de1f9f7772c595afcd16d25d8f71b54a2e077b)) +- **b-form-tags:** add `reset` method + ([#6104](https://github.com/bootstrap-vue/bootstrap-vue/issues/6104)) + ([d610291](https://github.com/bootstrap-vue/bootstrap-vue/commit/d6102913a5f9a3295f646fad50ba58ffc31533e8)) +- **b-form-tags:** adds `focusin` & `focusout` to wrapper and prevents firing multiple + `focus`/`blur` events ([#6395](https://github.com/bootstrap-vue/bootstrap-vue/issues/6395)) + ([44e558f](https://github.com/bootstrap-vue/bootstrap-vue/commit/44e558f73c2ae0d4daafbdbc2616002c7c7a763f)) +- **b-link:** support `exact-path` and `exact-path-active-class` props for router link (fixes + [#6434](https://github.com/bootstrap-vue/bootstrap-vue/issues/6434)) + ([#6811](https://github.com/bootstrap-vue/bootstrap-vue/issues/6811)) + ([576e67b](https://github.com/bootstrap-vue/bootstrap-vue/commit/576e67b3af434037a5ee17533a232465527d5edd)) +- add `headerTag` and `footerTag` props to all componets with header and footer + ([#6375](https://github.com/bootstrap-vue/bootstrap-vue/issues/6375)) + ([c6dd70a](https://github.com/bootstrap-vue/bootstrap-vue/commit/c6dd70a787cdc711b3ce539a65f6aac273749874)) +- **b-media:** improve aside right handling + ([#5965](https://github.com/bootstrap-vue/bootstrap-vue/issues/5965)) + ([49a3f00](https://github.com/bootstrap-vue/bootstrap-vue/commit/49a3f00420bf9958deda3a6be0ccb76cc3ea06ba)) +- **b-sidebar:** add `header` slot + ([#6179](https://github.com/bootstrap-vue/bootstrap-vue/issues/6179)) + ([341b7f0](https://github.com/bootstrap-vue/bootstrap-vue/commit/341b7f07943d6079d2bf5d6ab88bbcc50f91d0c5)) +- **config:** improved defaults handling (closes + [#4507](https://github.com/bootstrap-vue/bootstrap-vue/issues/4507), + [#5138](https://github.com/bootstrap-vue/bootstrap-vue/issues/5138), + [#5291](https://github.com/bootstrap-vue/bootstrap-vue/issues/5291), + [#5459](https://github.com/bootstrap-vue/bootstrap-vue/issues/5459), + [#5958](https://github.com/bootstrap-vue/bootstrap-vue/issues/5958)) + ([#5981](https://github.com/bootstrap-vue/bootstrap-vue/issues/5981)) + ([7ea0cc4](https://github.com/bootstrap-vue/bootstrap-vue/commit/7ea0cc4a16d27b179eca47d351eaa9fe6fdfd56e)) +- **refactor:** code enhancements for easier Vue 3 migration (closes + [#6124](https://github.com/bootstrap-vue/bootstrap-vue/issues/6124), + [#6139](https://github.com/bootstrap-vue/bootstrap-vue/issues/6139)) + ([#6141](https://github.com/bootstrap-vue/bootstrap-vue/issues/6141)) + ([5bf6733](https://github.com/bootstrap-vue/bootstrap-vue/commit/5bf6733595091cc204d3acc0641f8f0301bcbe9c)) + +### Bug Fixes + +- **b-avatar:** badge `z-index` handling + ([#5975](https://github.com/bootstrap-vue/bootstrap-vue/issues/5975)) + ([ecb33bd](https://github.com/bootstrap-vue/bootstrap-vue/commit/ecb33bdb510832096bc5a5196a11c97388bf6411)) +- **b-avatar:** prevent avatar from being squished + ([#5963](https://github.com/bootstrap-vue/bootstrap-vue/issues/5963)) + ([b3946ed](https://github.com/bootstrap-vue/bootstrap-vue/commit/b3946ed7a7b327fb7c66b44caaf122460fc24005)), + closes [#5962](https://github.com/bootstrap-vue/bootstrap-vue/issues/5962) +- **b-badge:** attribute inheritance + ([#6217](https://github.com/bootstrap-vue/bootstrap-vue/issues/6217)) + ([2d31f31](https://github.com/bootstrap-vue/bootstrap-vue/commit/2d31f31909c002faa2a9d8bd8620115ddf8ce603)) +- **b-dropdown:** click handling on close (closes + [#5982](https://github.com/bootstrap-vue/bootstrap-vue/issues/5982)) + ([#6009](https://github.com/bootstrap-vue/bootstrap-vue/issues/6009)) + ([cf7a1cb](https://github.com/bootstrap-vue/bootstrap-vue/commit/cf7a1cb017e2263939a64e300abbbbac35c121d4)) +- **b-dropdown:** decrease delay when hiding inside a navbar on no-touch devices (closes + [#6306](https://github.com/bootstrap-vue/bootstrap-vue/issues/6306)) + ([#6367](https://github.com/bootstrap-vue/bootstrap-vue/issues/6367)) + ([7d72605](https://github.com/bootstrap-vue/bootstrap-vue/commit/7d726056eb40a148afbafd0710035cb306582bb6)) +- **b-dropdown:** only apply `heading` role to header when not a `header` tag + ([#6274](https://github.com/bootstrap-vue/bootstrap-vue/issues/6274)) + ([bd67da0](https://github.com/bootstrap-vue/bootstrap-vue/commit/bd67da0c40744e6b245a4e514e2319ca7bfafe2d)) +- **b-dropdown:** root events ([#6198](https://github.com/bootstrap-vue/bootstrap-vue/issues/6198)) + ([6dcd233](https://github.com/bootstrap-vue/bootstrap-vue/commit/6dcd23334f2870220ed5c4d8b30bd556e57c03d5)) +- **b-dropdown:** Sets correct `aria-haspopup` attribute for the toggle button + ([#6865](https://github.com/bootstrap-vue/bootstrap-vue/issues/6865)) + ([d92c2f1](https://github.com/bootstrap-vue/bootstrap-vue/commit/d92c2f1237b44102f0bf6eadd26d97423b9f8c2b)) +- **b-form-checkbox/b-form-radio:** `chnage` event timing + ([#6008](https://github.com/bootstrap-vue/bootstrap-vue/issues/6008)) + ([37ec7e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/37ec7e9991b66af51ff81420da8eb88928615f9d)) +- **b-form-datepicker:** `valueAsDate` prop handling + ([#6159](https://github.com/bootstrap-vue/bootstrap-vue/issues/6159)) + ([5cb8e0c](https://github.com/bootstrap-vue/bootstrap-vue/commit/5cb8e0c474ab750868379b4293d0eb5d52f5dd85)) +- **b-form-datepicker/b-form-timepicker:** control size + ([#6249](https://github.com/bootstrap-vue/bootstrap-vue/issues/6249)) + ([f2ffbeb](https://github.com/bootstrap-vue/bootstrap-vue/commit/f2ffbeb85a71f0e3ac5c6ea55622771357c703e1)) +- **b-form-datepicker/b-form-timepicker:** label styles when in `button-only` mode (closes + [#6172](https://github.com/bootstrap-vue/bootstrap-vue/issues/6172)) + ([#6186](https://github.com/bootstrap-vue/bootstrap-vue/issues/6186)) + ([e8842ba](https://github.com/bootstrap-vue/bootstrap-vue/commit/e8842bae98e83d16f3429b37f219ae61890a5c38)) +- **b-form-group:** accessibility when `label-for` prop not set + ([#6006](https://github.com/bootstrap-vue/bootstrap-vue/issues/6006)) + ([16f777b](https://github.com/bootstrap-vue/bootstrap-vue/commit/16f777b14bdcf9ebb6fae0325d355c7f5272bd98)) +- **b-form-input:** modified value handling + ([#6084](https://github.com/bootstrap-vue/bootstrap-vue/issues/6084)) + ([d6d8e3c](https://github.com/bootstrap-vue/bootstrap-vue/commit/d6d8e3c0f309ca16ede0c874bb787ab2fed7b380)) +- **b-form-input/b-form-textarea:** legacy browser support (closes + [#6283](https://github.com/bootstrap-vue/bootstrap-vue/issues/6283)) + ([#6345](https://github.com/bootstrap-vue/bootstrap-vue/issues/6345)) + ([a79d98a](https://github.com/bootstrap-vue/bootstrap-vue/commit/a79d98a78f68ba3c15e626928f5e5208aba05d2f)) +- **b-form-spinbutton:** button markup + ([#6101](https://github.com/bootstrap-vue/bootstrap-vue/issues/6101)) + ([5082976](https://github.com/bootstrap-vue/bootstrap-vue/commit/5082976e90264cadd84a4c9dbf339ce90fe49456)) +- **b-form-tags:** required handling (closes + [#6094](https://github.com/bootstrap-vue/bootstrap-vue/issues/6094)) + ([#6103](https://github.com/bootstrap-vue/bootstrap-vue/issues/6103)) + ([2dc6b9d](https://github.com/bootstrap-vue/bootstrap-vue/commit/2dc6b9d5bc5fcb3cf1febda7d9e5b03d1ee9a3d0)) +- **b-icon:** title render handling + ([#6233](https://github.com/bootstrap-vue/bootstrap-vue/issues/6233)) + ([b025047](https://github.com/bootstrap-vue/bootstrap-vue/commit/b0250477e6b4228f1f228c2776c8c211d8a57f00)) +- **b-img-lazy:** `blank` placeholder for Firefox (closes + [#6320](https://github.com/bootstrap-vue/bootstrap-vue/issues/6320)) + ([#6349](https://github.com/bootstrap-vue/bootstrap-vue/issues/6349)) + ([9b297c9](https://github.com/bootstrap-vue/bootstrap-vue/commit/9b297c9415744ddb7bd3d50bbe5957859a61123e)) +- **b-img-lazy:** fix blank-src not work error + ([#6302](https://github.com/bootstrap-vue/bootstrap-vue/issues/6302)) + ([a6ace2f](https://github.com/bootstrap-vue/bootstrap-vue/commit/a6ace2f229680e13b0f91c17458461b8afda9f7b)) +- **b-link:** remove default values from `vue-router` pass-down props (closes + [#6373](https://github.com/bootstrap-vue/bootstrap-vue/issues/6373)) + ([#6374](https://github.com/bootstrap-vue/bootstrap-vue/issues/6374)) + ([0a14828](https://github.com/bootstrap-vue/bootstrap-vue/commit/0a14828961846b907cf8243e1a14954911f802cf)) +- **b-skeleton:** accepts custom attributes + ([#6858](https://github.com/bootstrap-vue/bootstrap-vue/issues/6858)) + ([9b1edc9](https://github.com/bootstrap-vue/bootstrap-vue/commit/9b1edc978f7029facaf5a4f2a512b13cd43987a8)) +- **b-table:** fix range selection of b-table + ([#6606](https://github.com/bootstrap-vue/bootstrap-vue/issues/6606)) + ([c11f0db](https://github.com/bootstrap-vue/bootstrap-vue/commit/c11f0db211aa2c45209a4081ae4e02337ec55015)) +- **b-table:** selected table header text no longer prevents table row selection + ([#6645](https://github.com/bootstrap-vue/bootstrap-vue/issues/6645)) + ([010ab31](https://github.com/bootstrap-vue/bootstrap-vue/commit/010ab3180eaeb9f43e9c922fb6e47419504b8f99)) +- replace sass division with multiplication + ([#6834](https://github.com/bootstrap-vue/bootstrap-vue/issues/6834)) + ([dd051e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/dd051e93cbb2ce41d3060eda2b5a82ce28fe183c)) +- **b-form-group:** remove `role="alert"` from valid/invalid feedback (closes + [#6300](https://github.com/bootstrap-vue/bootstrap-vue/issues/6300), + [#6307](https://github.com/bootstrap-vue/bootstrap-vue/issues/6307)) + ([#6346](https://github.com/bootstrap-vue/bootstrap-vue/issues/6346)) + ([c0959c4](https://github.com/bootstrap-vue/bootstrap-vue/commit/c0959c4df2552929d7fa68e28fb700297df291f8)) +- **b-input-tags:** not respecting custom `$input-color` (closes + [#6388](https://github.com/bootstrap-vue/bootstrap-vue/issues/6388)) + ([#6389](https://github.com/bootstrap-vue/bootstrap-vue/issues/6389)) + ([9f045d4](https://github.com/bootstrap-vue/bootstrap-vue/commit/9f045d47b1eae4036910a1e397ed17b664e259c5)) +- **b-pagination:** don't set initial page count twice + ([#6200](https://github.com/bootstrap-vue/bootstrap-vue/issues/6200)) + ([d7394e3](https://github.com/bootstrap-vue/bootstrap-vue/commit/d7394e3426e5b06797caef070137ec47b25ef62a)) +- **b-sidebar:** make sure to not exceed 100% in height (closes + [#6176](https://github.com/bootstrap-vue/bootstrap-vue/issues/6176)) + ([#6234](https://github.com/bootstrap-vue/bootstrap-vue/issues/6234)) + ([782e11d](https://github.com/bootstrap-vue/bootstrap-vue/commit/782e11dedf8ed9f362a1c44772d660adf24975a5)) +- **b-table:** add missing `role="grid"` when selectable (closes + [#6305](https://github.com/bootstrap-vue/bootstrap-vue/issues/6305)) + ([#6372](https://github.com/bootstrap-vue/bootstrap-vue/issues/6372)) + ([bc02fb8](https://github.com/bootstrap-vue/bootstrap-vue/commit/bc02fb86198701f8f2ef7b05dadf59cd2c0381cd)) +- **b-table:** add missing `sortKey` field type and correct a typo + ([#6355](https://github.com/bootstrap-vue/bootstrap-vue/issues/6355)) + ([f5ca62f](https://github.com/bootstrap-vue/bootstrap-vue/commit/f5ca62faec6d5fb9e873b362b6efb153d419a7cc)) +- **b-table:** allow `responsive` and `stacked` props together + ([#6266](https://github.com/bootstrap-vue/bootstrap-vue/issues/6266)) + ([fa977a8](https://github.com/bootstrap-vue/bootstrap-vue/commit/fa977a83cf21dd118e30f81aacf80d1c25b5c484)) +- **b-table:** default `role` to `grid` when `selectable` and `table` otherwise + ([#6383](https://github.com/bootstrap-vue/bootstrap-vue/issues/6383)) + ([3f5a309](https://github.com/bootstrap-vue/bootstrap-vue/commit/3f5a3095500c706a75f0f0d6015b0b2777051e1f)), + closes [#6326](https://github.com/bootstrap-vue/bootstrap-vue/issues/6326) +- **b-table:** header cell overflow for `.sr-only` sort label + ([#6371](https://github.com/bootstrap-vue/bootstrap-vue/issues/6371)) + ([11617b4](https://github.com/bootstrap-vue/bootstrap-vue/commit/11617b4c78d06a0f48306983621fdb4ec1aa9932)) +- **b-table:** only set `aria-describedby` when caption really exists + ([#6251](https://github.com/bootstrap-vue/bootstrap-vue/issues/6251)) + ([b980017](https://github.com/bootstrap-vue/bootstrap-vue/commit/b980017139613db5d7c8df4293a4d80673c9e646)) +- **b-table:** only set `tabindex="0"` for sortable TH's + ([#6102](https://github.com/bootstrap-vue/bootstrap-vue/issues/6102)) + ([dd23742](https://github.com/bootstrap-vue/bootstrap-vue/commit/dd237425e4e7a7e73d5c17210780b02dab2110e2)) +- **b-table:** prefer user-provided `role` attribute + ([#6382](https://github.com/bootstrap-vue/bootstrap-vue/issues/6382)) + ([9e25a3b](https://github.com/bootstrap-vue/bootstrap-vue/commit/9e25a3b97e911e84473991def78c9b4307b6f822)) +- **b-table:** set `aria-sort` when using `sortKey` and `no-local-sorting` (closes + [#6602](https://github.com/bootstrap-vue/bootstrap-vue/issues/6602)) + ([#6603](https://github.com/bootstrap-vue/bootstrap-vue/issues/6603)) + ([2438137](https://github.com/bootstrap-vue/bootstrap-vue/commit/2438137c3757b28657e7185432805079ee25c559)) +- **b-table:** sort handling for numeric string values (closes + [#6092](https://github.com/bootstrap-vue/bootstrap-vue/issues/6092)) + ([#6105](https://github.com/bootstrap-vue/bootstrap-vue/issues/6105)) + ([29fbcb5](https://github.com/bootstrap-vue/bootstrap-vue/commit/29fbcb58c5efed0dbbafa8b0bb5fc1d1651079cd)) +- **b-tabs:** cleanup rendering logic + ([#6154](https://github.com/bootstrap-vue/bootstrap-vue/issues/6154)) + ([8aeb9e9](https://github.com/bootstrap-vue/bootstrap-vue/commit/8aeb9e941e84ec45a3415ab7238729458f56e427)) +- **b-tabs:** restore correct active tab detection logic (closes + [#6205](https://github.com/bootstrap-vue/bootstrap-vue/issues/6205)) + ([#6208](https://github.com/bootstrap-vue/bootstrap-vue/issues/6208)) + ([6d92a43](https://github.com/bootstrap-vue/bootstrap-vue/commit/6d92a4376c227a02a7c24e19c04e437bb8909c1c)) +- **docs:** completing the url so that the link is correct + ([#6545](https://github.com/bootstrap-vue/bootstrap-vue/issues/6545)) + ([c9c85a9](https://github.com/bootstrap-vue/bootstrap-vue/commit/c9c85a92460c583439f96b61095e2fa0f3c41378)) +- **nav-item-dropdown:** update dropdown to set correct aria-controls + ([97bb97b](https://github.com/bootstrap-vue/bootstrap-vue/commit/97bb97b004b28bc34a49fc20dcc5b247f228404f)) +- **utils/dom:** bind `requestAF()` to `window` + ([#6508](https://github.com/bootstrap-vue/bootstrap-vue/issues/6508)) + ([#6511](https://github.com/bootstrap-vue/bootstrap-vue/issues/6511)) + ([f8caaec](https://github.com/bootstrap-vue/bootstrap-vue/commit/f8caaec837b184d3f2736a6fdb4b8ceea28942ae)) +- clean up props inheritance ([#6265](https://github.com/bootstrap-vue/bootstrap-vue/issues/6265)) + ([79784ae](https://github.com/bootstrap-vue/bootstrap-vue/commit/79784ae6e03f90ee14ce90f8f5e02d0249eb5c4a)) +- environment detection based on `userAgent` + ([#6226](https://github.com/bootstrap-vue/bootstrap-vue/issues/6226)) + ([cdfd16c](https://github.com/bootstrap-vue/bootstrap-vue/commit/cdfd16c32296072e49596a8acf722c77709f1b93)) +- **table:** default sort compare logic for date strings + ([#6153](https://github.com/bootstrap-vue/bootstrap-vue/issues/6153)) + ([3696a1f](https://github.com/bootstrap-vue/bootstrap-vue/commit/3696a1f888f2462a428431a593e235fd89bf54d4)) +- user supplied prop function detection + ([#6070](https://github.com/bootstrap-vue/bootstrap-vue/issues/6070)) + ([cea6051](https://github.com/bootstrap-vue/bootstrap-vue/commit/cea6051efc901325d63c22f65381242bd6e774e7)) +- user supplied prop function detection (closes + [#6112](https://github.com/bootstrap-vue/bootstrap-vue/issues/6112)) + ([#6113](https://github.com/bootstrap-vue/bootstrap-vue/issues/6113)) + ([1d85839](https://github.com/bootstrap-vue/bootstrap-vue/commit/1d85839fa76c88f1a411a81945d03a4c895b3f4f)) +- **table:** use original value for fallback when number parsing fails in `defaultSortCompare()` + ([c375ce9](https://github.com/bootstrap-vue/bootstrap-vue/commit/c375ce9093ed91060b4ab199ad771dd667a68589)) + <a name="2.21.2"></a> ### [v2.21.2](https://github.com/bootstrap-vue/bootstrap-vue/compare/v2.21.1...v2.21.2) diff --git a/src/icons/icons.d.ts b/src/icons/icons.d.ts index f8607f24373..e64408a9ae0 100644 --- a/src/icons/icons.d.ts +++ b/src/icons/icons.d.ts @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2022-04-17T11:16:04.866Z +// @Generated: 2022-04-17T12:11:59.345Z // // This file is generated on each build. Do not edit this file! diff --git a/src/icons/icons.js b/src/icons/icons.js index 1346b6c739e..8748b19633d 100644 --- a/src/icons/icons.js +++ b/src/icons/icons.js @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2022-04-17T11:16:04.866Z +// @Generated: 2022-04-17T12:11:59.345Z // // This file is generated on each build. Do not edit this file! diff --git a/src/icons/plugin.js b/src/icons/plugin.js index 45db30dd480..2206e1f593f 100644 --- a/src/icons/plugin.js +++ b/src/icons/plugin.js @@ -1,7 +1,7 @@ // --- BEGIN AUTO-GENERATED FILE --- // // @IconsVersion: 1.5.0 -// @Generated: 2022-04-17T11:16:04.866Z +// @Generated: 2022-04-17T12:11:59.345Z // // This file is generated on each build. Do not edit this file!