diff --git a/CHANGELOG.md b/CHANGELOG.md index 586af50908..32f0194036 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic-framework/compare/v6.1.11...v6.1.12) (2022-06-29) + + +### Bug Fixes + +* **angular:** warn devs that standalone components are not supported ([#25516](https://github.com/ionic-team/ionic-framework/issues/25516)) ([c53785c](https://github.com/ionic-team/ionic-framework/commit/c53785c0c786113f3516c09fa512687ecb84c717)) +* **datetime:** add dev warnings when setting out of bounds value ([#25513](https://github.com/ionic-team/ionic-framework/issues/25513)) ([5dfaf63](https://github.com/ionic-team/ionic-framework/commit/5dfaf63c6582811b61339a6fa50cf551cd8724d0)) + + + + + ## [6.1.11](https://github.com/ionic-team/ionic-framework/compare/v6.1.10...v6.1.11) (2022-06-22) diff --git a/LICENSE b/LICENSE index 623c70a833..92621d0bb4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,23 +1,21 @@ -Copyright 2015-present Drifty Co. -http://drifty.com/ - MIT License -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: +Copyright (c) 2015-present Drifty Co. -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/angular/CHANGELOG.md b/angular/CHANGELOG.md index 61e6956fc4..7112126230 100644 --- a/angular/CHANGELOG.md +++ b/angular/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + + +### Bug Fixes + +* **angular:** warn devs that standalone components are not supported ([#25516](https://github.com/ionic-team/ionic/issues/25516)) ([c53785c](https://github.com/ionic-team/ionic/commit/c53785c0c786113f3516c09fa512687ecb84c717)) + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/angular diff --git a/angular/package-lock.json b/angular/package-lock.json index 4452c5384e..78f2dd2b13 100644 --- a/angular/package-lock.json +++ b/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "jsonc-parser": "^3.0.0", "tslib": "^2.0.0" }, @@ -1023,9 +1023,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dependencies": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -7939,9 +7939,9 @@ "dev": true }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "requires": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", diff --git a/angular/package.json b/angular/package.json index 670f5cd1c4..1c65ebf6eb 100644 --- a/angular/package.json +++ b/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "6.1.11", + "version": "6.1.12", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -44,7 +44,7 @@ "validate": "npm i && npm run lint && npm run test && npm run build" }, "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "jsonc-parser": "^3.0.0", "tslib": "^2.0.0" }, diff --git a/angular/src/directives/navigation/ion-router-outlet.ts b/angular/src/directives/navigation/ion-router-outlet.ts index 76b2bf28be..59927aa940 100644 --- a/angular/src/directives/navigation/ion-router-outlet.ts +++ b/angular/src/directives/navigation/ion-router-outlet.ts @@ -233,8 +233,25 @@ export class IonRouterOutlet implements OnDestroy, OnInit { this.updateActivatedRouteProxy(cmpRef.instance, activatedRoute); } else { const snapshot = (activatedRoute as any)._futureSnapshot; + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const component = snapshot.routeConfig!.component as any; + + /** + * Angular 14 introduces a new `loadComponent` property to the route config, + * that assigns the component to load to the `component` property of + * the route snapshot. We can check for the presence of this property + * to determine if the route is using standalone components. + * + * TODO: FW-1631: Remove this check when supporting standalone components + */ + if (component == null && snapshot.component) { + console.warn( + '[Ionic Warning]: Standalone components are not currently supported with ion-router-outlet. You can track this feature request at https://github.com/ionic-team/ionic-framework/issues/25404' + ); + return; + } + const childContexts = this.parentContexts.getOrCreateContext(this.name).children; // We create an activated route proxy object that will maintain future updates for this component diff --git a/angular/test/test-app/cypress.config.ts b/angular/test/test-app/cypress.config.ts new file mode 100644 index 0000000000..1822553982 --- /dev/null +++ b/angular/test/test-app/cypress.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'cypress' + +export default defineConfig({ + video: false, + screenshotOnRunFailure: false, + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents(on, config) { + return require('./cypress/plugins/index.js')(on, config) + }, + specPattern: './e2e/**/*.spec.ts', + baseUrl: 'http://localhost:4200/', + excludeSpecPattern: '**/examples/*', + }, +}) diff --git a/angular/test/test-app/cypress.json b/angular/test/test-app/cypress.json deleted file mode 100644 index 358b0ed910..0000000000 --- a/angular/test/test-app/cypress.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "integrationFolder": "./e2e", - "testFiles": "**/*.spec.ts", - "baseUrl": "http://localhost:4200/", - "ignoreTestFiles": "**/examples/*", - "video": false, - "screenshotOnRunFailure": false -} diff --git a/angular/test/test-app/cypress/support/index.js b/angular/test/test-app/cypress/support/e2e.js similarity index 100% rename from angular/test/test-app/cypress/support/index.js rename to angular/test/test-app/cypress/support/e2e.js diff --git a/angular/test/test-app/e2e/src/form.spec.ts b/angular/test/test-app/e2e/src/form.spec.ts index cc3fddbd54..165ae68b10 100644 --- a/angular/test/test-app/e2e/src/form.spec.ts +++ b/angular/test/test-app/e2e/src/form.spec.ts @@ -39,6 +39,9 @@ describe('Form', () => { cy.get('ion-input.required').invoke('prop', 'value', 'Some value'); testStatus('INVALID'); + // TODO: FW-1160 - Remove when v7 is released + cy.wait(300); + cy.get('ion-select').invoke('prop', 'value', 'nes'); testStatus('INVALID'); diff --git a/angular/test/test-app/e2e/src/virtual-scroll.spec.ts b/angular/test/test-app/e2e/src/virtual-scroll.spec.ts index 14fd550309..5a562dd3a6 100644 --- a/angular/test/test-app/e2e/src/virtual-scroll.spec.ts +++ b/angular/test/test-app/e2e/src/virtual-scroll.spec.ts @@ -5,10 +5,7 @@ describe('Virtual Scroll', () => { }) it('should open virtual-scroll', () => { - cy.document().then((doc) => { - const virtualElements = doc.querySelectorAll('ion-virtual-scroll > *'); - expect(virtualElements.length).to.be.greaterThan(0); - }); + cy.get('ion-virtual-scroll > *').its('length').should('be.gt', 0); }); }); diff --git a/angular/test/test-app/package-lock.json b/angular/test/test-app/package-lock.json index ca55034416..6588fe6fc6 100644 --- a/angular/test/test-app/package-lock.json +++ b/angular/test/test-app/package-lock.json @@ -45,7 +45,7 @@ "@typescript-eslint/eslint-plugin": "4.28.2", "@typescript-eslint/parser": "4.28.2", "concurrently": "^6.0.0", - "cypress": "^6.7.1", + "cypress": "^10.2.0", "eslint": "^7.26.0", "ts-loader": "^6.2.2", "ts-node": "^8.3.0", @@ -2504,82 +2504,6 @@ "postcss-selector-parser": "^6.0.10" } }, - "node_modules/@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -3138,18 +3062,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nrwl/cli/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nrwl/cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3184,21 +3096,6 @@ "node": ">=8" } }, - "node_modules/@nrwl/cli/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@nrwl/cli/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -3292,19 +3189,6 @@ } } }, - "node_modules/@nrwl/cli/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@nrwl/cli/node_modules/semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -3495,26 +3379,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "dependencies": { - "any-observable": "^0.3.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } - } - }, "node_modules/@schematics/angular": { "version": "13.3.7", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", @@ -3760,9 +3624,9 @@ } }, "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "node_modules/@types/sizzle": { @@ -3789,6 +3653,16 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", @@ -4958,15 +4832,6 @@ "node": ">=4" } }, - "node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -5908,9 +5773,9 @@ } }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", "dev": true }, "node_modules/circular-dependency-plugin": { @@ -5935,15 +5800,15 @@ } }, "node_modules/cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { - "restore-cursor": "^1.0.1" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/cli-spinners": { @@ -5974,63 +5839,19 @@ } }, "node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" + "node": ">=8" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-width": { @@ -6053,56 +5874,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -6126,15 +5897,6 @@ "node": ">=6" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -6266,21 +6028,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "node_modules/concurrently": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", @@ -6973,64 +6720,66 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/cypress": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-6.9.1.tgz", - "integrity": "sha512-/RVx6sOhsyTR9sd9v0BHI4tnDZAhsH9rNat7CIKCUEr5VPWxyfGH0EzK4IHhAqAH8vjFcD4U14tPiJXshoUrmQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.2.0.tgz", + "integrity": "sha512-+i9lY5ENlfi2mJwsggzR+XASOIgMd7S/Gd3/13NCpv596n3YSplMAueBTIxNLcxDpTcIksp+9pM3UaDrJDpFqA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/listr-verbose-renderer": "^0.4.1", - "@cypress/request": "^2.88.5", + "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", - "@types/node": "12.12.50", - "@types/sinonjs__fake-timers": "^6.0.1", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", - "arch": "^2.1.2", - "blob-util": "2.0.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", - "cli-table3": "~0.6.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", "commander": "^5.1.0", "common-tags": "^1.8.0", - "dayjs": "^1.9.3", - "debug": "4.3.2", - "eventemitter2": "^6.4.2", - "execa": "^4.0.2", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", "executable": "^4.1.1", - "extract-zip": "^1.7.0", - "fs-extra": "^9.0.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", - "listr": "^0.14.3", - "lodash": "^4.17.19", + "listr2": "^3.8.3", + "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "moment": "^2.29.1", + "minimist": "^1.2.6", "ospath": "^1.2.2", - "pretty-bytes": "^5.4.1", - "ramda": "~0.27.1", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "supports-color": "^7.2.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" }, "bin": { "cypress": "bin/cypress" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" } }, "node_modules/cypress/node_modules/@types/node": { - "version": "12.12.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.50.tgz", - "integrity": "sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w==", + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", "dev": true }, "node_modules/cypress/node_modules/ansi-styles": { @@ -7064,6 +6813,18 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cypress/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -7082,23 +6843,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/cypress/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/cypress/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7109,15 +6853,18 @@ } }, "node_modules/cypress/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/dashdash": { @@ -7598,15 +7345,6 @@ "integrity": "sha512-MP3oBer0X7ZeS9GJ0H6lmkn561UxiwOIY9TTkdxVY7lI9G6GVCKfgJaHaDcakwdKxBXA4T3ybeswH/WBIN/KTA==", "dev": true }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -8737,15 +8475,6 @@ "node": ">=4" } }, - "node_modules/exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/express": { "version": "4.18.1", "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", @@ -8925,47 +8654,25 @@ } }, "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", + "debug": "^4.1.1", + "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "bin": { "extract-zip": "cli.js" - } - }, - "node_modules/extract-zip/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/extract-zip/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -9045,16 +8752,18 @@ } }, "node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -9505,26 +9214,20 @@ "dev": true }, "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -9997,15 +9700,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -10092,18 +9786,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/inquirer/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -10122,21 +9804,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/inquirer/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10146,19 +9813,6 @@ "node": ">=8" } }, - "node_modules/inquirer/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/inquirer/node_modules/rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -10246,12 +9900,12 @@ } }, "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" @@ -10330,16 +9984,16 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10378,27 +10032,6 @@ "lodash.isfinite": "^3.3.2" } }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "dependencies": { - "symbol-observable": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-observable/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -10446,12 +10079,6 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -11100,219 +10727,40 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=6" + "node": ">=10.0.0" }, "peerDependencies": { - "listr": "^0.14.2" + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, - "node_modules/listr-update-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/listr2/node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "dev": true, "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "node_modules/listr-verbose-renderer/node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" + "tslib": "^2.1.0" } }, "node_modules/loader-runner": { @@ -11530,72 +10978,85 @@ } }, "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "restore-cursor": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update/node_modules/onetime": { + "node_modules/log-update/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "mimic-fn": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/log-update/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/lru-cache": { @@ -12004,15 +11465,6 @@ "node": ">=10" } }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -12506,15 +11958,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -12766,18 +12209,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -12805,19 +12236,6 @@ "node": ">=8" } }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -13847,6 +13265,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -13885,16 +13309,6 @@ "node": ">=0.6" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -13915,12 +13329,6 @@ } ] }, - "node_modules/ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", - "dev": true - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14270,25 +13678,16 @@ "dev": true }, "node_modules/restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/retry": { @@ -14310,6 +13709,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -14838,14 +14243,52 @@ } }, "node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -15912,12 +15355,6 @@ "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "node_modules/typescript": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", @@ -16053,22 +15490,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -16748,61 +16169,55 @@ } }, "node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -16922,7 +16337,7 @@ "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", @@ -18634,66 +18049,6 @@ "integrity": "sha512-rZ6vufeY/UjAgtyiJ4WvfF6XP6HizIyOfbZOg0RnecIwjrvH8Am3nN1BpKnnPZunYAkUcPPXDhwbxOtGop8cfQ==", "dev": true }, - "@cypress/listr-verbose-renderer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", - "integrity": "sha512-EDiBsVPWC27DDLEJCo+dpl9ODHhdrwU57ccr9tspwCdG2ni0QVkf6LF0FGbhfujcjPxnXLIwsaks4sOrwrA4Qw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-cursor": "^1.0.2", - "date-fns": "^1.27.2", - "figures": "^1.7.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -19130,15 +18485,6 @@ "supports-color": "^7.1.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -19167,15 +18513,6 @@ "micromatch": "^4.0.4" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -19244,16 +18581,6 @@ "yargs-parser": "21.0.1" } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -19394,15 +18721,6 @@ "node-gyp-build": "^4.3.0" } }, - "@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", - "dev": true, - "requires": { - "any-observable": "^0.3.0" - } - }, "@schematics/angular": { "version": "13.3.7", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", @@ -19633,9 +18951,9 @@ } }, "@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "@types/sizzle": { @@ -19662,6 +18980,16 @@ "@types/node": "*" } }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@typescript-eslint/eslint-plugin": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz", @@ -20492,12 +19820,6 @@ "color-convert": "^1.9.0" } }, - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -21220,9 +20542,9 @@ "dev": true }, "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", "dev": true }, "circular-dependency-plugin": { @@ -21238,12 +20560,12 @@ "dev": true }, "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "restore-cursor": "^1.0.1" + "restore-cursor": "^3.1.0" } }, "cli-spinners": { @@ -21263,50 +20585,13 @@ } }, "cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "requires": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" } }, "cli-width": { @@ -21324,43 +20609,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "clone": { @@ -21380,12 +20628,6 @@ "shallow-clone": "^3.0.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -21498,18 +20740,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "concurrently": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", @@ -22006,57 +21236,59 @@ } }, "cypress": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-6.9.1.tgz", - "integrity": "sha512-/RVx6sOhsyTR9sd9v0BHI4tnDZAhsH9rNat7CIKCUEr5VPWxyfGH0EzK4IHhAqAH8vjFcD4U14tPiJXshoUrmQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.2.0.tgz", + "integrity": "sha512-+i9lY5ENlfi2mJwsggzR+XASOIgMd7S/Gd3/13NCpv596n3YSplMAueBTIxNLcxDpTcIksp+9pM3UaDrJDpFqA==", "dev": true, "requires": { - "@cypress/listr-verbose-renderer": "^0.4.1", - "@cypress/request": "^2.88.5", + "@cypress/request": "^2.88.10", "@cypress/xvfb": "^1.2.4", - "@types/node": "12.12.50", - "@types/sinonjs__fake-timers": "^6.0.1", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", - "arch": "^2.1.2", - "blob-util": "2.0.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", "bluebird": "^3.7.2", + "buffer": "^5.6.0", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", - "cli-table3": "~0.6.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", "commander": "^5.1.0", "common-tags": "^1.8.0", - "dayjs": "^1.9.3", - "debug": "4.3.2", - "eventemitter2": "^6.4.2", - "execa": "^4.0.2", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", "executable": "^4.1.1", - "extract-zip": "^1.7.0", - "fs-extra": "^9.0.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", - "listr": "^0.14.3", - "lodash": "^4.17.19", + "listr2": "^3.8.3", + "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "moment": "^2.29.1", + "minimist": "^1.2.6", "ospath": "^1.2.2", - "pretty-bytes": "^5.4.1", - "ramda": "~0.27.1", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "supports-color": "^7.2.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", - "url": "^0.11.0", "yauzl": "^2.10.0" }, "dependencies": { "@types/node": { - "version": "12.12.50", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.50.tgz", - "integrity": "sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w==", + "version": "14.18.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", + "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==", "dev": true }, "ansi-styles": { @@ -22076,6 +21308,17 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "color-convert": { @@ -22093,15 +21336,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -22109,9 +21343,9 @@ "dev": true }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -22474,12 +21708,6 @@ "integrity": "sha512-MP3oBer0X7ZeS9GJ0H6lmkn561UxiwOIY9TTkdxVY7lI9G6GVCKfgJaHaDcakwdKxBXA4T3ybeswH/WBIN/KTA==", "dev": true }, - "elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -23217,12 +22445,6 @@ "pify": "^2.2.0" } }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==", - "dev": true - }, "express": { "version": "4.18.1", "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", @@ -23370,41 +22592,15 @@ } }, "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } } }, "extsprintf": { @@ -23477,13 +22673,12 @@ } }, "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -23826,20 +23021,12 @@ "dev": true }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "requires": { - "ini": "1.3.7" - }, - "dependencies": { - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - } + "ini": "2.0.0" } }, "globals": { @@ -24184,12 +23371,6 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -24258,15 +23439,6 @@ "supports-color": "^7.1.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -24282,31 +23454,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -24378,12 +23531,12 @@ } }, "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "ci-info": "^3.2.0" } }, "is-core-module": { @@ -24432,13 +23585,13 @@ } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-interactive": { @@ -24468,23 +23621,6 @@ "lodash.isfinite": "^3.3.2" } }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "^1.1.0" - }, - "dependencies": { - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - } - } - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -24517,12 +23653,6 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -25009,169 +24139,29 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, "requires": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "dependencies": { - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } - } - }, - "listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", - "dev": true - }, - "listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "requires": { - "chalk": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, - "listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "tslib": "^2.1.0" } } } @@ -25339,54 +24329,61 @@ } }, "log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "color-convert": "^2.0.1" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "onetime": { + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "color-name": "~1.1.4" } }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -25697,12 +24694,6 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -26095,12 +25086,6 @@ "boolbase": "^1.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -26282,15 +25267,6 @@ "supports-color": "^7.1.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -26312,16 +25288,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27024,6 +25990,12 @@ "ipaddr.js": "1.9.1" } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -27056,24 +26028,12 @@ "integrity": "sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA==", "dev": true }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -27360,21 +26320,13 @@ } }, "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - }, - "dependencies": { - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==", - "dev": true - } + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, "retry": { @@ -27389,6 +26341,12 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -27797,10 +26755,41 @@ "dev": true }, "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } }, "smart-buffer": { "version": "4.2.0", @@ -28611,12 +27600,6 @@ "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "typescript": { "version": "4.6.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", @@ -28706,24 +27689,6 @@ "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -29205,45 +28170,39 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "color-convert": "^2.0.1" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -29329,7 +28288,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, "requires": { "buffer-crc32": "~0.2.3", diff --git a/angular/test/test-app/package.json b/angular/test/test-app/package.json index 31e8597361..bc4bda1b92 100644 --- a/angular/test/test-app/package.json +++ b/angular/test/test-app/package.json @@ -56,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "4.28.2", "@typescript-eslint/parser": "4.28.2", "concurrently": "^6.0.0", - "cypress": "^6.7.1", + "cypress": "^10.2.0", "eslint": "^7.26.0", "ts-loader": "^6.2.2", "ts-node": "^8.3.0", diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 07c58c1934..51e6ceaf88 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + + +### Bug Fixes + +* **datetime:** add dev warnings when setting out of bounds value ([#25513](https://github.com/ionic-team/ionic/issues/25513)) ([5dfaf63](https://github.com/ionic-team/ionic/commit/5dfaf63c6582811b61339a6fa50cf551cd8724d0)) + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) diff --git a/core/package-lock.json b/core/package-lock.json index 79fd6d20f3..df84b9b342 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { "@stencil/core": "^2.16.0", diff --git a/core/package.json b/core/package.json index 5db51ce102..84ebb084bd 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "6.1.11", + "version": "6.1.12", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/core/src/components/accordion/test/a11y/accordion.e2e.ts b/core/src/components/accordion/test/a11y/accordion.e2e.ts new file mode 100644 index 0000000000..3fdcdeb447 --- /dev/null +++ b/core/src/components/accordion/test/a11y/accordion.e2e.ts @@ -0,0 +1,42 @@ +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('accordion: a11y', () => { + test('accordions should be keyboard navigable', async ({ page, browserName }) => { + // TODO(FW-1764): remove skip once issue is resolved + test.skip(browserName === 'firefox', 'https://github.com/ionic-team/ionic-framework/issues/25529'); + + await page.goto(`/src/components/accordion/test/a11y`); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + const personalInfoHeader = page.locator('ion-accordion:first-child > ion-item'); + const billingAddressHeader = page.locator('ion-accordion:nth-child(2) > ion-item'); + const shippingAddressHeader = page.locator('ion-accordion:nth-child(3) > ion-item'); + const addressInput = page.locator('#address1 input'); + + await page.keyboard.press(tabKey); + await expect(personalInfoHeader).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + await expect(billingAddressHeader).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + await expect(shippingAddressHeader).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + await expect(personalInfoHeader).toBeFocused(); + + await page.keyboard.press('ArrowUp'); + await expect(shippingAddressHeader).toBeFocused(); + + // open Shipping Address accordion and move focus to the input inside it + await page.keyboard.press('Enter'); + await page.waitForChanges(); + await page.keyboard.press(tabKey); + await expect(addressInput).toBeFocused(); + + // ensure keyboard interaction doesn't move focus from body + await page.keyboard.press('ArrowDown'); + await expect(addressInput).toBeFocused(); + }); +}); diff --git a/core/src/components/accordion/test/a11y/e2e.ts b/core/src/components/accordion/test/a11y/e2e.ts deleted file mode 100644 index f25141b93a..0000000000 --- a/core/src/components/accordion/test/a11y/e2e.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; - -const getActiveElementText = async (page) => { - const activeElement = await page.evaluateHandle(() => document.activeElement); - return page.evaluate((el) => el?.innerText, activeElement); -}; - -const getActiveInputID = async (page) => { - const activeElement = await page.evaluateHandle(() => document.activeElement); - return page.evaluate((el) => el?.closest('ion-input')?.id, activeElement); -}; - -test('accordion: a11y', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/a11y?ionic:_testing=true', - }); - - const compare = await page.compareScreenshot(); - expect(compare).toMatchScreenshot(); -}); - -test('accordion:rtl: a11y', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/a11y?ionic:_testing=true&rtl=true', - }); - - const compare = await page.compareScreenshot(); - expect(compare).toMatchScreenshot(); -}); - -test('accordion: keyboard navigation', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/a11y?ionic:_testing=true', - }); - - await page.keyboard.press('Tab'); - expect(await getActiveElementText(page)).toEqual('Personal Information'); - - await page.keyboard.press('ArrowDown'); - expect(await getActiveElementText(page)).toEqual('Billing Address'); - - await page.keyboard.press('ArrowDown'); - expect(await getActiveElementText(page)).toEqual('Shipping Address'); - - await page.keyboard.press('ArrowDown'); - expect(await getActiveElementText(page)).toEqual('Personal Information'); - - await page.keyboard.press('ArrowUp'); - expect(await getActiveElementText(page)).toEqual('Shipping Address'); - - // open Shipping Address accordion and move focus to the input inside it - await page.keyboard.press('Enter'); - await page.waitForChanges(); - await page.keyboard.press('Tab'); - - const activeID = await getActiveInputID(page); - expect(activeID).toEqual('address1'); - - // ensure keyboard interaction doesn't move focus from body - await page.keyboard.press('ArrowDown'); - const activeIDAgain = await getActiveInputID(page); - expect(activeIDAgain).toEqual('address1'); -}); diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts b/core/src/components/accordion/test/basic/accordion.e2e.ts new file mode 100644 index 0000000000..3263fdde5c --- /dev/null +++ b/core/src/components/accordion/test/basic/accordion.e2e.ts @@ -0,0 +1,12 @@ +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('accordion: basic', () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/accordion/test/basic`); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(`accordion-basic-${page.getSnapshotSettings()}.png`); + }); +}); diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..9ae8357d19 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..ed66c275b7 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..844d76c106 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..8dd6f51a17 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..13c6cdb9d5 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..16bc9ed888 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..93f4638839 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..afb42d65b8 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..0e658f359c Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..70f8202722 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..3d19a6782d Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..5ce5433b71 Binary files /dev/null and b/core/src/components/accordion/test/basic/accordion.e2e.ts-snapshots/accordion-basic-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/basic/e2e.ts b/core/src/components/accordion/test/basic/e2e.ts deleted file mode 100644 index 99771845ae..0000000000 --- a/core/src/components/accordion/test/basic/e2e.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; - -test('accordion: basic', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/basic?ionic:_testing=true', - }); - - const compare = await page.compareScreenshot(); - expect(compare).toMatchScreenshot(); -}); diff --git a/core/src/components/accordion/test/basic/index.html b/core/src/components/accordion/test/basic/index.html index 9f26b6bf0a..0307c164aa 100644 --- a/core/src/components/accordion/test/basic/index.html +++ b/core/src/components/accordion/test/basic/index.html @@ -42,12 +42,12 @@
-

Inset, Color - iOS

- +

Inset, Color

+ - Attractions + Attractions @@ -118,12 +118,12 @@
-

Inset - iOS

- +

Inset

+ - Attractions + Attractions @@ -194,12 +194,12 @@
-

Inset, Color - MD

- +

Compact, Color

+ - Attractions + Attractions @@ -270,394 +270,12 @@
-

Inset - MD

- +

Compact

+ - Attractions - - - - Movie Theaters - - - Amusement Parks - - - Mini Golf - - - - - - - Dining - - - - Breakfast & Brunch - - - New American - - - Sushi Bars - - - - - - - Games - - - - - Xbox - - - Playstation - - - Switch - - - - - - - Exercise - - - - - Jog - - - Swim - - - Nap - - - - -
-
-
-
-

Compact, Color - iOS

- - - - - Attractions - - - - Movie Theaters - - - Amusement Parks - - - Mini Golf - - - - - - - Dining - - - - Breakfast & Brunch - - - New American - - - Sushi Bars - - - - - - - Games - - - - - Xbox - - - Playstation - - - Switch - - - - - - - Exercise - - - - - Jog - - - Swim - - - Nap - - - - -
- -
-

Compact - iOS

- - - - - Attractions - - - - Movie Theaters - - - Amusement Parks - - - Mini Golf - - - - - - - Dining - - - - Breakfast & Brunch - - - New American - - - Sushi Bars - - - - - - - Games - - - - - Xbox - - - Playstation - - - Switch - - - - - - - Exercise - - - - - Jog - - - Swim - - - Nap - - - - -
- -
-

Compact, Color - MD

- - - - - Attractions - - - - Movie Theaters - - - Amusement Parks - - - Mini Golf - - - - - - - Dining - - - - Breakfast & Brunch - - - New American - - - Sushi Bars - - - - - - - Games - - - - - Xbox - - - Playstation - - - Switch - - - - - - - Exercise - - - - - Jog - - - Swim - - - Nap - - - - -
- -
-

Compact - MD

- - - - - Attractions - - - - Movie Theaters - - - Amusement Parks - - - Mini Golf - - - - - - - Dining - - - - Breakfast & Brunch - - - New American - - - Sushi Bars - - - - - - - Games - - - - - Xbox - - - Playstation - - - Switch - - - - - - - Exercise - - - - - Jog - - - Swim - - - Nap - - - - -
-
-
-
-

Multiple

- - - - - Attractions + Attractions @@ -729,10 +347,5 @@
- - diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts b/core/src/components/accordion/test/multiple/accordion.e2e.ts new file mode 100644 index 0000000000..a22963585b --- /dev/null +++ b/core/src/components/accordion/test/multiple/accordion.e2e.ts @@ -0,0 +1,30 @@ +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('accordion: multiple', () => { + test('should update value and not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/accordion/test/multiple`); + const accordionGroup = page.locator('ion-accordion-group'); + const diningHeader = page.locator('ion-accordion[value="dining"] ion-item[slot="header"]'); + const attractionsHeader = page.locator('ion-accordion[value="attractions"] ion-item[slot="header"]'); + + await expect(accordionGroup).toHaveJSProperty('value', 'attractions'); + + expect(await accordionGroup.screenshot()).toMatchSnapshot(`accordion-one-open-${page.getSnapshotSettings()}.png`); + + await diningHeader.click(); + await page.waitForChanges(); + + await expect(accordionGroup).toHaveJSProperty('value', ['attractions', 'dining']); + + expect(await accordionGroup.screenshot()).toMatchSnapshot(`accordion-two-open-${page.getSnapshotSettings()}.png`); + + await diningHeader.click(); + await attractionsHeader.click(); + await page.waitForChanges(); + + await expect(accordionGroup).toHaveJSProperty('value', []); + + expect(await accordionGroup.screenshot()).toMatchSnapshot(`accordion-zero-open-${page.getSnapshotSettings()}.png`); + }); +}); diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..3bdc0bb350 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..b976f4ebb5 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..c78ed02065 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..12355ea455 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..2daf0475c0 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..6afc08dbb6 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..654a14b1a1 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..ccf14822ea Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..94a8595fd6 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..b247e62b59 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e7d34a5607 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1e40ae1460 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-one-open-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..935485f054 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4440f05110 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..b67d1e2e8b Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..5efc4675af Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..4d53bb9087 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d16b368288 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..88644fd471 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..941e91080f Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..0ea94f20d4 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..e9b2d55fbd Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..ad0267a1f4 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..ed285c5dad Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-two-open-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..80c46f3b99 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..06b0b7fad8 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..2bcaed70c7 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..ca3cb744b8 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..379d618ae7 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..187bcd1521 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..d4e59105e0 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..22bdc8219d Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..7e9e65c132 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..bef0ea4533 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5b7d1c2c00 Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..143342ccab Binary files /dev/null and b/core/src/components/accordion/test/multiple/accordion.e2e.ts-snapshots/accordion-zero-open-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/multiple/e2e.ts b/core/src/components/accordion/test/multiple/e2e.ts deleted file mode 100644 index 7feaa318a6..0000000000 --- a/core/src/components/accordion/test/multiple/e2e.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; - -test('accordion: multiple - open', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/multiple?ionic:_testing=true', - }); - - const screenshotCompares = []; - - screenshotCompares.push(await page.compareScreenshot()); - - const accordionGroup = await page.find('ion-accordion-group'); - const diningAccordion = await page.find('ion-accordion[value="dining"] ion-item[slot="header"]'); - - const groupValue = await accordionGroup.getProperty('value'); - expect(groupValue).toEqual('attractions'); - - await diningAccordion.click(); - await page.waitForChanges(); - - const groupValueAgain = await accordionGroup.getProperty('value'); - expect(groupValueAgain).toEqual(['attractions', 'dining']); - - screenshotCompares.push(await page.compareScreenshot()); - - for (const screenshotCompare of screenshotCompares) { - expect(screenshotCompare).toMatchScreenshot(); - } -}); - -test('accordion: multiple - close', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/multiple?ionic:_testing=true', - }); - - const screenshotCompares = []; - - screenshotCompares.push(await page.compareScreenshot()); - - const accordionGroup = await page.find('ion-accordion-group'); - const attractionsAccordion = await page.find('ion-accordion[value="attractions"] ion-item[slot="header"]'); - - await attractionsAccordion.click(); - await page.waitForChanges(); - - const groupValue = await accordionGroup.getProperty('value'); - expect(groupValue).toEqual([]); - - screenshotCompares.push(await page.compareScreenshot()); - - for (const screenshotCompare of screenshotCompares) { - expect(screenshotCompare).toMatchScreenshot(); - } -}); diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts b/core/src/components/accordion/test/nested/accordion.e2e.ts new file mode 100644 index 0000000000..d6391dc8c8 --- /dev/null +++ b/core/src/components/accordion/test/nested/accordion.e2e.ts @@ -0,0 +1,12 @@ +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('accordion: nested', () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/accordion/test/nested`); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(`accordion-nested-${page.getSnapshotSettings()}.png`); + }); +}); diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..bbf195378e Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..45e350c44a Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..ed6d351515 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..3409b62205 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5f83d73073 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..732973d3b1 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..95f00378bc Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..7ed0b253ee Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..edd70efe0d Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..7c6ed8a9ce Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5428912a46 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..52eee13412 Binary files /dev/null and b/core/src/components/accordion/test/nested/accordion.e2e.ts-snapshots/accordion-nested-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/nested/e2e.ts b/core/src/components/accordion/test/nested/e2e.ts deleted file mode 100644 index 580ae1dac6..0000000000 --- a/core/src/components/accordion/test/nested/e2e.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; - -test('nested: basic', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/nested?ionic:_testing=true', - }); - - const compare = await page.compareScreenshot(); - expect(compare).toMatchScreenshot(); -}); diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts b/core/src/components/accordion/test/standalone/accordion.e2e.ts new file mode 100644 index 0000000000..46470182e8 --- /dev/null +++ b/core/src/components/accordion/test/standalone/accordion.e2e.ts @@ -0,0 +1,21 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('accordion: standalone', () => { + test('should not have accessibility violations', async ({ page }) => { + await page.goto(`/src/components/accordion/test/standalone`); + + const results = await new AxeBuilder({ page }).analyze(); + + expect(results.violations).toEqual([]); + }); + + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/accordion/test/standalone`); + + expect(await page.screenshot({ fullPage: true })).toMatchSnapshot( + `accordion-standalone-${page.getSnapshotSettings()}.png` + ); + }); +}); diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..cc38afd43c Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..a07df8cec8 Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..497cfb1a56 Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2f400a81ed Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..ea1f539bae Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..91980dc95c Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Chrome-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..3703feb02c Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Firefox-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..1975f8b987 Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Safari-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d733074c89 Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Chrome-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..e812d62b47 Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Firefox-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5798de3e0f Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Safari-linux.png b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..2b21eb8dad Binary files /dev/null and b/core/src/components/accordion/test/standalone/accordion.e2e.ts-snapshots/accordion-standalone-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/accordion/test/standalone/e2e.ts b/core/src/components/accordion/test/standalone/e2e.ts deleted file mode 100644 index 57bc7b82d2..0000000000 --- a/core/src/components/accordion/test/standalone/e2e.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { AxePuppeteer } from '@axe-core/puppeteer'; -import { newE2EPage } from '@stencil/core/testing'; - -test('accordion: axe', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/standalone?ionic:_testing=true', - }); - - const results = await new AxePuppeteer(page).analyze(); - expect(results.violations.length).toEqual(0); -}); - -test('accordion: standalone', async () => { - const page = await newE2EPage({ - url: '/src/components/accordion/test/standalone?ionic:_testing=true', - }); - - const compare = await page.compareScreenshot(); - expect(compare).toMatchScreenshot(); -}); diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts new file mode 100644 index 0000000000..226b84b4b7 --- /dev/null +++ b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts @@ -0,0 +1,151 @@ +import { expect } from '@playwright/test'; +import type { Locator } from '@playwright/test'; +import { test } from '@utils/test/playwright'; +import type { E2EPage } from '@utils/test/playwright'; + +test.describe('action sheet: basic', () => { + let actionSheetFixture: ActionSheetFixture; + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/action-sheet/test/basic`); + actionSheetFixture = new ActionSheetFixture(page); + }); + test.describe('action sheet: data', () => { + test('should return data', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + const ionActionSheetDidDismiss = await page.spyOnEvent('ionActionSheetDidDismiss'); + + await actionSheetFixture.open('#buttonData'); + + const buttonOption = page.locator('ion-action-sheet button#option'); + await buttonOption.click(); + + await ionActionSheetDidDismiss.next(); + expect(ionActionSheetDidDismiss).toHaveReceivedEventDetail({ data: { type: '1' } }); + }); + test('should return cancel button data', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + const ionActionSheetDidDismiss = await page.spyOnEvent('ionActionSheetDidDismiss'); + + await actionSheetFixture.open('#buttonData'); + + const buttonOption = page.locator('ion-action-sheet button.action-sheet-cancel'); + await buttonOption.click(); + + await ionActionSheetDidDismiss.next(); + expect(ionActionSheetDidDismiss).toHaveReceivedEventDetail({ data: { type: 'cancel' }, role: 'cancel' }); + }); + }); + test.describe('action sheet: attributes', () => { + test('should set htmlAttributes', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + await actionSheetFixture.open('#basic'); + + const actionSheet = page.locator('ion-action-sheet'); + expect(actionSheet).toHaveAttribute('data-testid', 'basic-action-sheet'); + }); + }); + test.describe('action sheet: variants', () => { + test('should open basic action sheet', async () => { + await actionSheetFixture.open('#basic'); + await actionSheetFixture.screenshot('basic'); + + /** + * We want to test that the dismiss method + * actually works, but we do not need to test + * it every time. As a result, we only + * call dismiss in this test. + */ + await actionSheetFixture.dismiss(); + }); + test('should open cancel only action sheet', async () => { + await actionSheetFixture.open('#cancelOnly'); + await actionSheetFixture.screenshot('cancel-only'); + }); + test('should open custom action sheet', async () => { + await actionSheetFixture.open('#custom'); + await actionSheetFixture.screenshot('custom'); + }); + test('should open scrollable action sheet', async () => { + await actionSheetFixture.open('#scrollableOptions'); + await actionSheetFixture.screenshot('scrollable-options'); + }); + test('should open scrollable action sheet without cancel', async () => { + await actionSheetFixture.open('#scrollWithoutCancel'); + await actionSheetFixture.screenshot('scroll-without-cancel'); + }); + test('should open custom backdrop action sheet', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + await actionSheetFixture.open('#customBackdrop'); + + const backdrop = page.locator('ion-action-sheet ion-backdrop'); + expect(backdrop).toHaveCSS('opacity', '1'); + }); + test('should open alert from action sheet', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + const ionAlertDidPresent = await page.spyOnEvent('ionAlertDidPresent'); + await actionSheetFixture.open('#alertFromActionSheet'); + + await page.locator('#open-alert').click(); + + await ionAlertDidPresent.next(); + }); + test('should not dismiss action sheet when backdropDismiss: false', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + await actionSheetFixture.open('#noBackdropDismiss'); + + const actionSheet = page.locator('ion-action-sheet'); + await actionSheet.locator('ion-backdrop').click(); + + expect(actionSheet).toBeVisible(); + }); + }); + test.describe('action sheet: focus trap', () => { + test('it should trap focus in action sheet', async ({ page, browserName }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + await actionSheetFixture.open('#basic'); + const buttons = page.locator('ion-action-sheet button'); + + await page.keyboard.press(tabKey); + await expect(buttons.nth(0)).toBeFocused(); + + await page.keyboard.press(`Shift+${tabKey}`); + await expect(buttons.nth(4)).toBeFocused(); + + await page.keyboard.press(tabKey); + await expect(buttons.nth(0)).toBeFocused(); + }); + }); +}); + +class ActionSheetFixture { + readonly page: E2EPage; + + private actionSheet!: Locator; + + constructor(page: E2EPage) { + this.page = page; + } + + async open(selector: string) { + const ionActionSheetDidPresent = await this.page.spyOnEvent('ionActionSheetDidPresent'); + await this.page.locator(selector).click(); + await ionActionSheetDidPresent.next(); + this.actionSheet = this.page.locator('ion-action-sheet'); + expect(this.actionSheet).toBeVisible(); + } + + async dismiss() { + const ionActionSheetDidDismiss = await this.page.spyOnEvent('ionActionSheetDidDismiss'); + await this.actionSheet.evaluate((el: HTMLIonActionSheetElement) => el.dismiss()); + await ionActionSheetDidDismiss.next(); + expect(this.actionSheet).not.toBeVisible(); + } + + async screenshot(modifier: string) { + expect(await this.actionSheet.screenshot()).toMatchSnapshot( + `action-sheet-${modifier}-diff-${this.page.getSnapshotSettings()}.png` + ); + } +} diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..140b6b99ed Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..9d0fd1f4ce Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..4e8634447b Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..475bc42687 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..0c2f89ddde Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..e7ddb4571d Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..05f0f4046d Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5a60aa2d75 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..784abe3029 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..158985dffe Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..31b435160b Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..2db25fb099 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..4ada7d72b9 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..0d3e8a1101 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1ba058ea3c Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..f3c8502ec6 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..aebbc9feea Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d2593b0038 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..23739bd73e Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..e23d01d025 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..e91111dbcd Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2d5839d68f Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..1912b7ebf6 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..d2425daf99 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..7e08a8996e Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..b5194bcfe4 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..4bc7642350 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..1dd876f405 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..3a4175b6b2 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..ab553e16f3 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..3a9c296404 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..0cde21dbc1 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..552bfc7f34 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..a9198da0d7 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..c32e2f66f3 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..29980cdb0b Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..cadff2b31d Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..7325d68d1e Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..482a083c91 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..cadff2b31d Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..fee03b4ee9 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..482a083c91 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2c021e3223 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..6c284734c5 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..5d746997f8 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..2984670eeb Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..17b6c1bec5 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1dbd582443 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..62d3c92c6e Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..82ea7f9d10 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1c1dcd0f7f Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..62d3c92c6e Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..0010271dc9 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..1c1dcd0f7f Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..87489f4191 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..581347a23b Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..c490c9c48d Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..5920d4c727 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..23507936d9 Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png new file mode 100644 index 0000000000..3e2fdbe2dd Binary files /dev/null and b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/basic/e2e.ts b/core/src/components/action-sheet/test/basic/e2e.ts deleted file mode 100644 index f83bdfdc9e..0000000000 --- a/core/src/components/action-sheet/test/basic/e2e.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; - -import { testActionSheet, testActionSheetAlert, testActionSheetBackdrop } from '../test.utils'; - -const DIRECTORY = 'basic'; -const getActiveElementText = async (page) => { - const activeElement = await page.evaluateHandle(() => document.activeElement); - return page.evaluate((el) => el?.textContent, activeElement); -}; - -test('action-sheet: data', async () => { - const page = await newE2EPage({ url: '/src/components/action-sheet/test/basic?ionic:_testing=true' }); - const didDismiss = await page.spyOnEvent('ionActionSheetDidDismiss'); - - await page.click('#buttonData'); - await page.waitForSelector('#buttonData'); - - const actionSheet = await page.find('ion-action-sheet'); - await actionSheet.waitForVisible(); - - const button = await actionSheet.find('button#option'); - await button.click(); - - expect(didDismiss).toHaveReceivedEventDetail({ data: { type: '1' } }); -}); - -test('action-sheet: data cancel', async () => { - const page = await newE2EPage({ url: '/src/components/action-sheet/test/basic?ionic:_testing=true' }); - const didDismiss = await page.spyOnEvent('ionActionSheetDidDismiss'); - - await page.click('#buttonData'); - await page.waitForSelector('#buttonData'); - - const actionSheet = await page.find('ion-action-sheet'); - await actionSheet.waitForVisible(); - - const button = await actionSheet.find('button.action-sheet-cancel'); - await button.click(); - - expect(didDismiss).toHaveReceivedEventDetail({ data: { type: 'cancel' }, role: 'cancel' }); -}); - -test('action-sheet: focus trap', async () => { - const page = await newE2EPage({ url: '/src/components/action-sheet/test/basic?ionic:_testing=true' }); - - await page.click('#basic'); - await page.waitForSelector('#basic'); - - const actionSheet = await page.find('ion-action-sheet'); - - expect(actionSheet).not.toBe(null); - await actionSheet.waitForVisible(); - - await page.keyboard.press('Tab'); - - const activeElementText = await getActiveElementText(page); - expect(activeElementText).toEqual('Delete'); - - await page.keyboard.down('Shift'); - await page.keyboard.press('Tab'); - await page.keyboard.up('Shift'); - - const activeElementTextTwo = await getActiveElementText(page); - expect(activeElementTextTwo).toEqual('Cancel'); - - await page.keyboard.press('Tab'); - - const activeElementTextThree = await getActiveElementText(page); - expect(activeElementTextThree).toEqual('Delete'); -}); - -test('action-sheet: basic', async () => { - await testActionSheet(DIRECTORY, '#basic'); -}); - -test('action-sheet: basic, alert from action sheet', async () => { - await testActionSheet(DIRECTORY, '#alertFromActionSheet', false, testActionSheetAlert); -}); - -test('action-sheet: basic, cancel only', async () => { - await testActionSheet(DIRECTORY, '#cancelOnly'); -}); - -test('action-sheet: basic, custom', async () => { - await testActionSheet(DIRECTORY, '#custom'); -}); - -test('action-sheet: basic, icons', async () => { - await testActionSheet(DIRECTORY, '#icons'); -}); - -test('action-sheet: basic, no backdrop dismiss', async () => { - await testActionSheet(DIRECTORY, '#noBackdropDismiss', false, testActionSheetBackdrop); -}); - -test('action-sheet: basic, scrollable options', async () => { - await testActionSheet(DIRECTORY, '#scrollableOptions'); -}); - -test('action-sheet: basic, scroll without cancel', async () => { - await testActionSheet(DIRECTORY, '#scrollWithoutCancel'); -}); - -test('action-sheet: basic, custom backdrop', async () => { - await testActionSheet(DIRECTORY, '#customBackdrop'); -}); - -/** - * RTL Tests - */ - -test('action-sheet:rtl: basic', async () => { - await testActionSheet(DIRECTORY, '#basic', true); -}); - -test('action-sheet:rtl: basic, alert from action sheet', async () => { - await testActionSheet(DIRECTORY, '#alertFromActionSheet', true, testActionSheetAlert); -}); - -test('action-sheet:rtl: basic, cancel only', async () => { - await testActionSheet(DIRECTORY, '#cancelOnly', true); -}); - -test('action-sheet:rtl: basic, custom', async () => { - await testActionSheet(DIRECTORY, '#custom', true); -}); - -test('action-sheet:rtl: basic, icons', async () => { - await testActionSheet(DIRECTORY, '#icons', true); -}); - -test('action-sheet:rtl: basic, no backdrop dismiss', async () => { - await testActionSheet(DIRECTORY, '#noBackdropDismiss', true, testActionSheetBackdrop); -}); - -test('action-sheet:rtl: basic, scrollable options', async () => { - await testActionSheet(DIRECTORY, '#scrollableOptions', true); -}); - -test('action-sheet:rtl: basic, scroll without cancel', async () => { - await testActionSheet(DIRECTORY, '#scrollWithoutCancel', true); -}); - -test('action-sheet:rtl: basic, custom backdrop', async () => { - await testActionSheet(DIRECTORY, '#customBackdrop', true); -}); - -// Attributes - -test('action-sheet: htmlAttributes', async () => { - const page = await newE2EPage({ url: '/src/components/action-sheet/test/basic?ionic:_testing=true' }); - - await page.click('#basic'); - await page.waitForSelector('#basic'); - - const toast = await page.find('ion-action-sheet'); - - expect(toast).not.toBe(null); - await toast.waitForVisible(); - - const attribute = await page.evaluate(() => document.querySelector('ion-action-sheet').getAttribute('data-testid')); - - expect(attribute).toEqual('basic-action-sheet'); -}); diff --git a/core/src/components/action-sheet/test/basic/index.html b/core/src/components/action-sheet/test/basic/index.html index 859354c471..d2f94721e0 100644 --- a/core/src/components/action-sheet/test/basic/index.html +++ b/core/src/components/action-sheet/test/basic/index.html @@ -139,6 +139,7 @@ buttons: [ { text: 'Open Alert', + id: 'open-alert', handler: async () => { const alert = Object.assign(document.createElement('ion-alert'), { header: 'Alert from Action Sheet', diff --git a/core/src/components/action-sheet/test/spec/e2e.ts b/core/src/components/action-sheet/test/spec/e2e.ts deleted file mode 100644 index 2c3634d449..0000000000 --- a/core/src/components/action-sheet/test/spec/e2e.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { testActionSheet } from '../test.utils'; - -const DIRECTORY = 'spec'; - -test('action-sheet: spec', async () => { - await testActionSheet(DIRECTORY, '#spec'); -}); diff --git a/core/src/components/action-sheet/test/spec/index.html b/core/src/components/action-sheet/test/spec/index.html deleted file mode 100644 index a160cc051a..0000000000 --- a/core/src/components/action-sheet/test/spec/index.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - Action Sheet - Spec - - - - - - - - - - - - - Action Sheet - Spec - - - - - Spec - - - - - - diff --git a/core/src/components/action-sheet/test/test.utils.ts b/core/src/components/action-sheet/test/test.utils.ts deleted file mode 100644 index 615eb83da8..0000000000 --- a/core/src/components/action-sheet/test/test.utils.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { newE2EPage } from '@stencil/core/testing'; -import { generateE2EUrl } from '@utils/test'; - -export const testActionSheet = async ( - type: string, - selector: string, - rtl = false, - afterScreenshotHook?: (...args: any[]) => void -) => { - try { - const pageUrl = generateE2EUrl('action-sheet', type, rtl); - - const page = await newE2EPage({ - url: pageUrl, - }); - - const screenshotCompares = []; - - const presentBtn = await page.find(selector); - await presentBtn.click(); - - let actionSheet = await page.find('ion-action-sheet'); - await actionSheet.waitForVisible(); - - screenshotCompares.push(await page.compareScreenshot()); - - if (afterScreenshotHook) { - await afterScreenshotHook(page, screenshotCompares, actionSheet); - } - - await actionSheet.callMethod('dismiss'); - await actionSheet.waitForNotVisible(); - - screenshotCompares.push(await page.compareScreenshot('dismiss')); - - actionSheet = await page.find('ion-action-sheet'); - expect(actionSheet).toBe(null); - - for (const screenshotCompare of screenshotCompares) { - expect(screenshotCompare).toMatchScreenshot(); - } - } catch (err) { - throw err; - } -}; - -export const testActionSheetBackdrop = async (page: any, screenshotCompares: any, actionSheet: any) => { - try { - const backdrop = await page.find('ion-backdrop'); - await backdrop.click(); - - screenshotCompares.push(await page.compareScreenshot(`dismiss backdrop`)); - - const isVisible = await actionSheet.isVisible(); - expect(isVisible).toBe(true); - } catch (err) { - throw err; - } -}; - -export const testActionSheetAlert = async (page: any, screenshotCompares: any) => { - const openAlertBtn = await page.find({ text: 'Open Alert' }); - await openAlertBtn.click(); - - const alert = await page.find('ion-alert'); - await alert.waitForVisible(); - await page.waitForTimeout(250); - - screenshotCompares.push(await page.compareScreenshot(`alert open`)); - - const alertOkayBtn = await page.find({ contains: 'Okay' }); - await alertOkayBtn.click(); -}; diff --git a/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts new file mode 100644 index 0000000000..c32529090a --- /dev/null +++ b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts @@ -0,0 +1,26 @@ +import { expect } from '@playwright/test'; +import { test } from '@utils/test/playwright'; + +test.describe('action sheet: translucent', () => { + test('should not have visual regressions', async ({ page }, testInfo) => { + test.skip(testInfo.project.metadata.mode === 'md', 'Translucent effect is only active on iOS mode'); + test.skip( + testInfo.project.metadata.rtl === true, + 'This tests how the component is painted, not layout. RTL tests are not needed here' + ); + + await page.goto(`/src/components/action-sheet/test/translucent`); + + const ionActionSheetDidPresent = await page.spyOnEvent('ionActionSheetDidPresent'); + + const basic = page.locator('#basic'); + await basic.click(); + + await ionActionSheetDidPresent.next(); + + const actionSheet = page.locator('ion-action-sheet'); + expect(await actionSheet.screenshot()).toMatchSnapshot( + `action-sheet-translucent-${page.getSnapshotSettings()}.png` + ); + }); +}); diff --git a/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Chrome-linux.png new file mode 100644 index 0000000000..d066c46938 Binary files /dev/null and b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Chrome-linux.png differ diff --git a/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Firefox-linux.png new file mode 100644 index 0000000000..5a55b099ad Binary files /dev/null and b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Firefox-linux.png differ diff --git a/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Safari-linux.png b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..526813b684 Binary files /dev/null and b/core/src/components/action-sheet/test/translucent/action-sheet.e2e.ts-snapshots/action-sheet-translucent-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/action-sheet/test/translucent/e2e.ts b/core/src/components/action-sheet/test/translucent/e2e.ts deleted file mode 100644 index 1438cf06ca..0000000000 --- a/core/src/components/action-sheet/test/translucent/e2e.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { testActionSheet } from '../test.utils'; - -const DIRECTORY = 'translucent'; - -test('action-sheet: translucent', async () => { - await testActionSheet(DIRECTORY, '#basic'); -}); diff --git a/core/src/components/datetime/datetime.tsx b/core/src/components/datetime/datetime.tsx index d9e9c518dd..ae07f5819f 100644 --- a/core/src/components/datetime/datetime.tsx +++ b/core/src/components/datetime/datetime.tsx @@ -11,6 +11,7 @@ import { isRTL } from '../../utils/rtl'; import { createColorClasses } from '../../utils/theme'; import type { PickerColumnItem } from '../picker-column-internal/picker-column-internal-interfaces'; +import { warnIfValueOutOfBounds } from './utils/comparison'; import { generateMonths, generateTime, @@ -326,6 +327,8 @@ export class Datetime implements ComponentInterface { */ const valueDateParts = parseDate(this.value); if (valueDateParts) { + warnIfValueOutOfBounds(valueDateParts, this.minParts, this.maxParts); + const { month, day, year, hour, minute } = valueDateParts; const ampm = hour >= 12 ? 'pm' : 'am'; @@ -1084,7 +1087,11 @@ export class Datetime implements ComponentInterface { private processValue = (value?: string | null) => { this.highlightActiveParts = !!value; const valueToProcess = parseDate(value || getToday()); - const { month, day, year, hour, minute, tzOffset } = clampDate(valueToProcess, this.minParts, this.maxParts); + + const { minParts, maxParts } = this; + warnIfValueOutOfBounds(valueToProcess, minParts, maxParts); + + const { month, day, year, hour, minute, tzOffset } = clampDate(valueToProcess, minParts, maxParts); this.setWorkingParts({ month, diff --git a/core/src/components/datetime/test/basic/datetime.e2e.ts b/core/src/components/datetime/test/basic/datetime.e2e.ts index aac79a479f..cf11c992d5 100644 --- a/core/src/components/datetime/test/basic/datetime.e2e.ts +++ b/core/src/components/datetime/test/basic/datetime.e2e.ts @@ -27,7 +27,7 @@ test.describe('datetime: closing time popover', () => { await ionPopoverDidDismiss.next(); await page.waitForChanges(); - expect(calendarMonthYear).toHaveText(currentMonthAndYear); + await expect(calendarMonthYear).toHaveText(currentMonthAndYear); }); }); @@ -41,13 +41,13 @@ test.describe('datetime: selecting a day', () => { `#${datetimeID} .calendar-day[data-day='${today.getDate()}'][data-month='${today.getMonth() + 1}']` ); - expect(todayBtn).toHaveClass(/calendar-day-today/); - expect(todayBtn).not.toHaveClass(/calendar-day-active/); + await expect(todayBtn).toHaveClass(/calendar-day-today/); + await expect(todayBtn).not.toHaveClass(/calendar-day-active/); await todayBtn.click(); await page.waitForChanges(); - expect(todayBtn).toHaveClass(/calendar-day-active/); + await expect(todayBtn).toHaveClass(/calendar-day-active/); }; test('should not highlight a day until one is selected', async ({ page }) => { @@ -64,13 +64,13 @@ test.describe('datetime: selecting a day', () => { const activeDay = page.locator('ion-datetime .calendar-day-active'); - expect(activeDay).toHaveText('25'); + await expect(activeDay).toHaveText('25'); const dayBtn = page.locator('ion-datetime .calendar-day[data-day="13"][data-month="12"]'); await dayBtn.click(); await page.waitForChanges(); - expect(activeDay).toHaveText('13'); + await expect(activeDay).toHaveText('13'); }); }); @@ -125,10 +125,10 @@ test.describe('datetime: footer', () => { await page.setContent(''); const cancelButton = page.locator('ion-datetime #cancel-button'); - expect(cancelButton).toHaveText('Cancel'); + await expect(cancelButton).toHaveText('Cancel'); const confirmButton = page.locator('ion-datetime #confirm-button'); - expect(confirmButton).toHaveText('Done'); + await expect(confirmButton).toHaveText('Done'); const datetime = page.locator('ion-datetime'); expect(await datetime.screenshot()).toMatchSnapshot( @@ -139,7 +139,7 @@ test.describe('datetime: footer', () => { await page.setContent(''); const clearButton = page.locator('ion-datetime #clear-button'); - expect(clearButton).toHaveText('Clear'); + await expect(clearButton).toHaveText('Clear'); const datetime = page.locator('ion-datetime'); expect(await datetime.screenshot()).toMatchSnapshot( @@ -152,13 +152,13 @@ test.describe('datetime: footer', () => { ); const cancelButton = page.locator('ion-datetime #cancel-button'); - expect(cancelButton).toHaveText('Cancel'); + await expect(cancelButton).toHaveText('Cancel'); const confirmButton = page.locator('ion-datetime #confirm-button'); - expect(confirmButton).toHaveText('Done'); + await expect(confirmButton).toHaveText('Done'); const clearButton = page.locator('ion-datetime #clear-button'); - expect(clearButton).toHaveText('Clear'); + await expect(clearButton).toHaveText('Clear'); const datetime = page.locator('ion-datetime'); expect(await datetime.screenshot()).toMatchSnapshot( @@ -175,7 +175,7 @@ test.describe('datetime: footer', () => { `); const customButton = page.locator('ion-datetime #custom-button'); - expect(customButton).toBeVisible(); + await expect(customButton).toBeVisible(); const datetime = page.locator('ion-datetime'); expect(await datetime.screenshot()).toMatchSnapshot( diff --git a/core/src/components/datetime/test/disable-dates/datetime.e2e.ts b/core/src/components/datetime/test/disable-dates/datetime.e2e.ts index a280597fc5..23bc14787e 100644 --- a/core/src/components/datetime/test/disable-dates/datetime.e2e.ts +++ b/core/src/components/datetime/test/disable-dates/datetime.e2e.ts @@ -122,21 +122,21 @@ test.describe('datetime: disable dates', () => { test('should disable a specific date', async ({ page }) => { const disabledDay = queryAllDisabledDays(page, '#specificDate'); - expect(disabledDay).toHaveText('10'); + await expect(disabledDay).toHaveText('10'); }); test('should disable specific days of the week', async ({ page }) => { const disabledDays = queryAllWorkingMonthDisabledDays(page, '#weekends'); expect(await disabledDays.count()).toEqual(10); - expect(disabledDays).toHaveText(['2', '3', '9', '10', '16', '17', '23', '24', '30', '31']); + await expect(disabledDays).toHaveText(['2', '3', '9', '10', '16', '17', '23', '24', '30', '31']); }); test('should disable a range of dates', async ({ page }) => { const disabledDays = queryAllDisabledDays(page, '#dateRange'); expect(await disabledDays.count()).toEqual(11); - expect(disabledDays).toHaveText(['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20']); + await expect(disabledDays).toHaveText(['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20']); }); test('should disable a month', async ({ page }) => { diff --git a/core/src/components/datetime/test/display/datetime.e2e.ts b/core/src/components/datetime/test/display/datetime.e2e.ts index 6c2954344a..fb553ce76e 100644 --- a/core/src/components/datetime/test/display/datetime.e2e.ts +++ b/core/src/components/datetime/test/display/datetime.e2e.ts @@ -106,7 +106,7 @@ test.describe('datetime: display', () => { const calendarMonthYear = page.locator('ion-datetime .calendar-month-year'); - expect(calendarMonthYear).toHaveText('March 2022'); + await expect(calendarMonthYear).toHaveText('March 2022'); // ensure it still works if presentation is changed more than once await select.selectOption('date-time'); @@ -118,7 +118,7 @@ test.describe('datetime: display', () => { await ionWorkingPartsDidChange.next(); - expect(calendarMonthYear).toHaveText('February 2022'); + await expect(calendarMonthYear).toHaveText('February 2022'); }); }); }); diff --git a/core/src/components/datetime/test/hour-cycle/datetime.e2e.ts b/core/src/components/datetime/test/hour-cycle/datetime.e2e.ts index d4496335b0..fe6d38dacd 100644 --- a/core/src/components/datetime/test/hour-cycle/datetime.e2e.ts +++ b/core/src/components/datetime/test/hour-cycle/datetime.e2e.ts @@ -8,7 +8,7 @@ test.describe('datetime: hour cycle', () => { `); const timeButton = page.locator('ion-datetime .time-body'); - expect(timeButton).toHaveText('16:30'); + await expect(timeButton).toHaveText('16:30'); }); test('should set the h12 hour cycle correctly', async ({ page }) => { await page.setContent(` @@ -16,6 +16,6 @@ test.describe('datetime: hour cycle', () => { `); const timeButton = page.locator('ion-datetime .time-body'); - expect(timeButton).toHaveText('4:30 PM'); + await expect(timeButton).toHaveText('4:30 PM'); }); }); diff --git a/core/src/components/datetime/test/minmax/datetime.e2e.ts b/core/src/components/datetime/test/minmax/datetime.e2e.ts index ad3996f640..aae8b679f4 100644 --- a/core/src/components/datetime/test/minmax/datetime.e2e.ts +++ b/core/src/components/datetime/test/minmax/datetime.e2e.ts @@ -1,4 +1,5 @@ import { expect } from '@playwright/test'; +import type { E2EPage } from '@utils/test/playwright'; import { test } from '@utils/test/playwright'; test.describe('datetime: minmax', () => { @@ -32,8 +33,8 @@ test.describe('datetime: minmax', () => { const prevButton = page.locator('ion-datetime .calendar-next-prev ion-button:nth-child(1)'); const nextButton = page.locator('ion-datetime .calendar-next-prev ion-button:nth-child(2)'); - expect(nextButton).toBeEnabled(); - expect(prevButton).toBeDisabled(); + await expect(nextButton).toBeEnabled(); + await expect(prevButton).toBeDisabled(); await page.evaluate('initDatetimeChangeEvent()'); @@ -44,18 +45,19 @@ test.describe('datetime: minmax', () => { await monthDidChangeSpy.next(); - expect(nextButton).toBeDisabled(); - expect(prevButton).toBeEnabled(); + await expect(nextButton).toBeDisabled(); + await expect(prevButton).toBeEnabled(); }); + test('datetime: minmax months disabled', async ({ page }) => { await page.goto('/src/components/datetime/test/minmax'); const calendarMonths = page.locator('ion-datetime#inside .calendar-month'); await page.waitForSelector('.datetime-ready'); - expect(calendarMonths.nth(0)).not.toHaveClass(/calendar-month-disabled/); - expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/); - expect(calendarMonths.nth(2)).toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(0)).not.toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(2)).toHaveClass(/calendar-month-disabled/); }); test('datetime: minmax navigation disabled', async ({ page }) => { @@ -64,19 +66,21 @@ test.describe('datetime: minmax', () => { const navButtons = page.locator('ion-datetime#outside .calendar-next-prev ion-button'); - expect(navButtons.nth(0)).toHaveAttribute('disabled', ''); - expect(navButtons.nth(1)).toHaveAttribute('disabled', ''); + await expect(navButtons.nth(0)).toHaveAttribute('disabled', ''); + await expect(navButtons.nth(1)).toHaveAttribute('disabled', ''); }); + test('datetime: min including day should not disable month', async ({ page }) => { await page.goto('/src/components/datetime/test/minmax'); await page.waitForSelector('.datetime-ready'); const calendarMonths = page.locator('ion-datetime#min-with-day .calendar-month'); - expect(calendarMonths.nth(0)).toHaveClass(/calendar-month-disabled/); - expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/); - expect(calendarMonths.nth(2)).not.toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(0)).toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/); + await expect(calendarMonths.nth(2)).not.toHaveClass(/calendar-month-disabled/); }); + test.describe('when the datetime does not have a value', () => { test('all time values should be available for selection', async ({ page }) => { /** @@ -105,4 +109,29 @@ test.describe('datetime: minmax', () => { expect(await minutes.count()).toBe(60); }); }); + + test.describe('setting value outside bounds should show in-bounds month', () => { + const testDisplayedMonth = async (page: E2EPage, content: string) => { + await page.setContent(content); + await page.waitForSelector('.datetime-ready'); + + const calendarMonthYear = page.locator('ion-datetime .calendar-month-year'); + await expect(calendarMonthYear).toHaveText('June 2021'); + }; + + test('when min is defined', async ({ page }) => { + await testDisplayedMonth(page, ``); + }); + + test('when max is defined', async ({ page }) => { + await testDisplayedMonth(page, ``); + }); + + test('when both min and max are defined', async ({ page }) => { + await testDisplayedMonth( + page, + `` + ); + }); + }); }); diff --git a/core/src/components/datetime/test/month-year-picker/datetime.e2e.ts b/core/src/components/datetime/test/month-year-picker/datetime.e2e.ts index 4aa7a3d427..78999fac2a 100644 --- a/core/src/components/datetime/test/month-year-picker/datetime.e2e.ts +++ b/core/src/components/datetime/test/month-year-picker/datetime.e2e.ts @@ -9,16 +9,16 @@ test.describe('datetime: month-year picker', () => { test('should hide the footer when picker is open', async ({ page }) => { const datetimeFooter = page.locator('#date-time .datetime-footer'); - expect(datetimeFooter).toBeVisible(); + await expect(datetimeFooter).toBeVisible(); const pickerButton = page.locator('#date-time .calendar-month-year > ion-item'); await pickerButton.click(); await page.waitForChanges(); - expect(datetimeFooter).not.toBeVisible(); + await expect(datetimeFooter).not.toBeVisible(); }); test('should not hide the footer on month-year presentation', async ({ page }) => { const monthyearFooter = page.locator('#month-year .datetime-footer'); - expect(monthyearFooter).toBeVisible(); + await expect(monthyearFooter).toBeVisible(); }); }); diff --git a/core/src/components/datetime/test/set-value/datetime.e2e.ts b/core/src/components/datetime/test/set-value/datetime.e2e.ts index ae83e80e81..3c5fc86f22 100644 --- a/core/src/components/datetime/test/set-value/datetime.e2e.ts +++ b/core/src/components/datetime/test/set-value/datetime.e2e.ts @@ -13,7 +13,7 @@ test.describe('datetime: set-value', () => { await page.waitForChanges(); const activeDate = page.locator('ion-datetime .calendar-day-active'); - expect(activeDate).toHaveText('25'); + await expect(activeDate).toHaveText('25'); }); test('should update the active time', async ({ page }) => { const datetime = page.locator('ion-datetime'); @@ -22,6 +22,6 @@ test.describe('datetime: set-value', () => { await page.waitForChanges(); const activeDate = page.locator('ion-datetime .time-body'); - expect(activeDate).toHaveText('12:40 PM'); + await expect(activeDate).toHaveText('12:40 PM'); }); }); diff --git a/core/src/components/datetime/test/sub-pixel-width/datetime.e2e.ts b/core/src/components/datetime/test/sub-pixel-width/datetime.e2e.ts index fbf4a1b1dd..de79e99ffc 100644 --- a/core/src/components/datetime/test/sub-pixel-width/datetime.e2e.ts +++ b/core/src/components/datetime/test/sub-pixel-width/datetime.e2e.ts @@ -21,7 +21,7 @@ test.describe('datetime: sub-pixel width', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('March 2022'); + await expect(monthYear).toHaveText('March 2022'); }); test('should update the month when prev button is clicked', async ({ page }) => { @@ -40,6 +40,6 @@ test.describe('datetime: sub-pixel width', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('January 2022'); + await expect(monthYear).toHaveText('January 2022'); }); }); diff --git a/core/src/components/datetime/test/time-label/datetime.e2e.ts b/core/src/components/datetime/test/time-label/datetime.e2e.ts index befa762127..79345e3ad3 100644 --- a/core/src/components/datetime/test/time-label/datetime.e2e.ts +++ b/core/src/components/datetime/test/time-label/datetime.e2e.ts @@ -9,7 +9,7 @@ test.describe('datetime: time label', () => { await page.waitForSelector('.datetime-ready'); const timeLabel = page.locator('ion-datetime .time-header'); - expect(timeLabel).toHaveText('Time'); + await expect(timeLabel).toHaveText('Time'); }); test('should not render a custom time label', async ({ page }) => { await page.setContent(` @@ -18,6 +18,6 @@ test.describe('datetime: time label', () => { await page.waitForSelector('.datetime-ready'); const timeLabel = page.locator('ion-datetime .time-header'); - expect(timeLabel).toHaveText(''); + await expect(timeLabel).toHaveText(''); }); }); diff --git a/core/src/components/datetime/test/values/datetime.e2e.ts b/core/src/components/datetime/test/values/datetime.e2e.ts index 4c24edba7a..788e5692f7 100644 --- a/core/src/components/datetime/test/values/datetime.e2e.ts +++ b/core/src/components/datetime/test/values/datetime.e2e.ts @@ -15,7 +15,7 @@ test.describe('datetime: values', () => { * so this ensures that dayValues is applying to all * rendered months, not just the initial month. */ - expect(items).toHaveText(['1', '2', '3', '1', '2', '3', '1', '2', '3']); + await expect(items).toHaveText(['1', '2', '3', '1', '2', '3', '1', '2', '3']); }); test('should render correct months', async ({ page }) => { await page.setContent(` @@ -23,7 +23,7 @@ test.describe('datetime: values', () => { `); const items = page.locator('.month-column .picker-item:not(.picker-item-empty)'); - expect(items).toHaveText(['May', 'June', 'October']); + await expect(items).toHaveText(['May', 'June', 'October']); }); test('should render correct years', async ({ page }) => { await page.setContent(` @@ -31,7 +31,7 @@ test.describe('datetime: values', () => { `); const items = page.locator('.year-column .picker-item:not(.picker-item-empty)'); - expect(items).toHaveText(['2022', '2021', '2020']); + await expect(items).toHaveText(['2022', '2021', '2020']); }); test('should render correct hours', async ({ page }) => { await page.setContent(` @@ -39,7 +39,7 @@ test.describe('datetime: values', () => { `); const items = page.locator('ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)'); - expect(items).toHaveText(['1', '2', '3']); + await expect(items).toHaveText(['1', '2', '3']); }); test('should render correct minutes', async ({ page }) => { await page.setContent(` @@ -47,6 +47,6 @@ test.describe('datetime: values', () => { `); const items = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)'); - expect(items).toHaveText(['01', '02', '03']); + await expect(items).toHaveText(['01', '02', '03']); }); }); diff --git a/core/src/components/datetime/test/zoom/datetime-zoom-in.e2e.ts b/core/src/components/datetime/test/zoom/datetime-zoom-in.e2e.ts index 41c2cdd84d..08cccc1ba3 100644 --- a/core/src/components/datetime/test/zoom/datetime-zoom-in.e2e.ts +++ b/core/src/components/datetime/test/zoom/datetime-zoom-in.e2e.ts @@ -33,7 +33,7 @@ test.describe('datetime: zoom in interactivity', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('March 2022'); + await expect(monthYear).toHaveText('March 2022'); }); test('should update the month when prev button is clicked', async ({ page }) => { @@ -50,6 +50,6 @@ test.describe('datetime: zoom in interactivity', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('January 2022'); + await expect(monthYear).toHaveText('January 2022'); }); }); diff --git a/core/src/components/datetime/test/zoom/datetime-zoom-out.e2e.ts b/core/src/components/datetime/test/zoom/datetime-zoom-out.e2e.ts index 11537e2821..c4e131417b 100644 --- a/core/src/components/datetime/test/zoom/datetime-zoom-out.e2e.ts +++ b/core/src/components/datetime/test/zoom/datetime-zoom-out.e2e.ts @@ -33,7 +33,7 @@ test.describe('datetime: zoom out interactivity', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('March 2022'); + await expect(monthYear).toHaveText('March 2022'); }); test('should update the month when prev button is clicked', async ({ page }) => { @@ -50,6 +50,6 @@ test.describe('datetime: zoom out interactivity', () => { await datetimeMonthDidChange.next(); const monthYear = page.locator('ion-datetime .calendar-month-year'); - expect(monthYear).toHaveText('January 2022'); + await expect(monthYear).toHaveText('January 2022'); }); }); diff --git a/core/src/components/datetime/utils/comparison.ts b/core/src/components/datetime/utils/comparison.ts index 2e64fb5776..a70f254d1e 100644 --- a/core/src/components/datetime/utils/comparison.ts +++ b/core/src/components/datetime/utils/comparison.ts @@ -1,3 +1,5 @@ +import { printIonWarning } from '@utils/logging'; + import type { DatetimeParts } from '../datetime-interface'; /** @@ -36,3 +38,14 @@ export const isAfter = (baseParts: DatetimeParts, compareParts: DatetimeParts) = baseParts.day > compareParts.day!) ); }; + +export const warnIfValueOutOfBounds = (value: DatetimeParts, min: DatetimeParts, max: DatetimeParts) => { + if ((min && isBefore(value, min)) || (max && isAfter(value, max))) { + printIonWarning( + 'The value provided to ion-datetime is out of bounds.\n\n' + + `Min: ${JSON.stringify(min)}\n` + + `Max: ${JSON.stringify(max)}\n` + + `Value: ${JSON.stringify(value)}` + ); + } +}; diff --git a/core/src/components/img/test/draggable/img.e2e.ts b/core/src/components/img/test/draggable/img.e2e.ts index 945c1761eb..e98548114c 100644 --- a/core/src/components/img/test/draggable/img.e2e.ts +++ b/core/src/components/img/test/draggable/img.e2e.ts @@ -6,12 +6,12 @@ test.describe('img: draggable', () => { await page.goto('/src/components/img/test/draggable'); const imgDraggableTrue = page.locator('#img-draggable-true img'); - expect(imgDraggableTrue).toHaveAttribute('draggable', 'true'); + await expect(imgDraggableTrue).toHaveAttribute('draggable', 'true'); const imgDraggableFalse = page.locator('#img-draggable-false img'); - expect(imgDraggableFalse).toHaveAttribute('draggable', 'false'); + await expect(imgDraggableFalse).toHaveAttribute('draggable', 'false'); const imgDraggableUnset = page.locator('#img-draggable-unset img'); - expect(imgDraggableUnset).toHaveAttribute('draggable', ''); + await expect(imgDraggableUnset).toHaveAttribute('draggable', ''); }); }); diff --git a/core/src/components/loading/test/basic/loading.e2e.ts b/core/src/components/loading/test/basic/loading.e2e.ts index 08af2d8f57..e386ed6223 100644 --- a/core/src/components/loading/test/basic/loading.e2e.ts +++ b/core/src/components/loading/test/basic/loading.e2e.ts @@ -24,7 +24,7 @@ test.describe('loading: basic', () => { await ionLoadingDidDismiss.next(); - expect(loading).toBeHidden(); + await expect(loading).toBeHidden(); }; test('should open a basic loader', async ({ page }) => { await runVisualTest(page, '#basic-loading', 'basic'); @@ -54,7 +54,7 @@ test.describe('loading: basic', () => { await ionLoadingDidPresent.next(); const loading = await page.locator('ion-loading'); - expect(loading).toHaveAttribute('data-testid', 'basic-loading'); + await expect(loading).toHaveAttribute('data-testid', 'basic-loading'); }); }); test.describe('loading: focus trapping', () => { @@ -73,13 +73,13 @@ test.describe('loading: basic', () => { await page.keyboard.press('Tab'); - expect(button).toBeFocused(); + await expect(button).toBeFocused(); await page.keyboard.down('Shift'); await page.keyboard.press('Tab'); await page.keyboard.up('Shift'); - expect(button).toBeFocused(); + await expect(button).toBeFocused(); await page.keyboard.press('Tab'); @@ -87,7 +87,7 @@ test.describe('loading: basic', () => { await page.keyboard.up('Alt'); } - expect(button).toBeFocused(); + await expect(button).toBeFocused(); }); }); }); diff --git a/core/src/components/loading/test/standalone/loading.e2e.ts b/core/src/components/loading/test/standalone/loading.e2e.ts index 260a9362ea..fb3fa63cd3 100644 --- a/core/src/components/loading/test/standalone/loading.e2e.ts +++ b/core/src/components/loading/test/standalone/loading.e2e.ts @@ -20,6 +20,6 @@ test.describe('loading: standalone', () => { await ionLoadingDidDismiss.next(); - expect(loading).toBeHidden(); + await expect(loading).toBeHidden(); }); }); diff --git a/core/src/components/modal/test/basic/modal.e2e.ts b/core/src/components/modal/test/basic/modal.e2e.ts index 0d1114ab84..29e6727093 100644 --- a/core/src/components/modal/test/basic/modal.e2e.ts +++ b/core/src/components/modal/test/basic/modal.e2e.ts @@ -3,7 +3,18 @@ import { test, Viewports } from '@utils/test/playwright'; import type { E2EPage } from '@utils/test/playwright'; test.describe('modal: focus trapping', () => { + test.beforeEach(async ({ browserName }, testInfo) => { + test.skip(testInfo.project.metadata.rtl === true, 'This does not test LTR vs. RTL layout.'); + test.skip(browserName === 'firefox', 'Firefox incorrectly allows keyboard focus to move to ion-content'); + }); test('focus should be trapped inside of modal', async ({ page, browserName }) => { + /** + * The default WebKit behavior is to + * highlight items on webpages with Option-Tab. + * See "Press Tab to highlight each item on a webpage" + * in Safari Preferences > Advanced. + */ + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; await page.goto('/src/components/modal/test/basic'); const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); @@ -11,32 +22,17 @@ test.describe('modal: focus trapping', () => { await ionModalDidPresent.next(); - /** - * The default WebKit behavior is to - * highlight items on webpages with Option-Tab. - * See "Press Tab to highlight each item on a webpage" - * in Safari Preferences > Advanced. - */ - if (browserName === 'webkit') { - await page.keyboard.down('Alt'); - } - await page.keyboard.press('Tab'); + const dismissButton = page.locator('ion-button.dismiss'); - const dismissButton = await page.locator('ion-button.dismiss'); - expect(dismissButton).toBeFocused(); + await page.keyboard.press(tabKey); + await expect(dismissButton).toBeFocused(); - await page.keyboard.down('Shift'); - await page.keyboard.press('Tab'); - await page.keyboard.up('Shift'); + await page.keyboard.press(`Shift+${tabKey}`); - expect(dismissButton).toBeFocused(); - await page.keyboard.press('Tab'); + await expect(dismissButton).toBeFocused(); - if (browserName === 'webkit') { - await page.keyboard.up('Alt'); - } - - expect(dismissButton).toBeFocused(); + await page.keyboard.press(tabKey); + await expect(dismissButton).toBeFocused(); }); test('focus should be returned to previously focused element when dismissing modal', async ({ @@ -47,18 +43,11 @@ test.describe('modal: focus trapping', () => { const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); const modalButton = await page.locator('#basic-modal'); - - if (browserName === 'webkit') { - await page.keyboard.down('Alt'); - } + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; // Focus #basic-modal button - await page.keyboard.press('Tab'); - expect(modalButton).toBeFocused(); - - if (browserName === 'webkit') { - await page.keyboard.up('Alt'); - } + await page.keyboard.press(tabKey); + await expect(modalButton).toBeFocused(); await page.keyboard.press('Space'); await ionModalDidPresent.next(); @@ -66,7 +55,7 @@ test.describe('modal: focus trapping', () => { await page.keyboard.press('Escape'); await ionModalDidDismiss.next(); - expect(modalButton).toBeFocused(); + await expect(modalButton).toBeFocused(); }); }); diff --git a/core/src/components/modal/test/card-nav/modal.e2e.ts b/core/src/components/modal/test/card-nav/modal.e2e.ts index 8918d34664..2c3466d329 100644 --- a/core/src/components/modal/test/card-nav/modal.e2e.ts +++ b/core/src/components/modal/test/card-nav/modal.e2e.ts @@ -27,7 +27,7 @@ test.describe('card modal - nav', () => { await ionNavDidChange.next(); const pageOne = page.locator('page-one'); - expect(pageOne).toHaveClass(/ion-page-hidden/); + await expect(pageOne).toHaveClass(/ion-page-hidden/); const content = page.locator('.page-two-content'); diff --git a/core/src/components/modal/test/card-refresher/modal.e2e.ts b/core/src/components/modal/test/card-refresher/modal.e2e.ts index 2c6f8521fb..9567d15889 100644 --- a/core/src/components/modal/test/card-refresher/modal.e2e.ts +++ b/core/src/components/modal/test/card-refresher/modal.e2e.ts @@ -20,6 +20,6 @@ test.describe('card modal - with refresher', () => { await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); }); diff --git a/core/src/components/modal/test/card-scroll-target/modal.e2e.ts b/core/src/components/modal/test/card-scroll-target/modal.e2e.ts index 1a04472cbd..2d3eb50097 100644 --- a/core/src/components/modal/test/card-scroll-target/modal.e2e.ts +++ b/core/src/components/modal/test/card-scroll-target/modal.e2e.ts @@ -35,7 +35,7 @@ test.describe('card modal - scroll target', () => { await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); test('content should be scrollable after gesture ends', async ({ page }) => { const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); @@ -46,7 +46,7 @@ test.describe('card modal - scroll target', () => { const content = await page.locator('ion-modal .ion-content-scroll-host'); await dragElementBy(content, page, 0, 20); - expect(content).not.toHaveCSS('overflow', 'hidden'); + await expect(content).not.toHaveCSS('overflow', 'hidden'); }); }); }); diff --git a/core/src/components/modal/test/card/modal.e2e.ts b/core/src/components/modal/test/card/modal.e2e.ts index 1a888e5281..048211f748 100644 --- a/core/src/components/modal/test/card/modal.e2e.ts +++ b/core/src/components/modal/test/card/modal.e2e.ts @@ -55,7 +55,7 @@ test.describe('card modal', () => { await cardModalPage.swipeToCloseModal('ion-modal ion-content', false); await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); test('it should not swipe to close when swiped on the content but the content is scrolled even when content is replaced', async ({ page, @@ -70,14 +70,14 @@ test.describe('card modal', () => { await cardModalPage.swipeToCloseModal('ion-modal ion-content', false); await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); test('content should be scrollable after gesture ends', async ({ page }) => { await cardModalPage.openModalByTrigger('#card'); await cardModalPage.swipeToCloseModal('ion-modal ion-content', false, 20); const content = await page.locator('ion-modal ion-content'); - expect(content).toHaveJSProperty('scrollY', true); + await expect(content).toHaveJSProperty('scrollY', true); }); }); test.describe('card modal: rendering - tablet', () => { @@ -134,7 +134,7 @@ test.describe('card modal', () => { await cardModalPage.swipeToCloseModal('ion-modal ion-content', false); await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); test('it should not swipe to close when swiped on the content but the content is scrolled even when content is replaced', async ({ page, @@ -149,14 +149,14 @@ test.describe('card modal', () => { await cardModalPage.swipeToCloseModal('ion-modal ion-content', false); await content.waitForElementState('stable'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); test('content should be scrollable after gesture ends', async ({ page }) => { await cardModalPage.openModalByTrigger('#card'); await cardModalPage.swipeToCloseModal('ion-modal ion-content', false, 20); const content = await page.locator('ion-modal ion-content'); - expect(content).toHaveJSProperty('scrollY', true); + await expect(content).toHaveJSProperty('scrollY', true); }); }); }); diff --git a/core/src/components/modal/test/sheet/modal.e2e.ts b/core/src/components/modal/test/sheet/modal.e2e.ts index b1bbb24a66..e65a2268dc 100644 --- a/core/src/components/modal/test/sheet/modal.e2e.ts +++ b/core/src/components/modal/test/sheet/modal.e2e.ts @@ -50,7 +50,7 @@ test.describe('sheet modal: backdrop', () => { const input = await page.locator('#root-input input'); await input.click(); - expect(input).toBeFocused(); + await expect(input).toBeFocused(); }); }); diff --git a/core/src/components/modal/test/trigger/modal.e2e.ts b/core/src/components/modal/test/trigger/modal.e2e.ts index e42f43688c..492d85098d 100644 --- a/core/src/components/modal/test/trigger/modal.e2e.ts +++ b/core/src/components/modal/test/trigger/modal.e2e.ts @@ -11,6 +11,6 @@ test.describe('modal: trigger', () => { await ionModalDidPresent.next(); const modal = await page.locator('.left-click-modal'); - expect(modal).toBeVisible(); + await expect(modal).toBeVisible(); }); }); diff --git a/core/src/components/picker-column-internal/test/basic/picker-column-internal.e2e.ts b/core/src/components/picker-column-internal/test/basic/picker-column-internal.e2e.ts index 10d9296375..c0d188d540 100644 --- a/core/src/components/picker-column-internal/test/basic/picker-column-internal.e2e.ts +++ b/core/src/components/picker-column-internal/test/basic/picker-column-internal.e2e.ts @@ -8,17 +8,17 @@ test.describe('picker-column-internal', () => { test('should render a picker item for each item', async ({ page }) => { const columns = page.locator('ion-picker-column-internal .picker-item:not(.picker-item-empty)'); - expect(columns).toHaveCount(24); + await expect(columns).toHaveCount(24); }); test('should render 6 empty picker items', async ({ page }) => { const columns = page.locator('ion-picker-column-internal .picker-item-empty'); - expect(columns).toHaveCount(6); + await expect(columns).toHaveCount(6); }); test('should not have an active item when value is not set', async ({ page }) => { const activeColumn = page.locator('ion-picker-column-internal .picker-item-active'); - expect(activeColumn).toHaveCount(0); + await expect(activeColumn).toHaveCount(0); }); test('should have an active item when value is set', async ({ page }) => { diff --git a/core/src/components/popover/test/basic/popover.e2e.ts b/core/src/components/popover/test/basic/popover.e2e.ts index de87579f2e..5e905e16d8 100644 --- a/core/src/components/popover/test/basic/popover.e2e.ts +++ b/core/src/components/popover/test/basic/popover.e2e.ts @@ -28,7 +28,7 @@ test.describe('popover: htmlAttributes', async () => { await openPopover(page, 'basic-popover'); const alert = page.locator('ion-popover'); - expect(alert).toHaveAttribute('data-testid', 'basic-popover'); + await expect(alert).toHaveAttribute('data-testid', 'basic-popover'); }); }); diff --git a/core/src/components/popover/test/dismissOnSelect/popover.e2e.ts b/core/src/components/popover/test/dismissOnSelect/popover.e2e.ts index b6e3cf83c5..e3b814cfd5 100644 --- a/core/src/components/popover/test/dismissOnSelect/popover.e2e.ts +++ b/core/src/components/popover/test/dismissOnSelect/popover.e2e.ts @@ -20,7 +20,7 @@ test.describe('popover: dismissOnSelect', async () => { await hoverTrigger.click(); // ensure parent popover is still open - expect(popover).toBeVisible(); + await expect(popover).toBeVisible(); }); test('should not dismiss a popover when clicking a click trigger', async ({ page, browserName }) => { @@ -41,6 +41,6 @@ test.describe('popover: dismissOnSelect', async () => { await ionPopoverDidPresent.next(); // wait for click popover to open // ensure parent popover is still open - expect(popover).toBeVisible(); + await expect(popover).toBeVisible(); }); }); diff --git a/core/src/components/popover/test/inline/popover.e2e.ts b/core/src/components/popover/test/inline/popover.e2e.ts index ae04ce7b5a..10c682f2ec 100644 --- a/core/src/components/popover/test/inline/popover.e2e.ts +++ b/core/src/components/popover/test/inline/popover.e2e.ts @@ -19,12 +19,12 @@ const testPopover = async (page: E2EPage, buttonID: string) => { const popover = page.locator('ion-popover'); await openPopover(page, buttonID); - expect(popover).toBeVisible(); + await expect(popover).toBeVisible(); await closePopover(page); - expect(popover).not.toBeVisible(); + await expect(popover).not.toBeVisible(); // ensure popover can be opened multiple times await openPopover(page, buttonID); - expect(popover).toBeVisible(); + await expect(popover).toBeVisible(); }; diff --git a/core/src/components/popover/test/nested/popover.e2e.ts b/core/src/components/popover/test/nested/popover.e2e.ts index ca14fca12b..b4ca032496 100644 --- a/core/src/components/popover/test/nested/popover.e2e.ts +++ b/core/src/components/popover/test/nested/popover.e2e.ts @@ -13,7 +13,7 @@ test.describe('popover: nested', async () => { await ionPopoverDidPresent.next(); const parentPopover = page.locator('.parent-popover'); - expect(parentPopover).not.toHaveClass(/overlay-hidden/); + await expect(parentPopover).not.toHaveClass(/overlay-hidden/); // note: alignment="start" is needed on popovers so all buttons are on-screen in iOS mode // otherwise this one goes off the top of the screen and tests hang/fail @@ -21,7 +21,7 @@ test.describe('popover: nested', async () => { await ionPopoverDidPresent.next(); const nestedPopover = page.locator('.child-popover-one'); - expect(nestedPopover).not.toHaveClass(/overlay-hidden/); + await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); await page.setIonViewport(); expect(await page.screenshot()).toMatchSnapshot(`popover-nested-${page.getSnapshotSettings()}.png`); @@ -41,7 +41,7 @@ test.describe('popover: nested', async () => { await ionPopoverDidDismiss.next(); const nestedPopover = await page.locator('.child-popover-one'); - expect(nestedPopover).toHaveClass(/overlay-hidden/); + await expect(nestedPopover).toHaveClass(/overlay-hidden/); }); test('should render multiple levels of nesting correctly', async ({ page }) => { @@ -57,7 +57,7 @@ test.describe('popover: nested', async () => { await ionPopoverDidPresent.next(); const nestedPopover = page.locator('.child-popover-three'); - expect(nestedPopover).not.toHaveClass(/overlay-hidden/); + await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); await page.setIonViewport(); expect(await page.screenshot()).toMatchSnapshot(`popover-nested-multiple-${page.getSnapshotSettings()}.png`); @@ -81,10 +81,10 @@ test.describe('popover: nested', async () => { await ionPopoverDidDismiss.next(); const nestedPopoverOne = page.locator('.child-popover-one'); - expect(nestedPopoverOne).toHaveClass(/overlay-hidden/); + await expect(nestedPopoverOne).toHaveClass(/overlay-hidden/); const nestedPopoverTwo = page.locator('.child-popover-three'); - expect(nestedPopoverTwo).toHaveClass(/overlay-hidden/); + await expect(nestedPopoverTwo).toHaveClass(/overlay-hidden/); }); test('should dismiss sibling nested popover when another sibling popover is opened', async ({ page }) => { @@ -103,7 +103,7 @@ test.describe('popover: nested', async () => { const openWithPopover = page.locator('.child-popover-one'); const sharePopover = page.locator('.child-popover-two'); - expect(openWithPopover).toHaveClass(/overlay-hidden/); - expect(sharePopover).not.toHaveClass(/overlay-hidden/); + await expect(openWithPopover).toHaveClass(/overlay-hidden/); + await expect(sharePopover).not.toHaveClass(/overlay-hidden/); }); }); diff --git a/core/src/components/popover/test/trigger/popover.e2e.ts b/core/src/components/popover/test/trigger/popover.e2e.ts index 836498acb7..2f691f1841 100644 --- a/core/src/components/popover/test/trigger/popover.e2e.ts +++ b/core/src/components/popover/test/trigger/popover.e2e.ts @@ -36,5 +36,5 @@ test.describe('popover: trigger', async () => { const checkPopover = async (page: E2EPage, popoverSelector: string) => { const popover = page.locator(popoverSelector); - expect(popover).toBeVisible(); + await expect(popover).toBeVisible(); }; diff --git a/core/src/components/select/select.tsx b/core/src/components/select/select.tsx index bf8b148e87..5490673909 100644 --- a/core/src/components/select/select.tsx +++ b/core/src/components/select/select.tsx @@ -150,6 +150,7 @@ export class Select implements ComponentInterface { @Watch('value') valueChanged() { this.emitStyle(); + // TODO: FW-1160 - Remove the `didInit` property when ionChange behavior is changed in v7. if (this.didInit) { this.ionChange.emit({ value: this.value, diff --git a/core/src/components/select/test/async/select.e2e.ts b/core/src/components/select/test/async/select.e2e.ts index fe72d9dcb8..783c857300 100644 --- a/core/src/components/select/test/async/select.e2e.ts +++ b/core/src/components/select/test/async/select.e2e.ts @@ -12,6 +12,6 @@ test.describe('select: async', () => { await selectValueSet.next(); - expect(select).toHaveJSProperty('value', 'bird'); + await expect(select).toHaveJSProperty('value', 'bird'); }); }); diff --git a/core/src/components/select/test/basic/select.e2e.ts b/core/src/components/select/test/basic/select.e2e.ts index 7a4b863bf8..e2cba013a7 100644 --- a/core/src/components/select/test/basic/select.e2e.ts +++ b/core/src/components/select/test/basic/select.e2e.ts @@ -82,7 +82,7 @@ test.describe('select: basic', () => { if (browserName !== 'firefox') { // select has no value, so first option should be focused by default const popoverOption1 = await popover.locator('.select-interface-option:first-of-type ion-radio'); - expect(popoverOption1).toBeFocused(); + await expect(popoverOption1).toBeFocused(); } expect(await page.screenshot({ animations: 'disabled' })).toMatchSnapshot( diff --git a/core/src/components/select/test/compare-with/select.e2e.ts b/core/src/components/select/test/compare-with/select.e2e.ts index 82c03ff79c..09534ca8d1 100644 --- a/core/src/components/select/test/compare-with/select.e2e.ts +++ b/core/src/components/select/test/compare-with/select.e2e.ts @@ -10,13 +10,13 @@ test.describe('select: compare-with', () => { const multipleSelect = await page.locator('#multiple'); const singleSelect = await page.locator('#single'); - expect(multipleSelect).toHaveJSProperty('value', [ + await expect(multipleSelect).toHaveJSProperty('value', [ { label: 'selected by default', value: '1', }, ]); - expect(singleSelect).toHaveJSProperty('value', { + await expect(singleSelect).toHaveJSProperty('value', { label: 'selected by default', value: '1', }); diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts b/core/src/components/toggle/test/basic/toggle.e2e.ts index 6900e39e76..26fed21775 100644 --- a/core/src/components/toggle/test/basic/toggle.e2e.ts +++ b/core/src/components/toggle/test/basic/toggle.e2e.ts @@ -15,20 +15,20 @@ test.describe('toggle: basic', () => { test('should have proper class and aria role when checked', async ({ page }) => { const toggle = page.locator('#orange'); - expect(toggle).not.toHaveClass(/toggle-checked/); - expect(toggle).toHaveAttribute('aria-checked', 'false'); + await expect(toggle).not.toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'false'); await toggle.click(); await page.waitForChanges(); - expect(toggle).toHaveClass(/toggle-checked/); - expect(toggle).toHaveAttribute('aria-checked', 'true'); + await expect(toggle).toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'true'); await toggle.click(); await page.waitForChanges(); - expect(toggle).not.toHaveClass(/toggle-checked/); - expect(toggle).toHaveAttribute('aria-checked', 'false'); + await expect(toggle).not.toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'false'); }); test('should fire change event with detail', async ({ page }) => { @@ -65,15 +65,15 @@ test.describe('toggle: basic', () => { test('should pass properties down to hidden input', async ({ page }) => { const toggle = page.locator('#grapeChecked'); - expect(toggle).toBeDisabled(); - expect(toggle).toHaveJSProperty('value', 'grape'); - expect(toggle).toHaveJSProperty('name', 'grape'); + await expect(toggle).toBeDisabled(); + await expect(toggle).toHaveJSProperty('value', 'grape'); + await expect(toggle).toHaveJSProperty('name', 'grape'); const hiddenInput = page.locator('#grapeChecked input[type=hidden]'); - expect(hiddenInput).toBeDisabled(); - expect(hiddenInput).toHaveJSProperty('value', 'grape'); - expect(hiddenInput).toHaveJSProperty('name', 'grape'); + await expect(hiddenInput).toBeDisabled(); + await expect(hiddenInput).toHaveJSProperty('value', 'grape'); + await expect(hiddenInput).toHaveJSProperty('name', 'grape'); await toggle.evaluate((el: HTMLIonToggleElement) => { el.disabled = false; @@ -84,8 +84,8 @@ test.describe('toggle: basic', () => { await page.waitForChanges(); - expect(hiddenInput).not.toBeDisabled(); - expect(hiddenInput).toHaveJSProperty('name', 'new-name'); + await expect(hiddenInput).not.toBeDisabled(); + await expect(hiddenInput).toHaveJSProperty('name', 'new-name'); // shouldn't have a value because it's unchecked // note: using toHaveJSProperty to check empty string triggers error for some reason diff --git a/core/src/utils/test/overlays/overlays.e2e.ts b/core/src/utils/test/overlays/overlays.e2e.ts index a6eefce4c2..5c125f324c 100644 --- a/core/src/utils/test/overlays/overlays.e2e.ts +++ b/core/src/utils/test/overlays/overlays.e2e.ts @@ -24,6 +24,6 @@ test.describe('overlays: focus', () => { await ionModalDidPresent.next(); await page.waitForChanges(); - expect(page.locator('ion-input input')).toBeFocused(); + await expect(page.locator('ion-input input')).toBeFocused(); }); }); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0cfe0acfb7..a8d127a918 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic-docs/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [6.1.11](https://github.com/ionic-team/ionic-docs/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/docs diff --git a/docs/package-lock.json b/docs/package-lock.json index 88cb082669..7e764665b9 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT" } } diff --git a/docs/package.json b/docs/package.json index 71ddc4f19c..44a6ff31e1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "6.1.11", + "version": "6.1.12", "description": "Pre-packaged API documentation for the Ionic docs.", "main": "core.json", "types": "core.d.ts", diff --git a/lerna.json b/lerna.json index 6f585258a9..fd9a5692de 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ "angular", "packages/*" ], - "version": "6.1.11" + "version": "6.1.12" } diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 12eed43775..bfcc3464e6 100644 --- a/packages/angular-server/CHANGELOG.md +++ b/packages/angular-server/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/angular-server diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index e43a02bccd..fd5d3ce8b4 100644 --- a/packages/angular-server/package-lock.json +++ b/packages/angular-server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/angular-server", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "devDependencies": { "@angular-eslint/eslint-plugin": "^12.6.1", @@ -18,7 +18,7 @@ "@angular/platform-browser": "^12.0.0", "@angular/platform-browser-dynamic": "^12.2.10", "@angular/platform-server": "^12.0.0", - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@typescript-eslint/eslint-plugin": "^5.2.0", @@ -786,9 +786,9 @@ "license": "BSD-3-Clause" }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dev": true, "dependencies": { "@stencil/core": "^2.16.0", @@ -7103,9 +7103,9 @@ "dev": true }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dev": true, "requires": { "@stencil/core": "^2.16.0", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index 290a109161..b96c1bd3f4 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "6.1.11", + "version": "6.1.12", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -56,7 +56,7 @@ "@angular/platform-browser": "^12.0.0", "@angular/platform-browser-dynamic": "^12.2.10", "@angular/platform-server": "^12.0.0", - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "@ionic/eslint-config": "^0.3.0", "@ionic/prettier-config": "^2.0.0", "@typescript-eslint/eslint-plugin": "^5.2.0", diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md index 61044caab4..601b37030e 100644 --- a/packages/react-router/CHANGELOG.md +++ b/packages/react-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/react-router diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json index 7421acd575..084c6fcc75 100644 --- a/packages/react-router/package-lock.json +++ b/packages/react-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react-router", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { - "@ionic/react": "^6.1.11", + "@ionic/react": "^6.1.12", "tslib": "*" }, "devDependencies": { @@ -147,9 +147,9 @@ } }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dependencies": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -157,11 +157,11 @@ } }, "node_modules/@ionic/react": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.11.tgz", - "integrity": "sha512-mJXw5WdbWX56uSdo11EI7ePUe5hiQi4HQX0X0zkYaKijQQ0Tc1vDNoKcEkpP/QmRUQRXUUa5wu3rWtI0mRPu/w==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.12.tgz", + "integrity": "sha512-k5Nv63fRCcEXOXl+LBeoO8HoqLHJFRoLj+vRBdlaQm660WYd5wu5MGfrzJq+d/1bd7ZzRJaQxz/jNwYOFThqMw==", "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2", "tslib": "*" }, @@ -1157,9 +1157,9 @@ } }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "requires": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -1167,11 +1167,11 @@ } }, "@ionic/react": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.11.tgz", - "integrity": "sha512-mJXw5WdbWX56uSdo11EI7ePUe5hiQi4HQX0X0zkYaKijQQ0Tc1vDNoKcEkpP/QmRUQRXUUa5wu3rWtI0mRPu/w==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.1.12.tgz", + "integrity": "sha512-k5Nv63fRCcEXOXl+LBeoO8HoqLHJFRoLj+vRBdlaQm660WYd5wu5MGfrzJq+d/1bd7ZzRJaQxz/jNwYOFThqMw==", "requires": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index a42a5911eb..710ff8ab61 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "6.1.11", + "version": "6.1.12", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -37,7 +37,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^6.1.11", + "@ionic/react": "^6.1.12", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 6eaba9873f..7be4eea58f 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/react + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index b583bcd6ec..8fe7f737e1 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2", "tslib": "*" }, @@ -607,9 +607,9 @@ } }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dependencies": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -9522,9 +9522,9 @@ } }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "requires": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", diff --git a/packages/react/package.json b/packages/react/package.json index 5c8608d38e..5f1c09d055 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "6.1.11", + "version": "6.1.12", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -41,7 +41,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 0eda176e91..5b05a94e49 100644 --- a/packages/vue-router/CHANGELOG.md +++ b/packages/vue-router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) **Note:** Version bump only for package @ionic/vue-router diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json index 7d77ba02da..6c8e03d863 100644 --- a/packages/vue-router/package-lock.json +++ b/packages/vue-router/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue-router", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { - "@ionic/vue": "^6.1.11" + "@ionic/vue": "^6.1.12" }, "devDependencies": { "@types/jest": "^28.1.1", @@ -578,9 +578,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dependencies": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -588,11 +588,11 @@ } }, "node_modules/@ionic/vue": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.1.11.tgz", - "integrity": "sha512-TOCcXzK9X5EwfT/KyfVgeXJtFM7hZGvSOX+b1OoiHXIDpYk6wYAr6ujW2LUgt1iIv5Q2QMh3+wZJ/VAnCZT6tQ==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.1.12.tgz", + "integrity": "sha512-E6tW5GYml67X5YrMhNQb4EF50tE/oaKgQLFBTnp6VxAKTaCDrTQI+N9Ui4juKQ9amSZjVCaOFD/5nsmV/21eWg==", "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2" } }, @@ -5233,9 +5233,9 @@ "dev": true }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "requires": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -5243,11 +5243,11 @@ } }, "@ionic/vue": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.1.11.tgz", - "integrity": "sha512-TOCcXzK9X5EwfT/KyfVgeXJtFM7hZGvSOX+b1OoiHXIDpYk6wYAr6ujW2LUgt1iIv5Q2QMh3+wZJ/VAnCZT6tQ==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.1.12.tgz", + "integrity": "sha512-E6tW5GYml67X5YrMhNQb4EF50tE/oaKgQLFBTnp6VxAKTaCDrTQI+N9Ui4juKQ9amSZjVCaOFD/5nsmV/21eWg==", "requires": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2" } }, diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index 9a0449b1df..c043d08e5d 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "6.1.11", + "version": "6.1.12", "description": "Vue Router integration for @ionic/vue", "scripts": { "prepublishOnly": "npm run build", @@ -44,7 +44,7 @@ }, "homepage": "https://github.com/ionic-team/ionic#readme", "dependencies": { - "@ionic/vue": "^6.1.11" + "@ionic/vue": "^6.1.12" }, "devDependencies": { "@types/jest": "^28.1.1", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index b766b82487..64977d66a2 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.1.12](https://github.com/ionic-team/ionic/compare/v6.1.11...v6.1.12) (2022-06-29) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [6.1.11](https://github.com/ionic-team/ionic/compare/v6.1.10...v6.1.11) (2022-06-22) diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 1d1aaa6e8d..7b83a04053 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "6.1.11", + "version": "6.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "6.1.11", + "version": "6.1.12", "license": "MIT", "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2" }, "devDependencies": { @@ -59,9 +59,9 @@ } }, "node_modules/@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "dependencies": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", @@ -768,9 +768,9 @@ } }, "@ionic/core": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.11.tgz", - "integrity": "sha512-hMYZ+Iqvv2a8Qj3HCbtnI4DDIplMvr7x1Jk3aljNsvYQeyVLXxXvyNfpBzVuJxF7lJeGMlq9cY5XWUXh2gQnIA==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.12.tgz", + "integrity": "sha512-CISprIpbGJHMjxsx0OAQ6grnsbBuhcImaiL5rRBI7MtncIW56nge4IO064n86bwhxRqvoXCA6EGq9D1S5Cn45g==", "requires": { "@stencil/core": "^2.16.0", "ionicons": "^6.0.2", diff --git a/packages/vue/package.json b/packages/vue/package.json index 286d9cba3c..71e3f4fbae 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "6.1.11", + "version": "6.1.12", "description": "Vue specific wrapper for @ionic/core", "scripts": { "prepublishOnly": "npm run build", @@ -61,7 +61,7 @@ "vue-router": "^4.0.16" }, "dependencies": { - "@ionic/core": "^6.1.11", + "@ionic/core": "^6.1.12", "ionicons": "^6.0.2" }, "vetur": {