diff --git a/.github/workflows/actions/test-angular-e2e/action.yml b/.github/workflows/actions/test-angular-e2e/action.yml index 4339144a01..6e734a9765 100644 --- a/.github/workflows/actions/test-angular-e2e/action.yml +++ b/.github/workflows/actions/test-angular-e2e/action.yml @@ -29,7 +29,7 @@ runs: shell: bash working-directory: ./angular/test - name: Install Dependencies - run: npm install --legacy-peer-deps + run: npm install shell: bash working-directory: ./angular/test/build/${{ inputs.app }} - name: Sync Built Changes diff --git a/angular/test/apps/ng16/package-lock.json b/angular/test/apps/ng16/package-lock.json index be5fd2b991..762baf3cd9 100644 --- a/angular/test/apps/ng16/package-lock.json +++ b/angular/test/apps/ng16/package-lock.json @@ -7,39 +7,38 @@ "": { "name": "ionic-angular-test-app", "version": "0.0.0", - "hasInstallScript": true, "dependencies": { - "@angular/animations": "^16.0.0-rc.0", - "@angular/common": "^16.0.0-rc.0", - "@angular/compiler": "^16.0.0-rc.0", - "@angular/core": "^16.0.0-rc.0", - "@angular/forms": "^16.0.0-rc.0", - "@angular/platform-browser": "^16.0.0-rc.0", - "@angular/platform-browser-dynamic": "^16.0.0-rc.0", - "@angular/platform-server": "^16.0.0-rc.0", - "@angular/router": "^16.0.0-rc.0", + "@angular/animations": "^16.0.0", + "@angular/common": "^16.0.0", + "@angular/compiler": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "@angular/platform-browser": "^16.0.0", + "@angular/platform-browser-dynamic": "^16.0.0", + "@angular/platform-server": "^16.0.0", + "@angular/router": "^16.0.0", "@ionic/angular": "^7.0.0", "@ionic/angular-server": "^7.0.0", - "@nguniversal/express-engine": "^15.0.0", + "@nguniversal/express-engine": "^16.0.0", "core-js": "^2.6.11", "express": "^4.15.2", - "ionicons": "^6.0.4", + "ionicons": "^7.0.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", "typescript-eslint-language-service": "^4.1.5", "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.0.0-rc.0", - "@angular-eslint/builder": "^15.0.0", - "@angular-eslint/eslint-plugin": "^15.0.0", - "@angular-eslint/eslint-plugin-template": "^15.0.0", - "@angular-eslint/schematics": "^15.0.0", - "@angular-eslint/template-parser": "^15.0.0", - "@angular/cli": "^16.0.0-rc.0", - "@angular/compiler-cli": "^16.0.0-rc.0", - "@angular/language-service": "^16.0.0-rc.0", - "@nguniversal/builders": "^15.0.0", + "@angular-devkit/build-angular": "^16.0.0", + "@angular-eslint/builder": "^16.0.0", + "@angular-eslint/eslint-plugin": "^16.0.0", + "@angular-eslint/eslint-plugin-template": "^16.0.0", + "@angular-eslint/schematics": "^16.0.0", + "@angular-eslint/template-parser": "^16.0.0", + "@angular/cli": "^16.0.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/language-service": "^16.0.0", + "@nguniversal/builders": "^16.0.0", "@types/express": "^4.17.7", "@types/node": "^12.12.54", "@typescript-eslint/eslint-plugin": "4.28.2", @@ -72,13 +71,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1600.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0-rc.0.tgz", - "integrity": "sha512-5ZTC+I0t1E1MreDXaTdrEKoRbKD6dAx7946CGYp2++2TyI3hNaBP5Mv0/AckQ0RUfiebX72OSrcboHyzoMniVw==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0.tgz", + "integrity": "sha512-nYRcqAxZnndhAEpSpJ1U2TScs2huu674OKrsEyJTqLEANEyCPBnusAmS9HcGzMBgePAwNElqOKrr5/f1DbYq1A==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.0-rc.0", - "rxjs": "7.8.0" + "@angular-devkit/core": "16.0.0", + "rxjs": "7.8.1" }, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -87,15 +86,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0-rc.0.tgz", - "integrity": "sha512-FpgFgvxCA4KESu3PDkvXjdYQpkpxLReEJbjMsXtQvhWS5l5ti3zMbST6rRnsEkL8krIAhAixyqUWncp6d3sGEA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0.tgz", + "integrity": "sha512-OvDQAbrV3cUMfHws30MnDURsXselZ0GWhSxZjOdcD3cF64Nsq5ywftHOT+QC3YdDghwI8gMADN9et+aVDscBzQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.0-rc.0", - "@angular-devkit/build-webpack": "0.1600.0-rc.0", - "@angular-devkit/core": "16.0.0-rc.0", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/build-webpack": "0.1600.0", + "@angular-devkit/core": "16.0.0", "@babel/core": "7.21.4", "@babel/generator": "7.21.4", "@babel/helper-annotate-as-pure": "7.18.6", @@ -107,19 +106,19 @@ "@babel/runtime": "7.21.0", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.0-rc.0", + "@ngtools/webpack": "16.0.0", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.5", - "cacache": "17.0.5", + "cacache": "17.0.6", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild-wasm": "0.17.16", + "esbuild-wasm": "0.17.18", "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -136,21 +135,21 @@ "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "piscina": "3.2.0", - "postcss": "8.4.21", + "postcss": "8.4.23", "postcss-loader": "7.2.4", "resolve-url-loader": "5.0.0", - "rxjs": "7.8.0", - "sass": "1.62.0", + "rxjs": "7.8.1", + "sass": "1.62.1", "sass-loader": "13.2.2", "semver": "7.4.0", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.9", + "terser": "5.17.1", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.5.0", - "vite": "4.2.1", - "webpack": "5.79.0", + "vite": "4.3.1", + "webpack": "5.80.0", "webpack-dev-middleware": "6.0.2", "webpack-dev-server": "4.13.2", "webpack-merge": "5.8.0", @@ -162,15 +161,17 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.17.16" + "esbuild": "0.17.18" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0-rc.0", - "@angular/localize": "^16.0.0-rc.0", - "@angular/platform-server": "^16.0.0-rc.0", - "@angular/service-worker": "^16.0.0-rc.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/localize": "^16.0.0", + "@angular/platform-server": "^16.0.0", + "@angular/service-worker": "^16.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^16.0.0-rc.0", + "ng-packagr": "^16.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", "typescript": ">=4.9.3 <5.1" @@ -185,6 +186,12 @@ "@angular/service-worker": { "optional": true }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, "karma": { "optional": true }, @@ -238,6 +245,13 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular-devkit/build-angular/node_modules/@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", + "dev": true, + "peer": true + }, "node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", @@ -250,6 +264,16 @@ "vite": "^3.0.0 || ^4.0.0" } }, + "node_modules/@angular-devkit/build-angular/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -354,16 +378,59 @@ "node": ">=10" } }, + "node_modules/@angular-devkit/build-angular/node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/@angular-devkit/build-angular/node_modules/vite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", - "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", "dev": true, "dependencies": { "esbuild": "^0.17.5", "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.18.0" + "rollup": "^3.20.2" }, "bin": { "vite": "bin/vite.js" @@ -404,13 +471,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1600.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0-rc.0.tgz", - "integrity": "sha512-rjbu7IOX9x0sUWaeby2UachuwloBGqCMJJAwCdPdD5Ce615NYG5rqkYaVSO4YYGPJ4zRbLb+2iTk/eNkeS+WaA==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0.tgz", + "integrity": "sha512-ZlNNMtAzgMCsaN5crkqtgeYxWEyZ78/ePfrJTB3+Hb6LS+hsRf4WAYubHWRWReSx87ppluRrgNZLy0K9ooWy1w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1600.0-rc.0", - "rxjs": "7.8.0" + "@angular-devkit/architect": "0.1600.0", + "rxjs": "7.8.1" }, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -423,15 +490,15 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0-rc.0.tgz", - "integrity": "sha512-9VssCo5X9OH3Lg1IqiFpueYtiIzsDS8BQ/QfNCZSOHya2RvvQKjcnIQbCpAawl2sF+GjnA1cp8RLvZ6jSiizHw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0.tgz", + "integrity": "sha512-YJKvAJlg4/lfP93pQNawlOTQalynWGpoatZU+1aXBgRh5YCTKu2S/A3gtQ71DBuhac76gJe1RpxDoq41kB2KlQ==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", - "rxjs": "7.8.0", + "rxjs": "7.8.1", "source-map": "0.7.4" }, "engines": { @@ -471,16 +538,16 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0-rc.0.tgz", - "integrity": "sha512-X1CLukDZozhxq0EryRQ5ZavIZbVYBPEVvtA22fqKwmCmej/b1PpHE3eTB/zom85AQwhoIO+MsWcq+1aAJLXaGw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0.tgz", + "integrity": "sha512-9uFOqjOQdhnpxU5mku2LvBkV5Ave2ihHBFaQCH7vQ7DD+p4NpLHu93bMSh+f7k9W7F0lY18g9qrihRgK/7wfuA==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.0-rc.0", + "@angular-devkit/core": "16.0.0", "jsonc-parser": "3.2.0", "magic-string": "0.30.0", "ora": "5.4.1", - "rxjs": "7.8.0" + "rxjs": "7.8.1" }, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -489,29 +556,33 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-15.2.1.tgz", - "integrity": "sha512-7x2DANebLRl997Mj4DhZrnz5+vnSjavGGveJ0mBuU7CEsL0ZYLftdRqL0e0HtU3ksseS7xpchD6OM08nkNgySw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.0.1.tgz", + "integrity": "sha512-yjFltV+r3YjisVjASMPmWB/ASz39wdh0q5g0l6/4G+8yaxl6hEYs5o0ZOGeGdTFstCql8FGY+QKwKgsq9Ec4QQ==", "dev": true, + "dependencies": { + "@nx/devkit": "16.0.2", + "nx": "16.0.2" + }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-15.2.1.tgz", - "integrity": "sha512-LO7Am8eVCr7oh6a0VmKSL7K03CnQEQhFO7Wt/YtbfYOxVjrbwmYLwJn+wZPOT7A02t/BttOD/WXuDrOWtSMQ/Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-16.0.1.tgz", + "integrity": "sha512-amvTgKHtZoygivW3LAYZ9qjLWsXM7/7eaRvaHdmAEdjyFnYQZ7UbWMPSQNz1mlW/AzTFvk9lGGQORglNOSDnww==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-15.2.1.tgz", - "integrity": "sha512-OM7b1kS4E4CkXjkaWN+lEzawh4VxY6l7FO1Cuk4s7iv3/YpZG3rJxIZBqnFLTixwrBuqw8y4FNBzF3eDgmFAUw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-16.0.1.tgz", + "integrity": "sha512-CM9keS9cH1QAfSVfsvhw/oGCZcP/D8gfekWwVNjN/uEMEAak0czn1KOG7JQkE36NXOGtwCpTspMi1aa9CVKo9g==", "dev": true, "dependencies": { - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/utils": "5.59.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -519,15 +590,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-15.2.1.tgz", - "integrity": "sha512-IeiSLk6YxapFdH2z5o/O3R7VwtBd2T6fWmhLFPwDYMDknrwegnOjwswCdBplOccpUp0wqlCeGUx7LTsuzwaz7w==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-16.0.1.tgz", + "integrity": "sha512-1hyfs+Iq7K2x3mDDE4985d8vDcMyknbE9HKHKUtRLfLKC9gnV3N5d4+UeySQ7Rrjvgzkc1g9qHADyuhwRWpDSA==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "aria-query": "5.1.3", "axobject-query": "3.1.1" }, @@ -537,28 +608,30 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-15.2.1.tgz", - "integrity": "sha512-0ZfBCejHWIcgy3J5kFs9sS/jqi8i5AptxggOwFySOlCLJ+CzNrktjD4jff1Zy8K/VLzY0Ci0BSZXvgWfP0k9Rg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-1oJJEWVbgPkNK1E8rAJfrgxzNWWzJKv3frTHeAm8gvZ7GftYhHjDcrcnxLWrYNxb9+q8Awi0hvGta/4HROmmnA==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/eslint-plugin": "16.0.1", + "@angular-eslint/eslint-plugin-template": "16.0.1", + "@nx/devkit": "16.0.2", "ignore": "5.2.4", + "nx": "16.0.2", "strip-json-comments": "3.1.1", "tmp": "0.2.1" }, "peerDependencies": { - "@angular/cli": ">= 15.0.0 < 16.0.0" + "@angular/cli": ">= 16.0.0 < 17.0.0" } }, "node_modules/@angular-eslint/template-parser": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-15.2.1.tgz", - "integrity": "sha512-ViCi79gC2aKJecmYLkOT+QlT5WMRNXeYz0Dr9Pr8qXzIbY0oAWE7nOT5jkXwQ9oUk+ybtGCWHma5JVJWVJsIog==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-16.0.1.tgz", + "integrity": "sha512-x0+SwSeqa3TiVZan6fE5grHsCkjGqU+zAS2DB6wAw5pyvgNAIjrI4cZEQ8pkgHfXe5tuumTKztlkpisah5s/hg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", + "@angular-eslint/bundled-angular-compiler": "16.0.1", "eslint-scope": "^7.0.0" }, "peerDependencies": { @@ -589,13 +662,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-15.2.1.tgz", - "integrity": "sha512-++FneAJHxJqcSu0igVN6uOkSoHxlzgLoMBswuovYJy3UKwm33/T6WFku8++753Ca/JucIoR1gdUfO7SoSspMDg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-16.0.1.tgz", + "integrity": "sha512-2xnJuhIrMZEYK6UyBym6FaFXZgopIIbqfQ4sAtMWY6zYkCEsVUvx5qKIrsnXAwvpDQrv0WiMXteqi/5ICpVMZQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@typescript-eslint/utils": "5.59.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -603,9 +676,9 @@ } }, "node_modules/@angular/animations": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0-rc.1.tgz", - "integrity": "sha512-R2ZaHS8aFhOlXF7ZD7kVWa5506sm37BJna7OaIvfTu8l0KQ3/4JL8CUo++Ws8fim8Upil5M8f5ubIgkq0Qw5Bw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0.tgz", + "integrity": "sha512-Xx4Ffdo3sweg24MDVAXbDfxqkNPEuRgqOC1+f9171kf+w7cBEr4Bmy37DP7YkJceaU0xJH9imcx4708KeIjqkQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -613,19 +686,19 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.0-rc.1" + "@angular/core": "16.0.0" } }, "node_modules/@angular/cli": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0-rc.0.tgz", - "integrity": "sha512-DbN8IJpLsdP9G3hiLhT1mTLuIo/02Z/a/2cfdW9HAsZAxdwiT5O3ArD+ViS1fhrd1b477WvRKx+whVzBxG0zuw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0.tgz", + "integrity": "sha512-vsveaSJ5kj0MeJCg1nir5iJJEsdrRRnyNeL1awMcyrEjAhBPX3d0gfOP2fe0HR5KJtntX8zvihGus3i48Quo7A==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1600.0-rc.0", - "@angular-devkit/core": "16.0.0-rc.0", - "@angular-devkit/schematics": "16.0.0-rc.0", - "@schematics/angular": "16.0.0-rc.0", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "@schematics/angular": "16.0.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.0.0", @@ -635,11 +708,11 @@ "npm-pick-manifest": "8.0.1", "open": "8.4.2", "ora": "5.4.1", - "pacote": "15.1.1", + "pacote": "15.1.3", "resolve": "1.22.2", "semver": "7.4.0", "symbol-observable": "4.0.0", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "bin": { "ng": "bin/ng.js" @@ -675,9 +748,9 @@ } }, "node_modules/@angular/common": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0-rc.1.tgz", - "integrity": "sha512-3Z9wRw0yee2aG64lULf78TQA5kNfLdT+sxflXOLYTdtRATRrxewqV5tgQjfu/NI4MhCTeFvCCO4H6/APCyZ7Pw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0.tgz", + "integrity": "sha512-at3/xCevf2t9swX2P7K7gaSBuQPy7ZJsf37qQkYIuczzfij69r7s9NjYeA74/q3EWG9Yl2DCrhYoCW7ViXQINQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -685,14 +758,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.0-rc.1", + "@angular/core": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0-rc.1.tgz", - "integrity": "sha512-eLzlN9OlvVUMAjZTCRv8B1SHWWgYe8RAAGLs2+T6A5DhOahG1YFWIQye69quQcyf/iflL0LRCnHZz/qvGp9/3w==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0.tgz", + "integrity": "sha512-xtg+KRvSeB9DUzMDtvlaRGKv+Y0MERsz+JOoqV9H4606ThNz5h8ih6fEhVKYqG100o7GhdJaVFO+vlr2/edUHA==", "dependencies": { "tslib": "^2.3.0" }, @@ -700,7 +773,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.0-rc.1" + "@angular/core": "16.0.0" }, "peerDependenciesMeta": { "@angular/core": { @@ -709,9 +782,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0-rc.1.tgz", - "integrity": "sha512-q//LQrt4PYksHHOAK1TmLM7X6BRPDrEUHLoQWmFnBjdMS5SXMtdSGwf4YREfbCmOl5his5C1zHqEhj7zG7wJfg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0.tgz", + "integrity": "sha512-oyJzxiTHxziv7mD0QuA7K6tpDoL6YNGPkquKjeJjNVZvUrodGsvJ8xHO4ydmjK3nMu2ET1YarsdI8bRp4vp/7w==", "dev": true, "dependencies": { "@babel/core": "7.19.3", @@ -725,13 +798,14 @@ }, "bin": { "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js" + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" }, "engines": { "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.0.0-rc.1", + "@angular/compiler": "16.0.0", "typescript": ">=4.9.3 <5.1" } }, @@ -775,9 +849,9 @@ } }, "node_modules/@angular/core": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0-rc.1.tgz", - "integrity": "sha512-OBQ48vtkJ21p9GnHsYDyhZRXuxYc+Qlz1gZBioX4HGp9fxpCVHnjWnNhC0bsNLAK7xtpVIi9tt8bwNegGGG7Gw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0.tgz", + "integrity": "sha512-scppDxtXubum6ZiGu3ogmReBtMuA5XXk5FL3YKLb3c9O7q9Z5PC8KNQ6SsaOwEb6oW+0BWXMV698p/zmd0J4tA==", "dependencies": { "tslib": "^2.3.0" }, @@ -790,9 +864,9 @@ } }, "node_modules/@angular/forms": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0-rc.1.tgz", - "integrity": "sha512-CrBg9ahxmxTIYUY7IE6Y0ECZugnVVhsjKC3U5Svf5rLsv2reHytRwIcG9hgAUfPd/iXvdYBKCOxi98Gmqpl4IA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0.tgz", + "integrity": "sha512-avpreXyDYWf44RNM5hfi5cTXXiNwcajBURP5rLap8RPMSUi2ePlJsmi0O+3+GduNZFbtnRXIpKTj3W+GeNa0PA==", "dependencies": { "tslib": "^2.3.0" }, @@ -800,25 +874,25 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0-rc.1", - "@angular/core": "16.0.0-rc.1", - "@angular/platform-browser": "16.0.0-rc.1", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0-rc.1.tgz", - "integrity": "sha512-yHIYqrLot/02qAiun/ZuzsYupNDzs++zSlxcLmbRcSD5lRH4SSrdJpd+KFVHnnmLUUbb1JUZeZwA2JKxMJW/dg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0.tgz", + "integrity": "sha512-jySin8NdZIfcvwyemh2kRVveOvL1SPvywmIrv/6+MbKebG9Oc+casxruoRai8gh8bhahdpUAOG0t8wbedUWcxw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.10.0" } }, "node_modules/@angular/platform-browser": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0-rc.1.tgz", - "integrity": "sha512-SiOsw3LaUDkmIIJcY4cHK2yhh/Ls2laGolHaRnJuLtRT402h6nkVDQWXHFOthvaWCvTFBgm+XLVrXDTZm3Nr5g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0.tgz", + "integrity": "sha512-6LpgLfEnumKMKM/S9joWrVSm4MdFuIjddFmlSG7zGcRqwM0N8doH/YkuwTK8/t9q8wI/yztp6qM2pg25Pgv1XA==", "dependencies": { "tslib": "^2.3.0" }, @@ -826,9 +900,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.0.0-rc.1", - "@angular/common": "16.0.0-rc.1", - "@angular/core": "16.0.0-rc.1" + "@angular/animations": "16.0.0", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0" }, "peerDependenciesMeta": { "@angular/animations": { @@ -837,9 +911,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0-rc.1.tgz", - "integrity": "sha512-Zl3f23+s7VWICIwtcn5TlThKOdK6jH7QtTOTO+7sDFJysL+wub6FPuJmlYnapLnSSXAxjvypSGUAP2UUE783bA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0.tgz", + "integrity": "sha512-xUR36r+7hFQjAb0RA0VFfWrCLj2VnWg0xJgPe4FQmwaEWjKMc011tkJXs0PApaiTxvE0W08nadSDTu5jfsBrFw==", "dependencies": { "tslib": "^2.3.0" }, @@ -847,16 +921,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0-rc.1", - "@angular/compiler": "16.0.0-rc.1", - "@angular/core": "16.0.0-rc.1", - "@angular/platform-browser": "16.0.0-rc.1" + "@angular/common": "16.0.0", + "@angular/compiler": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0" } }, "node_modules/@angular/platform-server": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-16.0.0-rc.1.tgz", - "integrity": "sha512-gqJ0EBer21REkFjNxInp3yMXshDxeq+OLuOrourhE3Lxz6+BM6VswiZgswlfWUfsryjdK+RQEQtjGEtWN8wELg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-16.0.0.tgz", + "integrity": "sha512-YztsSNX+PAI9fP9M5Z0tNMyjjNHUd3x8Yp0dKbRgG9pD4max+ctAi3xZi02ubfaD6HN05yXOehi5wFdcBoyegg==", "dependencies": { "tslib": "^2.3.0", "xhr2": "^0.2.0" @@ -865,18 +939,17 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.0.0-rc.1", - "@angular/common": "16.0.0-rc.1", - "@angular/compiler": "16.0.0-rc.1", - "@angular/core": "16.0.0-rc.1", - "@angular/platform-browser": "16.0.0-rc.1", - "@angular/platform-browser-dynamic": "16.0.0-rc.1" + "@angular/animations": "16.0.0", + "@angular/common": "16.0.0", + "@angular/compiler": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0" } }, "node_modules/@angular/router": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0-rc.1.tgz", - "integrity": "sha512-bVblyK/hhmsb+diP13FHxt8wPzAyL5ANfWh6ruoRDeF91XeIT7r25j6EVP+S35dUYOvqjaBYVvIh8lnLU2Ylpg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0.tgz", + "integrity": "sha512-+5gjJwFx3AFGv7OnY53pfUzaPbWe5gOVQWXAnlUuk6tsQmWJBMehuCQ5ZO5cxViQDZkyvNALzoUeU6aKWmNqmg==", "dependencies": { "tslib": "^2.3.0" }, @@ -884,9 +957,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.0-rc.1", - "@angular/core": "16.0.0-rc.1", - "@angular/platform-browser": "16.0.0-rc.1", + "@angular/common": "16.0.0", + "@angular/core": "16.0.0", + "@angular/platform-browser": "16.0.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1297,7 +1370,6 @@ "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -1344,7 +1416,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -2566,6 +2637,30 @@ "node": ">=0.1.90" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -2633,9 +2728,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.16.tgz", - "integrity": "sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", "cpu": [ "arm" ], @@ -2649,9 +2744,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.16.tgz", - "integrity": "sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", "cpu": [ "arm64" ], @@ -2665,9 +2760,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.16.tgz", - "integrity": "sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", "cpu": [ "x64" ], @@ -2681,9 +2776,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.16.tgz", - "integrity": "sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", "cpu": [ "arm64" ], @@ -2697,9 +2792,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.16.tgz", - "integrity": "sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", "cpu": [ "x64" ], @@ -2713,9 +2808,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.16.tgz", - "integrity": "sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", "cpu": [ "arm64" ], @@ -2729,9 +2824,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.16.tgz", - "integrity": "sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", "cpu": [ "x64" ], @@ -2745,9 +2840,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.16.tgz", - "integrity": "sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", "cpu": [ "arm" ], @@ -2761,9 +2856,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.16.tgz", - "integrity": "sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", "cpu": [ "arm64" ], @@ -2777,9 +2872,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.16.tgz", - "integrity": "sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", "cpu": [ "ia32" ], @@ -2793,9 +2888,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.16.tgz", - "integrity": "sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", "cpu": [ "loong64" ], @@ -2809,9 +2904,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.16.tgz", - "integrity": "sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", "cpu": [ "mips64el" ], @@ -2825,9 +2920,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.16.tgz", - "integrity": "sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", "cpu": [ "ppc64" ], @@ -2841,9 +2936,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.16.tgz", - "integrity": "sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", "cpu": [ "riscv64" ], @@ -2857,9 +2952,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.16.tgz", - "integrity": "sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", "cpu": [ "s390x" ], @@ -2873,9 +2968,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.16.tgz", - "integrity": "sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", "cpu": [ "x64" ], @@ -2889,9 +2984,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.16.tgz", - "integrity": "sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", "cpu": [ "x64" ], @@ -2905,9 +3000,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.16.tgz", - "integrity": "sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", "cpu": [ "x64" ], @@ -2921,9 +3016,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.16.tgz", - "integrity": "sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", "cpu": [ "x64" ], @@ -2937,9 +3032,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.16.tgz", - "integrity": "sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", "cpu": [ "arm64" ], @@ -2953,9 +3048,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.16.tgz", - "integrity": "sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", "cpu": [ "ia32" ], @@ -2969,9 +3064,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.16.tgz", - "integrity": "sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", "cpu": [ "x64" ], @@ -2984,11 +3079,37 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -3008,7 +3129,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -3023,7 +3143,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "engines": { "node": ">= 4" } @@ -3032,7 +3151,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -3065,7 +3183,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -3078,8 +3195,7 @@ "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "node_modules/@ionic/angular": { "version": "7.0.2", @@ -3114,14 +3230,6 @@ "zone.js": ">=0.11.0" } }, - "node_modules/@ionic/angular/node_modules/ionicons": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", - "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", - "dependencies": { - "@stencil/core": "^2.18.0" - } - }, "node_modules/@ionic/core": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.0.2.tgz", @@ -3144,24 +3252,100 @@ "npm": ">=6.0.0" } }, - "node_modules/@ionic/core/node_modules/ionicons": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", - "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "dependencies": { - "@stencil/core": "^2.18.0" - } - }, - "node_modules/@ionic/core/node_modules/ionicons/node_modules/@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==", - "bin": { - "stencil": "bin/stencil" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=12.10.0", - "npm": ">=6.0.0" + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/@istanbuljs/load-nyc-config": { @@ -3260,9 +3444,9 @@ "dev": true }, "node_modules/@ngtools/webpack": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0-rc.0.tgz", - "integrity": "sha512-5/J7a7hL06YQaRhw3hgJPkdSRWfrW9cbGfDfclA5WYYhsdionhjUdjpbWKicQiaT4f9OhDACFtMURBRsnO4bdg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0.tgz", + "integrity": "sha512-I5zjGtJu2wwIdM+OFUHXezmwTJ0wpParVJgCxR0cLd0CIbpRYSjOSZQN/nR9ZnTKAI5uFZ3MM2p/VRQGUUHUcw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -3270,325 +3454,74 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0-rc.0", + "@angular/compiler-cli": "^16.0.0", "typescript": ">=4.9.3 <5.1", "webpack": "^5.54.0" } }, "node_modules/@nguniversal/builders": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-15.1.0.tgz", - "integrity": "sha512-AM+n6yAWXDKP3G4+LdvXLLJWAcSy76RuR7rswVoJ8SQdrqB3Vf/tUc/UVCohp/UZjuQBEGUE0kXWBQH4cdRmmQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-16.0.0.tgz", + "integrity": "sha512-a/0F2QgE0SMjmClx72seohzmmz4VVJR3QFpdnHHB4EtDRsJ+DSZmwUoLWsZWdonBgfJ7iTGkG2glpyzSKQDWew==", "dev": true, "dependencies": { - "@angular-devkit/architect": "~0.1501.0", - "@angular-devkit/core": "~15.1.0", - "@nguniversal/common": "15.1.0", + "@angular-devkit/architect": "~0.1600.0-next.2", + "@angular-devkit/core": "~16.0.0-next.2", + "@nguniversal/common": "16.0.0", "browser-sync": "^2.27.10", "express": "^4.18.2", "guess-parser": "^0.4.22", "http-proxy-middleware": "^2.0.6", "ora": "^5.1.0", "piscina": "~3.2.0", - "rxjs": "^6.5.5", + "rxjs": "^7.0.0", "tree-kill": "^1.2.2" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular-devkit/build-angular": "^15.0.0" + "@angular-devkit/build-angular": "^16.0.0 || ^16.0.0-next.0" } }, - "node_modules/@nguniversal/builders/node_modules/@angular-devkit/architect": { - "version": "0.1501.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.6.tgz", - "integrity": "sha512-u07zZFlfrg0Qn4mu5M9Nz0pH2Yd2028XF/73980PsZMxwkSm4diF08v4bHk3UyR7yPT7phwvt4znj6ryZhx1gw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "15.1.6", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@nguniversal/builders/node_modules/@angular-devkit/core": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.6.tgz", - "integrity": "sha512-jGgxyRjecVf6lEyqDxz7ltMEndNPxIg720pk6r40fgsu0dU8w9vjJSJe7k0XdJiXVRcN6wZa/J5nO/xcwWVIsA==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@nguniversal/builders/node_modules/@nguniversal/common": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-15.1.0.tgz", - "integrity": "sha512-NcZByxhO4VELZutuFL6/uvY0/dp7BJ7zu0AGUS1apNF4aAPmW6DjlbrVCPcqLOzrd1cPIOh0HJI3H1J2+dqRsA==", - "dev": true, + "node_modules/@nguniversal/common": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-16.0.0.tgz", + "integrity": "sha512-qZ+/vbC8GBB1hCE6rwYOTbkREU/OEsS7jaE71upiwWL2kGP2cAoVo9kx+Ez+j3V2ao9Wg2c+fAEYBkRkQH0bXg==", "dependencies": { "critters": "0.0.16", - "jsdom": "21.0.0", + "jsdom": "21.1.1", "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "^15.0.0", - "@angular/core": "^15.0.0" - } - }, - "node_modules/@nguniversal/builders/node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/@nguniversal/builders/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@nguniversal/builders/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@nguniversal/builders/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@nguniversal/builders/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@nguniversal/builders/node_modules/jsdom": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.0.0.tgz", - "integrity": "sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/@nguniversal/builders/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@nguniversal/builders/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/@nguniversal/builders/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@nguniversal/builders/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@nguniversal/builders/node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/@nguniversal/builders/node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@nguniversal/builders/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@nguniversal/builders/node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" + "@angular/common": "^16.0.0 || ^16.0.0-next.0", + "@angular/core": "^16.0.0 || ^16.0.0-next.0" } }, "node_modules/@nguniversal/express-engine": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0.tgz", - "integrity": "sha512-tWk2/oMTQo703VsTGpHakm+2BH1bXQbmD43BcYUcmASJDIDmxSBCEY6zwT1TjrYST0keBChJD9jAoKesvSPB/w==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0.tgz", + "integrity": "sha512-7e+7StsJMQRtxqcYYKmOm3PsX2hltKUfPq4OGuYeHojblPUfOQpkv/eM9ly1aCiuhr8OEKrsMWUmzN2RjHKEdg==", "dependencies": { - "@nguniversal/common": "15.0.0", + "@nguniversal/common": "16.0.0", "tslib": "^2.3.0" }, "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "^15.0.0-next.0", - "@angular/core": "^15.0.0-next.0", - "@angular/platform-server": "^15.0.0-next.0", + "@angular/common": "^16.0.0 || ^16.0.0-next.0", + "@angular/core": "^16.0.0 || ^16.0.0-next.0", "express": "^4.15.2" } }, - "node_modules/@nguniversal/express-engine/node_modules/@nguniversal/common": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-15.0.0.tgz", - "integrity": "sha512-RSlCSS5HejFoH/T6hpRIkTG1JzYEIxRgxsSxVyyPhGGRS4ouBzy4vEVkuIKwiYgVMBIGljJLelb38IsChTJsRg==", - "dependencies": { - "critters": "0.0.16", - "jsdom": "20.0.2", - "tslib": "^2.3.0" - }, - "engines": { - "node": "^14.20.0 || ^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": "^15.0.0-next.0", - "@angular/core": "^15.0.0-next.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3601,7 +3534,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -3610,7 +3542,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3660,9 +3591,9 @@ } }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3726,9 +3657,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3741,9 +3672,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -3757,9 +3688,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -3771,14 +3702,239 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@schematics/angular": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0-rc.0.tgz", - "integrity": "sha512-MA3Qg/0nK1YIXDC6q+4x2VIaM+BPhdNYgOLgcUurYZqYfUlf6dK0mzCZzc69/o/g3tGWSaBmaZgSTUMCjCpxgw==", + "node_modules/@nrwl/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-SAEcImeQHdSTauO05FUn2vVl9/y5Kx1LNCZ4YE+SdY5/QRq18fuo/DCWmjOGG9M8r06vYGsAgMzkiB4soimcyA==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.0.0-rc.0", - "@angular-devkit/schematics": "16.0.0-rc.0", + "@nx/devkit": "16.0.2" + } + }, + "node_modules/@nrwl/tao": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.0.2.tgz", + "integrity": "sha512-wimEe4OTpI7/nDK67RnpZpEXCU+fzA0sDgpIhMgbpPd0vPmKgaZv4nbs8zrm0goFlacmmnLaGRhhGYMOxE+1Lg==", + "dev": true, + "dependencies": { + "nx": "16.0.2" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nx/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-BY1Bj0BbAl6XJL0O+QGTWPs/3WMJTEQ+Y4Lfoq4dZM7RllE6rAylr54NA2wa4lsgordZhq1+0g5PVhKKvSVRRw==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "16.0.2", + "ejs": "^3.1.7", + "ignore": "^5.0.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "nx": ">= 15 <= 17" + } + }, + "node_modules/@nx/devkit/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.0.2.tgz", + "integrity": "sha512-nAT8WJ/qKGEvUcoFLHHye1dbwCd7b8CTZJlDF+ZkyCD/UZRHt4eJxy8gvKmxgkZTFb2+PPMQt4UORCUGpZzuoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.0.2.tgz", + "integrity": "sha512-r0rfOrZaOyrwFR5a0UT05xkYRumfkP65cRSZM1TjCA027AG9llYtkLT1hlz8uMKt+P12zrWVzXSqGLDi022ZZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.0.2.tgz", + "integrity": "sha512-TfDQaGvCIDjn9sPg5U1Fr2rsSul/4PIQB59qrLBJRPiCWgpzwO71Il1qwSX68En+JH3lwXr+g5EjcDIEQ8fGYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.0.2.tgz", + "integrity": "sha512-MICaUp7uz8WVQFXWPrmQaX1o4bdL7f3C7b3MDDf6+Zau6RcyQuw97UEKaYi9OqrV3w8yuPplqoLosFblAgb8uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.0.2.tgz", + "integrity": "sha512-wcBURG+6A2srm+6ujj8SShjwmYWs0eHI5D8vgZr8Bni+lXbKP/IosE9JGXKtRoh27/owyR8PGHhDVzjv46tlFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.0.2.tgz", + "integrity": "sha512-Xyml2gFdVDHUj2g67DKz2aD78x1BciN1ZaaBTCxXL4MHfwR78SZa7mtRtE+1kj5OgVIwupZP50jq7C8GuSn3Hw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.0.2.tgz", + "integrity": "sha512-j3xdN8I5DlTgW5N5eCquyBZswrrYf6EazUCvnEpeejygwh3N6XN7DlD68Bs0CB4Zmd0tWLfTjNVAtUJSP6g2mA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.0.2.tgz", + "integrity": "sha512-R2pzoW3SUFBbe9C1vifJnXuysPl6kmutQHN2yQ9lwJptzPvMxfDU1FuXmKCGRUGmEwFxk/XPhwDL/ZcbABTrzw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.0.2.tgz", + "integrity": "sha512-r4H/SsqfpIJa8QLSpnscgkMnLsnkRYXj8TcILDrf+nJazfEdJZLUvVhN9O85OB7pskv86NuGfnJmJHHXy6QVQg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@schematics/angular": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0.tgz", + "integrity": "sha512-Ao1Y0hEDa30JjWDLnUfOsD+9nnfdBFclfKFzR+7pvvFYCpSUhH1u+8e+7noruIxlP26+SpqPn3AF5+IRTGza8w==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", "jsonc-parser": "3.2.0" }, "engines": { @@ -3843,6 +3999,34 @@ "node": ">= 10" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true, + "peer": true + }, "node_modules/@tufjs/canonical-json": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", @@ -3853,13 +4037,13 @@ } }, "node_modules/@tufjs/models": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.2.tgz", - "integrity": "sha512-uxarDtxTIK3f8hJS4yFhW/lvTa3tsiQU5iDCRut+NCnOXvNtEul0Ct58NIIcIx9Rkt7OFEK31Ndpqsd663nsew==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "dependencies": { "@tufjs/canonical-json": "1.0.0", - "minimatch": "^8.0.3" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -3875,9 +4059,9 @@ } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -3924,9 +4108,9 @@ } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", @@ -4203,7 +4387,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", - "dev": true, "dependencies": { "@typescript-eslint/scope-manager": "4.28.2", "@typescript-eslint/types": "4.28.2", @@ -4230,7 +4413,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -4243,7 +4425,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.28.2", "@typescript-eslint/visitor-keys": "4.28.2", @@ -4270,7 +4451,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.28.2", "@typescript-eslint/visitor-keys": "4.28.2" @@ -4287,7 +4467,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -4297,13 +4476,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4324,9 +4503,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4337,13 +4516,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4364,12 +4543,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4381,27 +4560,30 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -4416,13 +4598,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4433,12 +4615,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4450,19 +4632,21 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@typescript-eslint/visitor-keys": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", - "dev": true, "dependencies": { "@typescript-eslint/types": "4.28.2", "eslint-visitor-keys": "^2.0.0" @@ -4479,7 +4663,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -4489,148 +4672,148 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -5029,6 +5212,37 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.43", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.43.tgz", + "integrity": "sha512-AhFF3mIDfA+jEwQv2WMHmiYhOvmdbh2qhUkDVQfiqzQtUwS4BgoWwom5NpSPg4Ix5vOul+w1690Bt21CkVLpgg==", + "dev": true, + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@zkochan/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -5098,7 +5312,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -5190,7 +5403,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5254,7 +5466,6 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, "engines": { "node": ">=6" } @@ -5290,7 +5501,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -5299,7 +5509,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -5383,7 +5592,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -5406,7 +5614,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, "engines": { "node": ">=8" } @@ -5433,7 +5640,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, "engines": { "node": ">=8" } @@ -5629,8 +5835,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -5808,7 +6013,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5818,7 +6022,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -6066,16 +6269,16 @@ } }, "node_modules/cacache": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.5.tgz", - "integrity": "sha512-Y/PRQevNSsjAPWykl9aeGz8Pr+OI6BYM9fYDNMvOkuUiG9IhG4LEmaYrZZZvioMUEQ+cBCxT0v8wrnCURccyKA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^9.3.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -6099,15 +6302,19 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -6126,9 +6333,9 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -6165,7 +6372,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -6209,7 +6415,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6396,7 +6601,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -6404,8 +6608,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-support": { "version": "1.1.3", @@ -6520,8 +6723,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concurrently": { "version": "6.5.1", @@ -6934,6 +7136,13 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "peer": true + }, "node_modules/critters": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", @@ -7015,7 +7224,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7089,15 +7297,11 @@ "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" - }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, "dependencies": { "cssom": "~0.3.6" }, @@ -7108,7 +7312,8 @@ "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true }, "node_modules/cypress": { "version": "10.2.0", @@ -7271,16 +7476,16 @@ } }, "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-url": "^12.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/date-fns": { @@ -7319,9 +7524,9 @@ } }, "node_modules/decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/deep-equal": { "version": "2.1.0", @@ -7512,7 +7717,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -7533,9 +7737,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.5.0.tgz", - "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -7548,7 +7752,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -7618,6 +7821,27 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", @@ -7657,6 +7881,21 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", @@ -7666,8 +7905,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -7830,7 +8068,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, "dependencies": { "ansi-colors": "^4.1.1" }, @@ -7926,9 +8163,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.16.tgz", - "integrity": "sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", "dev": true, "hasInstallScript": true, "bin": { @@ -7938,34 +8175,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.16", - "@esbuild/android-arm64": "0.17.16", - "@esbuild/android-x64": "0.17.16", - "@esbuild/darwin-arm64": "0.17.16", - "@esbuild/darwin-x64": "0.17.16", - "@esbuild/freebsd-arm64": "0.17.16", - "@esbuild/freebsd-x64": "0.17.16", - "@esbuild/linux-arm": "0.17.16", - "@esbuild/linux-arm64": "0.17.16", - "@esbuild/linux-ia32": "0.17.16", - "@esbuild/linux-loong64": "0.17.16", - "@esbuild/linux-mips64el": "0.17.16", - "@esbuild/linux-ppc64": "0.17.16", - "@esbuild/linux-riscv64": "0.17.16", - "@esbuild/linux-s390x": "0.17.16", - "@esbuild/linux-x64": "0.17.16", - "@esbuild/netbsd-x64": "0.17.16", - "@esbuild/openbsd-x64": "0.17.16", - "@esbuild/sunos-x64": "0.17.16", - "@esbuild/win32-arm64": "0.17.16", - "@esbuild/win32-ia32": "0.17.16", - "@esbuild/win32-x64": "0.17.16" + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" } }, "node_modules/esbuild-wasm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.16.tgz", - "integrity": "sha512-o5DNFwnYThm9LXYIEoZEnJrk7cI08GwVjHKMUHDFSN8vo0y8eKdEOAgNH3rSoBK/8E34PeKr1UO0liEBIH/GFQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -7992,7 +8229,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -8086,7 +8322,6 @@ "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -8143,7 +8378,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -8174,7 +8408,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, "engines": { "node": ">=10" } @@ -8183,7 +8416,6 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, "dependencies": { "@babel/highlight": "^7.10.4" } @@ -8192,7 +8424,6 @@ "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" }, @@ -8207,7 +8438,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8223,7 +8453,6 @@ "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" }, @@ -8234,14 +8463,12 @@ "node_modules/eslint/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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "engines": { "node": ">=10" }, @@ -8253,7 +8480,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -8268,7 +8494,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "engines": { "node": ">=4" } @@ -8277,7 +8502,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -8292,7 +8516,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8301,7 +8524,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, "engines": { "node": ">= 4" } @@ -8310,7 +8532,6 @@ "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" }, @@ -8322,7 +8543,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -8334,7 +8554,6 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -8348,7 +8567,6 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -8360,7 +8578,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, "engines": { "node": ">=4" } @@ -8381,7 +8598,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -8393,7 +8609,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -8402,7 +8617,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -8414,7 +8628,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -8423,7 +8636,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, "engines": { "node": ">=4.0" } @@ -8716,14 +8928,12 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8738,8 +8948,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -8756,7 +8965,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -8801,7 +9009,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -8809,11 +9016,40 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8905,11 +9141,19 @@ "node": ">=8" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -8921,8 +9165,7 @@ "node_modules/flatted": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" }, "node_modules/follow-redirects": { "version": "1.15.1", @@ -8953,6 +9196,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -9005,6 +9276,12 @@ "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -9021,12 +9298,12 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9041,8 +9318,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -9066,8 +9342,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" }, "node_modules/functions-have-names": { "version": "1.2.3", @@ -9174,7 +9449,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9194,7 +9468,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -9236,7 +9509,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -9333,7 +9605,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -9624,18 +9895,17 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.2.tgz", - "integrity": "sha512-ezmQ1Dg2b3jVZh2Dh+ar6Eu2MqNSTkyb32HU2MAQQQX9tKM3q/UQ/9lf03lQ5hW+fOeoMnwxwkleZ0xcNp0/qg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^7.4.2" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9651,15 +9921,15 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9691,7 +9961,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -9707,7 +9976,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -9735,7 +10003,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -9750,7 +10017,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9876,9 +10142,9 @@ } }, "node_modules/ionicons": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.0.4.tgz", - "integrity": "sha512-uDNOkBo0OVYV+kIhb51g9mb7r3Z0b+78GPZQBsjXuaetNmrB/mNTqN/uFtO+vxL/rQySKjzk8qeKJI5NWL9Ueg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", + "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", "dependencies": { "@stencil/core": "^2.18.0" } @@ -10029,7 +10295,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10038,7 +10303,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -10047,7 +10311,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -10099,7 +10362,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -10319,8 +10581,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -10371,6 +10632,112 @@ "semver": "bin/semver.js" } }, + "node_modules/jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/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/jake/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/jake/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/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/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -10425,14 +10792,12 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -10448,17 +10813,16 @@ "dev": true }, "node_modules/jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.1.tgz", + "integrity": "sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==", "dependencies": { "abab": "^2.0.6", - "acorn": "^8.8.0", + "acorn": "^8.8.2", "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", @@ -10467,16 +10831,17 @@ "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", + "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", "xml-name-validator": "^4.0.0" }, "engines": { @@ -10508,6 +10873,17 @@ "node": ">=0.4.0" } }, + "node_modules/jsdom/node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/jsdom/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -10603,14 +10979,12 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -10811,7 +11185,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -10989,8 +11362,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/lodash.once": { "version": "4.1.1", @@ -11001,8 +11373,7 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -11176,7 +11547,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -11452,7 +11822,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "engines": { "node": ">= 8" } @@ -11469,7 +11838,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -11546,7 +11914,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11561,9 +11928,9 @@ "dev": true }, "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -11793,9 +12160,15 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -11806,8 +12179,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/needle": { "version": "3.1.0", @@ -11883,8 +12255,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true + "dev": true }, "node_modules/node-forge": { "version": "1.3.1", @@ -11924,7 +12295,6 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", "dev": true, - "optional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -12010,9 +12380,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12061,13 +12431,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.4.tgz", - "integrity": "sha512-pMS2DRkwg+M44ct65zrN/Cr9IHK1+n6weuefAo6Er4lc+/8YBCU0Czq04H3ZiSigluh7pb2rMM5JpgcytctB+Q==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -12088,9 +12458,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -12100,7 +12470,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -12114,12 +12484,12 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -12173,6 +12543,265 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" }, + "node_modules/nx": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.0.2.tgz", + "integrity": "sha512-8Z9Bo1D2VbYjyC/F2ONensKjm10snz1UfkzURZiFA+oXikBPldiH1u67TOTpoCYZfyYQg4l6h6EpOaAvHF6Abg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nrwl/tao": "16.0.2", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "16.0.2", + "@nx/nx-darwin-x64": "16.0.2", + "@nx/nx-linux-arm-gnueabihf": "16.0.2", + "@nx/nx-linux-arm64-gnu": "16.0.2", + "@nx/nx-linux-arm64-musl": "16.0.2", + "@nx/nx-linux-x64-gnu": "16.0.2", + "@nx/nx-linux-x64-musl": "16.0.2", + "@nx/nx-win32-arm64-msvc": "16.0.2", + "@nx/nx-win32-x64-msvc": "16.0.2" + }, + "peerDependencies": { + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/nx/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/nx/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/nx/node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/nx/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/nx/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/nx/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/nx/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/nx/node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/nx/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/nx/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/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/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -12272,7 +12901,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -12340,7 +12968,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -12535,9 +13162,9 @@ } }, "node_modules/pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -12546,7 +13173,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -12555,7 +13182,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -12576,7 +13203,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -12719,7 +13345,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -12728,7 +13353,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -12740,9 +13364,9 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "dependencies": { "lru-cache": "^9.0.0", @@ -12756,23 +13380,14 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.2.tgz", - "integrity": "sha512-7zYMKApzQ9qQE13xQUzbXVY3p2C5lh+9V+bs8M9fRf1TF59id+8jkljRWtIPfBfNP4yQAol5cqh/e8clxatdXw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "dev": true, "engines": { "node": "14 || >=16.14" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -12782,7 +13397,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -12808,7 +13422,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -12875,9 +13488,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "funding": [ { "type": "opencollective", @@ -12886,10 +13499,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -12979,7 +13596,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -13014,7 +13630,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -13078,9 +13693,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "engines": { "node": ">=6" } @@ -13103,7 +13718,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -13151,12 +13765,12 @@ } }, "node_modules/read-package-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.1.tgz", - "integrity": "sha512-AaHqXxfAVa+fNL07x8iAghfKOds/XXsu7zoouIVsbm7PEbQ3nMWXlvjcbrNLjElnUHWQtAo4QEa0RXuvD4XlpA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "dependencies": { - "glob": "^9.3.0", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -13197,15 +13811,19 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -13224,9 +13842,9 @@ } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -13343,7 +13961,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, "engines": { "node": ">=8" }, @@ -13411,7 +14028,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13552,7 +14168,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -13568,7 +14183,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -13595,6 +14209,11 @@ "fsevents": "~2.3.2" } }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -13608,7 +14227,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -13634,9 +14252,9 @@ "dev": true }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { "tslib": "^2.1.0" } @@ -13653,9 +14271,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz", - "integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -13807,7 +14425,6 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -14064,7 +14681,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -14076,7 +14692,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -14110,14 +14725,14 @@ "dev": true }, "node_modules/sigstore": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.2.0.tgz", - "integrity": "sha512-Fr9+W1nkBSIZCkJQR7jDn/zI0UXNsVpp+7mDQkCnZOIxG9p6yNXBx9xntHsfUyYHE55XDkkVV3+rYbrkzAeesA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", + "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "bin": { "sigstore": "bin/sigstore.js" @@ -14136,9 +14751,9 @@ } }, "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -14148,7 +14763,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -14162,12 +14777,12 @@ } }, "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -14182,7 +14797,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, "engines": { "node": ">=8" } @@ -14502,8 +15116,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/sshpk": { "version": "1.17.0", @@ -14531,12 +15144,12 @@ } }, "node_modules/ssri": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.3.tgz", - "integrity": "sha512-lJtX/BFPI/VEtxZmLfeh7pzisIs6micwZ3eruD3+ds9aPsXKlYpwDS2Q7omD6WC42WO9+bnUSzlMmfv8uK8meg==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -14582,6 +15195,20 @@ } }, "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -14596,6 +15223,18 @@ } }, "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -14607,6 +15246,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -14620,7 +15268,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" }, @@ -14628,11 +15275,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -14670,7 +15333,6 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -14686,7 +15348,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -14702,7 +15363,6 @@ "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" }, @@ -14717,7 +15377,6 @@ "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" }, @@ -14728,20 +15387,17 @@ "node_modules/table/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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/table/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": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -14764,14 +15420,14 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -14780,6 +15436,36 @@ "node": ">=10" } }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -14805,9 +15491,9 @@ } }, "node_modules/terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -14897,8 +15583,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "node_modules/tfunk": { "version": "4.0.0", @@ -15008,7 +15693,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -15038,14 +15722,14 @@ } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/tree-kill": { @@ -15136,6 +15820,20 @@ "typescript": ">=2.7" } }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -15145,7 +15843,6 @@ "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, "dependencies": { "tslib": "^1.8.1" }, @@ -15159,17 +15856,16 @@ "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/tuf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.3.tgz", - "integrity": "sha512-jGYi5nG/kqgfTFQSdoN6PW9eIn+XRZqdXku+fSwNk6UpWIsWaV7pzAqPgFr85edOPhoyJDyBqCS+DCnHroMvrw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", "dev": true, "dependencies": { - "@tufjs/models": "1.0.2", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -15185,9 +15881,9 @@ } }, "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -15197,7 +15893,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -15211,12 +15907,12 @@ } }, "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -15249,7 +15945,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -15291,7 +15986,6 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15449,7 +16143,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -15489,8 +16182,14 @@ "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "peer": true }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -15552,14 +16251,14 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dependencies": { "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/wait-on": { @@ -15639,21 +16338,21 @@ } }, "node_modules/webpack": { - "version": "5.79.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", - "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.13.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -15663,7 +16362,7 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", @@ -15953,9 +16652,9 @@ } }, "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -15966,9 +16665,9 @@ } }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -16046,22 +16745,21 @@ } }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dependencies": { - "tr46": "^3.0.0", + "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -16163,6 +16861,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -16199,8 +16948,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { "version": "8.13.0", @@ -16264,13 +17012,12 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -16285,6 +17032,15 @@ "node": ">=12" } }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yargs/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -16299,15 +17055,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -16348,25 +17095,25 @@ } }, "@angular-devkit/architect": { - "version": "0.1600.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0-rc.0.tgz", - "integrity": "sha512-5ZTC+I0t1E1MreDXaTdrEKoRbKD6dAx7946CGYp2++2TyI3hNaBP5Mv0/AckQ0RUfiebX72OSrcboHyzoMniVw==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1600.0.tgz", + "integrity": "sha512-nYRcqAxZnndhAEpSpJ1U2TScs2huu674OKrsEyJTqLEANEyCPBnusAmS9HcGzMBgePAwNElqOKrr5/f1DbYq1A==", "dev": true, "requires": { - "@angular-devkit/core": "16.0.0-rc.0", - "rxjs": "7.8.0" + "@angular-devkit/core": "16.0.0", + "rxjs": "7.8.1" } }, "@angular-devkit/build-angular": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0-rc.0.tgz", - "integrity": "sha512-FpgFgvxCA4KESu3PDkvXjdYQpkpxLReEJbjMsXtQvhWS5l5ti3zMbST6rRnsEkL8krIAhAixyqUWncp6d3sGEA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.0.0.tgz", + "integrity": "sha512-OvDQAbrV3cUMfHws30MnDURsXselZ0GWhSxZjOdcD3cF64Nsq5ywftHOT+QC3YdDghwI8gMADN9et+aVDscBzQ==", "dev": true, "requires": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.0-rc.0", - "@angular-devkit/build-webpack": "0.1600.0-rc.0", - "@angular-devkit/core": "16.0.0-rc.0", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/build-webpack": "0.1600.0", + "@angular-devkit/core": "16.0.0", "@babel/core": "7.21.4", "@babel/generator": "7.21.4", "@babel/helper-annotate-as-pure": "7.18.6", @@ -16378,20 +17125,20 @@ "@babel/runtime": "7.21.0", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.0-rc.0", + "@ngtools/webpack": "16.0.0", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.5", - "cacache": "17.0.5", + "cacache": "17.0.6", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild": "0.17.16", - "esbuild-wasm": "0.17.16", + "esbuild": "0.17.18", + "esbuild-wasm": "0.17.18", "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -16408,21 +17155,21 @@ "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "piscina": "3.2.0", - "postcss": "8.4.21", + "postcss": "8.4.23", "postcss-loader": "7.2.4", "resolve-url-loader": "5.0.0", - "rxjs": "7.8.0", - "sass": "1.62.0", + "rxjs": "7.8.1", + "sass": "1.62.1", "sass-loader": "13.2.2", "semver": "7.4.0", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.9", + "terser": "5.17.1", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.5.0", - "vite": "4.2.1", - "webpack": "5.79.0", + "vite": "4.3.1", + "webpack": "5.80.0", "webpack-dev-middleware": "6.0.2", "webpack-dev-server": "4.13.2", "webpack-merge": "5.8.0", @@ -16460,11 +17207,26 @@ } } }, + "@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", + "dev": true, + "peer": true + }, "@vitejs/plugin-basic-ssl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", - "dev": true + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "peer": true }, "brace-expansion": { "version": "2.0.1", @@ -16479,7 +17241,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", - "dev": true + "dev": true, + "requires": {} }, "glob": { "version": "8.1.0", @@ -16524,41 +17287,62 @@ "lru-cache": "^6.0.0" } }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "peer": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, "vite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz", - "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.1.tgz", + "integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==", "dev": true, "requires": { "esbuild": "^0.17.5", "fsevents": "~2.3.2", "postcss": "^8.4.21", - "resolve": "^1.22.1", - "rollup": "^3.18.0" + "rollup": "^3.20.2" } } } }, "@angular-devkit/build-webpack": { - "version": "0.1600.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0-rc.0.tgz", - "integrity": "sha512-rjbu7IOX9x0sUWaeby2UachuwloBGqCMJJAwCdPdD5Ce615NYG5rqkYaVSO4YYGPJ4zRbLb+2iTk/eNkeS+WaA==", + "version": "0.1600.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1600.0.tgz", + "integrity": "sha512-ZlNNMtAzgMCsaN5crkqtgeYxWEyZ78/ePfrJTB3+Hb6LS+hsRf4WAYubHWRWReSx87ppluRrgNZLy0K9ooWy1w==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1600.0-rc.0", - "rxjs": "7.8.0" + "@angular-devkit/architect": "0.1600.0", + "rxjs": "7.8.1" } }, "@angular-devkit/core": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0-rc.0.tgz", - "integrity": "sha512-9VssCo5X9OH3Lg1IqiFpueYtiIzsDS8BQ/QfNCZSOHya2RvvQKjcnIQbCpAawl2sF+GjnA1cp8RLvZ6jSiizHw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.0.tgz", + "integrity": "sha512-YJKvAJlg4/lfP93pQNawlOTQalynWGpoatZU+1aXBgRh5YCTKu2S/A3gtQ71DBuhac76gJe1RpxDoq41kB2KlQ==", "dev": true, "requires": { "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", - "rxjs": "7.8.0", + "rxjs": "7.8.1", "source-map": "0.7.4" }, "dependencies": { @@ -16583,74 +17367,80 @@ } }, "@angular-devkit/schematics": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0-rc.0.tgz", - "integrity": "sha512-X1CLukDZozhxq0EryRQ5ZavIZbVYBPEVvtA22fqKwmCmej/b1PpHE3eTB/zom85AQwhoIO+MsWcq+1aAJLXaGw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.0.tgz", + "integrity": "sha512-9uFOqjOQdhnpxU5mku2LvBkV5Ave2ihHBFaQCH7vQ7DD+p4NpLHu93bMSh+f7k9W7F0lY18g9qrihRgK/7wfuA==", "dev": true, "requires": { - "@angular-devkit/core": "16.0.0-rc.0", + "@angular-devkit/core": "16.0.0", "jsonc-parser": "3.2.0", "magic-string": "0.30.0", "ora": "5.4.1", - "rxjs": "7.8.0" + "rxjs": "7.8.1" } }, "@angular-eslint/builder": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-15.2.1.tgz", - "integrity": "sha512-7x2DANebLRl997Mj4DhZrnz5+vnSjavGGveJ0mBuU7CEsL0ZYLftdRqL0e0HtU3ksseS7xpchD6OM08nkNgySw==", - "dev": true + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.0.1.tgz", + "integrity": "sha512-yjFltV+r3YjisVjASMPmWB/ASz39wdh0q5g0l6/4G+8yaxl6hEYs5o0ZOGeGdTFstCql8FGY+QKwKgsq9Ec4QQ==", + "dev": true, + "requires": { + "@nx/devkit": "16.0.2", + "nx": "16.0.2" + } }, "@angular-eslint/bundled-angular-compiler": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-15.2.1.tgz", - "integrity": "sha512-LO7Am8eVCr7oh6a0VmKSL7K03CnQEQhFO7Wt/YtbfYOxVjrbwmYLwJn+wZPOT7A02t/BttOD/WXuDrOWtSMQ/Q==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-16.0.1.tgz", + "integrity": "sha512-amvTgKHtZoygivW3LAYZ9qjLWsXM7/7eaRvaHdmAEdjyFnYQZ7UbWMPSQNz1mlW/AzTFvk9lGGQORglNOSDnww==", "dev": true }, "@angular-eslint/eslint-plugin": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-15.2.1.tgz", - "integrity": "sha512-OM7b1kS4E4CkXjkaWN+lEzawh4VxY6l7FO1Cuk4s7iv3/YpZG3rJxIZBqnFLTixwrBuqw8y4FNBzF3eDgmFAUw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-16.0.1.tgz", + "integrity": "sha512-CM9keS9cH1QAfSVfsvhw/oGCZcP/D8gfekWwVNjN/uEMEAak0czn1KOG7JQkE36NXOGtwCpTspMi1aa9CVKo9g==", "dev": true, "requires": { - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/utils": "5.59.2" } }, "@angular-eslint/eslint-plugin-template": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-15.2.1.tgz", - "integrity": "sha512-IeiSLk6YxapFdH2z5o/O3R7VwtBd2T6fWmhLFPwDYMDknrwegnOjwswCdBplOccpUp0wqlCeGUx7LTsuzwaz7w==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-16.0.1.tgz", + "integrity": "sha512-1hyfs+Iq7K2x3mDDE4985d8vDcMyknbE9HKHKUtRLfLKC9gnV3N5d4+UeySQ7Rrjvgzkc1g9qHADyuhwRWpDSA==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@angular-eslint/utils": "15.2.1", - "@typescript-eslint/type-utils": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@angular-eslint/utils": "16.0.1", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "aria-query": "5.1.3", "axobject-query": "3.1.1" } }, "@angular-eslint/schematics": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-15.2.1.tgz", - "integrity": "sha512-0ZfBCejHWIcgy3J5kFs9sS/jqi8i5AptxggOwFySOlCLJ+CzNrktjD4jff1Zy8K/VLzY0Ci0BSZXvgWfP0k9Rg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-1oJJEWVbgPkNK1E8rAJfrgxzNWWzJKv3frTHeAm8gvZ7GftYhHjDcrcnxLWrYNxb9+q8Awi0hvGta/4HROmmnA==", "dev": true, "requires": { - "@angular-eslint/eslint-plugin": "15.2.1", - "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/eslint-plugin": "16.0.1", + "@angular-eslint/eslint-plugin-template": "16.0.1", + "@nx/devkit": "16.0.2", "ignore": "5.2.4", + "nx": "16.0.2", "strip-json-comments": "3.1.1", "tmp": "0.2.1" } }, "@angular-eslint/template-parser": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-15.2.1.tgz", - "integrity": "sha512-ViCi79gC2aKJecmYLkOT+QlT5WMRNXeYz0Dr9Pr8qXzIbY0oAWE7nOT5jkXwQ9oUk+ybtGCWHma5JVJWVJsIog==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-16.0.1.tgz", + "integrity": "sha512-x0+SwSeqa3TiVZan6fE5grHsCkjGqU+zAS2DB6wAw5pyvgNAIjrI4cZEQ8pkgHfXe5tuumTKztlkpisah5s/hg==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", + "@angular-eslint/bundled-angular-compiler": "16.0.1", "eslint-scope": "^7.0.0" }, "dependencies": { @@ -16673,33 +17463,33 @@ } }, "@angular-eslint/utils": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-15.2.1.tgz", - "integrity": "sha512-++FneAJHxJqcSu0igVN6uOkSoHxlzgLoMBswuovYJy3UKwm33/T6WFku8++753Ca/JucIoR1gdUfO7SoSspMDg==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-16.0.1.tgz", + "integrity": "sha512-2xnJuhIrMZEYK6UyBym6FaFXZgopIIbqfQ4sAtMWY6zYkCEsVUvx5qKIrsnXAwvpDQrv0WiMXteqi/5ICpVMZQ==", "dev": true, "requires": { - "@angular-eslint/bundled-angular-compiler": "15.2.1", - "@typescript-eslint/utils": "5.48.2" + "@angular-eslint/bundled-angular-compiler": "16.0.1", + "@typescript-eslint/utils": "5.59.2" } }, "@angular/animations": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0-rc.1.tgz", - "integrity": "sha512-R2ZaHS8aFhOlXF7ZD7kVWa5506sm37BJna7OaIvfTu8l0KQ3/4JL8CUo++Ws8fim8Upil5M8f5ubIgkq0Qw5Bw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.0.0.tgz", + "integrity": "sha512-Xx4Ffdo3sweg24MDVAXbDfxqkNPEuRgqOC1+f9171kf+w7cBEr4Bmy37DP7YkJceaU0xJH9imcx4708KeIjqkQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0-rc.0.tgz", - "integrity": "sha512-DbN8IJpLsdP9G3hiLhT1mTLuIo/02Z/a/2cfdW9HAsZAxdwiT5O3ArD+ViS1fhrd1b477WvRKx+whVzBxG0zuw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.0.0.tgz", + "integrity": "sha512-vsveaSJ5kj0MeJCg1nir5iJJEsdrRRnyNeL1awMcyrEjAhBPX3d0gfOP2fe0HR5KJtntX8zvihGus3i48Quo7A==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1600.0-rc.0", - "@angular-devkit/core": "16.0.0-rc.0", - "@angular-devkit/schematics": "16.0.0-rc.0", - "@schematics/angular": "16.0.0-rc.0", + "@angular-devkit/architect": "0.1600.0", + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", + "@schematics/angular": "16.0.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.0.0", @@ -16709,11 +17499,11 @@ "npm-pick-manifest": "8.0.1", "open": "8.4.2", "ora": "5.4.1", - "pacote": "15.1.1", + "pacote": "15.1.3", "resolve": "1.22.2", "semver": "7.4.0", "symbol-observable": "4.0.0", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "dependencies": { "ini": { @@ -16734,25 +17524,25 @@ } }, "@angular/common": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0-rc.1.tgz", - "integrity": "sha512-3Z9wRw0yee2aG64lULf78TQA5kNfLdT+sxflXOLYTdtRATRrxewqV5tgQjfu/NI4MhCTeFvCCO4H6/APCyZ7Pw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.0.0.tgz", + "integrity": "sha512-at3/xCevf2t9swX2P7K7gaSBuQPy7ZJsf37qQkYIuczzfij69r7s9NjYeA74/q3EWG9Yl2DCrhYoCW7ViXQINQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0-rc.1.tgz", - "integrity": "sha512-eLzlN9OlvVUMAjZTCRv8B1SHWWgYe8RAAGLs2+T6A5DhOahG1YFWIQye69quQcyf/iflL0LRCnHZz/qvGp9/3w==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.0.0.tgz", + "integrity": "sha512-xtg+KRvSeB9DUzMDtvlaRGKv+Y0MERsz+JOoqV9H4606ThNz5h8ih6fEhVKYqG100o7GhdJaVFO+vlr2/edUHA==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0-rc.1.tgz", - "integrity": "sha512-q//LQrt4PYksHHOAK1TmLM7X6BRPDrEUHLoQWmFnBjdMS5SXMtdSGwf4YREfbCmOl5his5C1zHqEhj7zG7wJfg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.0.0.tgz", + "integrity": "sha512-oyJzxiTHxziv7mD0QuA7K6tpDoL6YNGPkquKjeJjNVZvUrodGsvJ8xHO4ydmjK3nMu2ET1YarsdI8bRp4vp/7w==", "dev": true, "requires": { "@babel/core": "7.19.3", @@ -16799,56 +17589,56 @@ } }, "@angular/core": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0-rc.1.tgz", - "integrity": "sha512-OBQ48vtkJ21p9GnHsYDyhZRXuxYc+Qlz1gZBioX4HGp9fxpCVHnjWnNhC0bsNLAK7xtpVIi9tt8bwNegGGG7Gw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.0.0.tgz", + "integrity": "sha512-scppDxtXubum6ZiGu3ogmReBtMuA5XXk5FL3YKLb3c9O7q9Z5PC8KNQ6SsaOwEb6oW+0BWXMV698p/zmd0J4tA==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0-rc.1.tgz", - "integrity": "sha512-CrBg9ahxmxTIYUY7IE6Y0ECZugnVVhsjKC3U5Svf5rLsv2reHytRwIcG9hgAUfPd/iXvdYBKCOxi98Gmqpl4IA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.0.0.tgz", + "integrity": "sha512-avpreXyDYWf44RNM5hfi5cTXXiNwcajBURP5rLap8RPMSUi2ePlJsmi0O+3+GduNZFbtnRXIpKTj3W+GeNa0PA==", "requires": { "tslib": "^2.3.0" } }, "@angular/language-service": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0-rc.1.tgz", - "integrity": "sha512-yHIYqrLot/02qAiun/ZuzsYupNDzs++zSlxcLmbRcSD5lRH4SSrdJpd+KFVHnnmLUUbb1JUZeZwA2JKxMJW/dg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.0.0.tgz", + "integrity": "sha512-jySin8NdZIfcvwyemh2kRVveOvL1SPvywmIrv/6+MbKebG9Oc+casxruoRai8gh8bhahdpUAOG0t8wbedUWcxw==", "dev": true }, "@angular/platform-browser": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0-rc.1.tgz", - "integrity": "sha512-SiOsw3LaUDkmIIJcY4cHK2yhh/Ls2laGolHaRnJuLtRT402h6nkVDQWXHFOthvaWCvTFBgm+XLVrXDTZm3Nr5g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.0.0.tgz", + "integrity": "sha512-6LpgLfEnumKMKM/S9joWrVSm4MdFuIjddFmlSG7zGcRqwM0N8doH/YkuwTK8/t9q8wI/yztp6qM2pg25Pgv1XA==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0-rc.1.tgz", - "integrity": "sha512-Zl3f23+s7VWICIwtcn5TlThKOdK6jH7QtTOTO+7sDFJysL+wub6FPuJmlYnapLnSSXAxjvypSGUAP2UUE783bA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.0.0.tgz", + "integrity": "sha512-xUR36r+7hFQjAb0RA0VFfWrCLj2VnWg0xJgPe4FQmwaEWjKMc011tkJXs0PApaiTxvE0W08nadSDTu5jfsBrFw==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-server": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-16.0.0-rc.1.tgz", - "integrity": "sha512-gqJ0EBer21REkFjNxInp3yMXshDxeq+OLuOrourhE3Lxz6+BM6VswiZgswlfWUfsryjdK+RQEQtjGEtWN8wELg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-16.0.0.tgz", + "integrity": "sha512-YztsSNX+PAI9fP9M5Z0tNMyjjNHUd3x8Yp0dKbRgG9pD4max+ctAi3xZi02ubfaD6HN05yXOehi5wFdcBoyegg==", "requires": { "tslib": "^2.3.0", "xhr2": "^0.2.0" } }, "@angular/router": { - "version": "16.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0-rc.1.tgz", - "integrity": "sha512-bVblyK/hhmsb+diP13FHxt8wPzAyL5ANfWh6ruoRDeF91XeIT7r25j6EVP+S35dUYOvqjaBYVvIh8lnLU2Ylpg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.0.0.tgz", + "integrity": "sha512-+5gjJwFx3AFGv7OnY53pfUzaPbWe5gOVQWXAnlUuk6tsQmWJBMehuCQ5ZO5cxViQDZkyvNALzoUeU6aKWmNqmg==", "requires": { "tslib": "^2.3.0" } @@ -17165,8 +17955,7 @@ "@babel/helper-validator-identifier": { "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" }, "@babel/helper-validator-option": { "version": "7.21.0", @@ -17201,7 +17990,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -18031,6 +18819,29 @@ "dev": true, "optional": true }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@cypress/request": { "version": "2.88.10", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", @@ -18093,164 +18904,180 @@ "dev": true }, "@esbuild/android-arm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.16.tgz", - "integrity": "sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz", + "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.16.tgz", - "integrity": "sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz", + "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.16.tgz", - "integrity": "sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz", + "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.16.tgz", - "integrity": "sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz", + "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.16.tgz", - "integrity": "sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz", + "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.16.tgz", - "integrity": "sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz", + "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.16.tgz", - "integrity": "sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz", + "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.16.tgz", - "integrity": "sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz", + "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.16.tgz", - "integrity": "sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz", + "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.16.tgz", - "integrity": "sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz", + "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.16.tgz", - "integrity": "sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz", + "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.16.tgz", - "integrity": "sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz", + "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.16.tgz", - "integrity": "sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz", + "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.16.tgz", - "integrity": "sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz", + "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.16.tgz", - "integrity": "sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz", + "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.16.tgz", - "integrity": "sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz", + "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.16.tgz", - "integrity": "sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz", + "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.16.tgz", - "integrity": "sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz", + "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.16.tgz", - "integrity": "sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz", + "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.16.tgz", - "integrity": "sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz", + "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.16.tgz", - "integrity": "sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz", + "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.16.tgz", - "integrity": "sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz", + "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==", "dev": true, "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + } + } + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -18267,7 +19094,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "requires": { "type-fest": "^0.20.2" } @@ -18275,14 +19101,12 @@ "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" } } }, @@ -18311,7 +19135,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -18321,8 +19144,7 @@ "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "@ionic/angular": { "version": "7.0.2", @@ -18333,16 +19155,6 @@ "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" - }, - "dependencies": { - "ionicons": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", - "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", - "requires": { - "@stencil/core": "^2.18.0" - } - } } }, "@ionic/angular-server": { @@ -18368,20 +19180,70 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/@stencil/core/-/core-3.2.1.tgz", "integrity": "sha512-Ybm4NteQBScLq3H0JML/uqo4nWjNpZw1HAAURtR5LlRm7ptzNKO5S8EnHp3m05/uyTzeh9yLpUFHY7bxGNdYLg==" + } + } + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true }, - "ionicons": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", - "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, "requires": { - "@stencil/core": "^2.18.0" - }, - "dependencies": { - "@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" - } + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" } } } @@ -18469,239 +19331,54 @@ "dev": true }, "@ngtools/webpack": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0-rc.0.tgz", - "integrity": "sha512-5/J7a7hL06YQaRhw3hgJPkdSRWfrW9cbGfDfclA5WYYhsdionhjUdjpbWKicQiaT4f9OhDACFtMURBRsnO4bdg==", - "dev": true + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.0.0.tgz", + "integrity": "sha512-I5zjGtJu2wwIdM+OFUHXezmwTJ0wpParVJgCxR0cLd0CIbpRYSjOSZQN/nR9ZnTKAI5uFZ3MM2p/VRQGUUHUcw==", + "dev": true, + "requires": {} }, "@nguniversal/builders": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-15.1.0.tgz", - "integrity": "sha512-AM+n6yAWXDKP3G4+LdvXLLJWAcSy76RuR7rswVoJ8SQdrqB3Vf/tUc/UVCohp/UZjuQBEGUE0kXWBQH4cdRmmQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/builders/-/builders-16.0.0.tgz", + "integrity": "sha512-a/0F2QgE0SMjmClx72seohzmmz4VVJR3QFpdnHHB4EtDRsJ+DSZmwUoLWsZWdonBgfJ7iTGkG2glpyzSKQDWew==", "dev": true, "requires": { - "@angular-devkit/architect": "~0.1501.0", - "@angular-devkit/core": "~15.1.0", - "@nguniversal/common": "15.1.0", + "@angular-devkit/architect": "~0.1600.0-next.2", + "@angular-devkit/core": "~16.0.0-next.2", + "@nguniversal/common": "16.0.0", "browser-sync": "^2.27.10", "express": "^4.18.2", "guess-parser": "^0.4.22", "http-proxy-middleware": "^2.0.6", "ora": "^5.1.0", "piscina": "~3.2.0", - "rxjs": "^6.5.5", + "rxjs": "^7.0.0", "tree-kill": "^1.2.2" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1501.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.6.tgz", - "integrity": "sha512-u07zZFlfrg0Qn4mu5M9Nz0pH2Yd2028XF/73980PsZMxwkSm4diF08v4bHk3UyR7yPT7phwvt4znj6ryZhx1gw==", - "dev": true, - "requires": { - "@angular-devkit/core": "15.1.6", - "rxjs": "6.6.7" - } - }, - "@angular-devkit/core": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.6.tgz", - "integrity": "sha512-jGgxyRjecVf6lEyqDxz7ltMEndNPxIg720pk6r40fgsu0dU8w9vjJSJe7k0XdJiXVRcN6wZa/J5nO/xcwWVIsA==", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, - "@nguniversal/common": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-15.1.0.tgz", - "integrity": "sha512-NcZByxhO4VELZutuFL6/uvY0/dp7BJ7zu0AGUS1apNF4aAPmW6DjlbrVCPcqLOzrd1cPIOh0HJI3H1J2+dqRsA==", - "dev": true, - "requires": { - "critters": "0.0.16", - "jsdom": "21.0.0", - "tslib": "^2.3.0" - } - }, - "acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "requires": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "jsdom": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.0.0.tgz", - "integrity": "sha512-AIw+3ZakSUtDYvhwPwWHiZsUi3zHugpMEKlNPaurviseYoBqo0zBd3zqoUi3LPCNtPFlEP8FiW9MqCZdjb2IYA==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - } - }, - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - }, - "w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "requires": { - "xml-name-validator": "^4.0.0" - } - } + } + }, + "@nguniversal/common": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-16.0.0.tgz", + "integrity": "sha512-qZ+/vbC8GBB1hCE6rwYOTbkREU/OEsS7jaE71upiwWL2kGP2cAoVo9kx+Ez+j3V2ao9Wg2c+fAEYBkRkQH0bXg==", + "requires": { + "critters": "0.0.16", + "jsdom": "21.1.1", + "tslib": "^2.3.0" } }, "@nguniversal/express-engine": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-15.0.0.tgz", - "integrity": "sha512-tWk2/oMTQo703VsTGpHakm+2BH1bXQbmD43BcYUcmASJDIDmxSBCEY6zwT1TjrYST0keBChJD9jAoKesvSPB/w==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-16.0.0.tgz", + "integrity": "sha512-7e+7StsJMQRtxqcYYKmOm3PsX2hltKUfPq4OGuYeHojblPUfOQpkv/eM9ly1aCiuhr8OEKrsMWUmzN2RjHKEdg==", "requires": { - "@nguniversal/common": "15.0.0", + "@nguniversal/common": "16.0.0", "tslib": "^2.3.0" - }, - "dependencies": { - "@nguniversal/common": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-15.0.0.tgz", - "integrity": "sha512-RSlCSS5HejFoH/T6hpRIkTG1JzYEIxRgxsSxVyyPhGGRS4ouBzy4vEVkuIKwiYgVMBIGljJLelb38IsChTJsRg==", - "requires": { - "critters": "0.0.16", - "jsdom": "20.0.2", - "tslib": "^2.3.0" - } - } } }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -18710,14 +19387,12 @@ "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -18755,9 +19430,9 @@ "dev": true }, "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -18801,9 +19476,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -18812,9 +19487,9 @@ } }, "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.1.tgz", + "integrity": "sha512-Yi04ZSold8jcbBJD/ahKMJSQCQifH8DAbMwkBvoLaTpGFxzHC3B/5ZyoVR69q/4xedz84tvi9DJOJjNe17h+LA==", "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", @@ -18825,9 +19500,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -18835,14 +19510,137 @@ } } }, - "@schematics/angular": { - "version": "16.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0-rc.0.tgz", - "integrity": "sha512-MA3Qg/0nK1YIXDC6q+4x2VIaM+BPhdNYgOLgcUurYZqYfUlf6dK0mzCZzc69/o/g3tGWSaBmaZgSTUMCjCpxgw==", + "@nrwl/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-SAEcImeQHdSTauO05FUn2vVl9/y5Kx1LNCZ4YE+SdY5/QRq18fuo/DCWmjOGG9M8r06vYGsAgMzkiB4soimcyA==", "dev": true, "requires": { - "@angular-devkit/core": "16.0.0-rc.0", - "@angular-devkit/schematics": "16.0.0-rc.0", + "@nx/devkit": "16.0.2" + } + }, + "@nrwl/tao": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.0.2.tgz", + "integrity": "sha512-wimEe4OTpI7/nDK67RnpZpEXCU+fzA0sDgpIhMgbpPd0vPmKgaZv4nbs8zrm0goFlacmmnLaGRhhGYMOxE+1Lg==", + "dev": true, + "requires": { + "nx": "16.0.2" + } + }, + "@nx/devkit": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-BY1Bj0BbAl6XJL0O+QGTWPs/3WMJTEQ+Y4Lfoq4dZM7RllE6rAylr54NA2wa4lsgordZhq1+0g5PVhKKvSVRRw==", + "dev": true, + "requires": { + "@nrwl/devkit": "16.0.2", + "ejs": "^3.1.7", + "ignore": "^5.0.4", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.3.0" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@nx/nx-darwin-arm64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.0.2.tgz", + "integrity": "sha512-nAT8WJ/qKGEvUcoFLHHye1dbwCd7b8CTZJlDF+ZkyCD/UZRHt4eJxy8gvKmxgkZTFb2+PPMQt4UORCUGpZzuoA==", + "dev": true, + "optional": true + }, + "@nx/nx-darwin-x64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.0.2.tgz", + "integrity": "sha512-r0rfOrZaOyrwFR5a0UT05xkYRumfkP65cRSZM1TjCA027AG9llYtkLT1hlz8uMKt+P12zrWVzXSqGLDi022ZZg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm-gnueabihf": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.0.2.tgz", + "integrity": "sha512-TfDQaGvCIDjn9sPg5U1Fr2rsSul/4PIQB59qrLBJRPiCWgpzwO71Il1qwSX68En+JH3lwXr+g5EjcDIEQ8fGYA==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.0.2.tgz", + "integrity": "sha512-MICaUp7uz8WVQFXWPrmQaX1o4bdL7f3C7b3MDDf6+Zau6RcyQuw97UEKaYi9OqrV3w8yuPplqoLosFblAgb8uw==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-arm64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.0.2.tgz", + "integrity": "sha512-wcBURG+6A2srm+6ujj8SShjwmYWs0eHI5D8vgZr8Bni+lXbKP/IosE9JGXKtRoh27/owyR8PGHhDVzjv46tlFg==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.0.2.tgz", + "integrity": "sha512-Xyml2gFdVDHUj2g67DKz2aD78x1BciN1ZaaBTCxXL4MHfwR78SZa7mtRtE+1kj5OgVIwupZP50jq7C8GuSn3Hw==", + "dev": true, + "optional": true + }, + "@nx/nx-linux-x64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.0.2.tgz", + "integrity": "sha512-j3xdN8I5DlTgW5N5eCquyBZswrrYf6EazUCvnEpeejygwh3N6XN7DlD68Bs0CB4Zmd0tWLfTjNVAtUJSP6g2mA==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-arm64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.0.2.tgz", + "integrity": "sha512-R2pzoW3SUFBbe9C1vifJnXuysPl6kmutQHN2yQ9lwJptzPvMxfDU1FuXmKCGRUGmEwFxk/XPhwDL/ZcbABTrzw==", + "dev": true, + "optional": true + }, + "@nx/nx-win32-x64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.0.2.tgz", + "integrity": "sha512-r4H/SsqfpIJa8QLSpnscgkMnLsnkRYXj8TcILDrf+nJazfEdJZLUvVhN9O85OB7pskv86NuGfnJmJHHXy6QVQg==", + "dev": true, + "optional": true + }, + "@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "requires": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, + "@schematics/angular": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.0.0.tgz", + "integrity": "sha512-Ao1Y0hEDa30JjWDLnUfOsD+9nnfdBFclfKFzR+7pvvFYCpSUhH1u+8e+7noruIxlP26+SpqPn3AF5+IRTGza8w==", + "dev": true, + "requires": { + "@angular-devkit/core": "16.0.0", + "@angular-devkit/schematics": "16.0.0", "jsonc-parser": "3.2.0" } }, @@ -18889,6 +19687,34 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true, + "peer": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "peer": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "peer": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true, + "peer": true + }, "@tufjs/canonical-json": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", @@ -18896,13 +19722,13 @@ "dev": true }, "@tufjs/models": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.2.tgz", - "integrity": "sha512-uxarDtxTIK3f8hJS4yFhW/lvTa3tsiQU5iDCRut+NCnOXvNtEul0Ct58NIIcIx9Rkt7OFEK31Ndpqsd663nsew==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "requires": { "@tufjs/canonical-json": "1.0.0", - "minimatch": "^8.0.3" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -18915,9 +19741,9 @@ } }, "minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -18960,9 +19786,9 @@ } }, "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "requires": { "@types/express-serve-static-core": "*", @@ -19196,7 +20022,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.2.tgz", "integrity": "sha512-Q0gSCN51eikAgFGY+gnd5p9bhhCUAl0ERMiDKrTzpSoMYRubdB8MJrTTR/BBii8z+iFwz8oihxd0RAdP4l8w8w==", - "dev": true, "requires": { "@typescript-eslint/scope-manager": "4.28.2", "@typescript-eslint/types": "4.28.2", @@ -19207,14 +20032,12 @@ "@typescript-eslint/types": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", - "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==" }, "@typescript-eslint/typescript-estree": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz", "integrity": "sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg==", - "dev": true, "requires": { "@typescript-eslint/types": "4.28.2", "@typescript-eslint/visitor-keys": "4.28.2", @@ -19231,7 +20054,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz", "integrity": "sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A==", - "dev": true, "requires": { "@typescript-eslint/types": "4.28.2", "@typescript-eslint/visitor-keys": "4.28.2" @@ -19240,37 +20062,36 @@ "@typescript-eslint/types": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", - "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==" } } }, "@typescript-eslint/type-utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.48.2", - "@typescript-eslint/utils": "5.48.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -19279,63 +20100,63 @@ }, "dependencies": { "@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true } } }, "@typescript-eslint/utils": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.2", - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "dependencies": { "@typescript-eslint/scope-manager": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", - "@typescript-eslint/visitor-keys": "5.48.2" + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" } }, "@typescript-eslint/visitor-keys": { - "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true } } @@ -19344,7 +20165,6 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz", "integrity": "sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w==", - "dev": true, "requires": { "@typescript-eslint/types": "4.28.2", "eslint-visitor-keys": "^2.0.0" @@ -19353,154 +20173,153 @@ "@typescript-eslint/types": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.2.tgz", - "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==", - "dev": true + "integrity": "sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA==" } } }, "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz", + "integrity": "sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz", + "integrity": "sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz", + "integrity": "sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz", + "integrity": "sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz", + "integrity": "sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz", + "integrity": "sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz", + "integrity": "sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz", + "integrity": "sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz", + "integrity": "sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz", + "integrity": "sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz", + "integrity": "sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/helper-wasm-section": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-opt": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5", + "@webassemblyjs/wast-printer": "1.11.5" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz", + "integrity": "sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz", + "integrity": "sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-buffer": "1.11.5", + "@webassemblyjs/wasm-gen": "1.11.5", + "@webassemblyjs/wasm-parser": "1.11.5" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz", + "integrity": "sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.5", + "@webassemblyjs/helper-api-error": "1.11.5", + "@webassemblyjs/helper-wasm-bytecode": "1.11.5", + "@webassemblyjs/ieee754": "1.11.5", + "@webassemblyjs/leb128": "1.11.5", + "@webassemblyjs/utf8": "1.11.5" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz", + "integrity": "sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.5", "@xtuc/long": "4.2.2" } }, @@ -19508,7 +20327,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true + "dev": true, + "requires": {} }, "@webpack-cli/info": { "version": "1.4.1", @@ -19523,7 +20343,8 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true + "dev": true, + "requires": {} }, "@wessberg/ts-evaluator": { "version": "0.0.27", @@ -19763,7 +20584,8 @@ "version": "7.5.8", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true + "dev": true, + "requires": {} }, "xml-name-validator": { "version": "3.0.0", @@ -19791,6 +20613,33 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "@yarnpkg/parsers": { + "version": "3.0.0-rc.43", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.43.tgz", + "integrity": "sha512-AhFF3mIDfA+jEwQv2WMHmiYhOvmdbh2qhUkDVQfiqzQtUwS4BgoWwom5NpSPg4Ix5vOul+w1690Bt21CkVLpgg==", + "dev": true, + "requires": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + } + }, + "@zkochan/js-yaml": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + } + } + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -19838,13 +20687,14 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "requires": {} }, "acorn-walk": { "version": "7.2.0", @@ -19916,7 +20766,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19957,13 +20806,13 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, "ansi-escapes": { "version": "4.3.2", @@ -19983,14 +20832,12 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -20050,7 +20897,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -20072,8 +20918,7 @@ "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "asn1": { "version": "0.2.6", @@ -20093,8 +20938,7 @@ "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, "async": { "version": "3.2.4", @@ -20233,8 +21077,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", @@ -20382,7 +21225,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -20392,7 +21234,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -20580,16 +21421,16 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cacache": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.5.tgz", - "integrity": "sha512-Y/PRQevNSsjAPWykl9aeGz8Pr+OI6BYM9fYDNMvOkuUiG9IhG4LEmaYrZZZvioMUEQ+cBCxT0v8wrnCURccyKA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.6.tgz", + "integrity": "sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^9.3.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -20610,15 +21451,16 @@ } }, "glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "lru-cache": { @@ -20628,9 +21470,9 @@ "dev": true }, "minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -20656,8 +21498,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "5.3.1", @@ -20681,7 +21522,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -20813,7 +21653,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -20821,8 +21660,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "color-support": { "version": "1.1.3", @@ -20918,8 +21756,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "concurrently": { "version": "6.5.1", @@ -21227,6 +22064,13 @@ } } }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "peer": true + }, "critters": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", @@ -21289,7 +22133,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -21335,15 +22178,11 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" - }, "cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, "requires": { "cssom": "~0.3.6" }, @@ -21351,7 +22190,8 @@ "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true } } }, @@ -21483,13 +22323,13 @@ } }, "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "requires": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-url": "^12.0.0" } }, "date-fns": { @@ -21513,9 +22353,9 @@ } }, "decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "deep-equal": { "version": "2.1.0", @@ -21661,7 +22501,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "requires": { "path-type": "^4.0.0" } @@ -21679,9 +22518,9 @@ "dev": true }, "dns-packet": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.5.0.tgz", - "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -21691,7 +22530,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "requires": { "esutils": "^2.0.2" } @@ -21737,6 +22575,24 @@ "domhandler": "^4.2.0" } }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", @@ -21770,6 +22626,15 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, "electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", @@ -21779,8 +22644,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "emojis-list": { "version": "3.0.0", @@ -21852,7 +22716,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -21873,7 +22738,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -21898,7 +22764,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, "requires": { "ansi-colors": "^4.1.1" } @@ -21975,39 +22840,39 @@ "dev": true }, "esbuild": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.16.tgz", - "integrity": "sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", + "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", "dev": true, "requires": { - "@esbuild/android-arm": "0.17.16", - "@esbuild/android-arm64": "0.17.16", - "@esbuild/android-x64": "0.17.16", - "@esbuild/darwin-arm64": "0.17.16", - "@esbuild/darwin-x64": "0.17.16", - "@esbuild/freebsd-arm64": "0.17.16", - "@esbuild/freebsd-x64": "0.17.16", - "@esbuild/linux-arm": "0.17.16", - "@esbuild/linux-arm64": "0.17.16", - "@esbuild/linux-ia32": "0.17.16", - "@esbuild/linux-loong64": "0.17.16", - "@esbuild/linux-mips64el": "0.17.16", - "@esbuild/linux-ppc64": "0.17.16", - "@esbuild/linux-riscv64": "0.17.16", - "@esbuild/linux-s390x": "0.17.16", - "@esbuild/linux-x64": "0.17.16", - "@esbuild/netbsd-x64": "0.17.16", - "@esbuild/openbsd-x64": "0.17.16", - "@esbuild/sunos-x64": "0.17.16", - "@esbuild/win32-arm64": "0.17.16", - "@esbuild/win32-ia32": "0.17.16", - "@esbuild/win32-x64": "0.17.16" + "@esbuild/android-arm": "0.17.18", + "@esbuild/android-arm64": "0.17.18", + "@esbuild/android-x64": "0.17.18", + "@esbuild/darwin-arm64": "0.17.18", + "@esbuild/darwin-x64": "0.17.18", + "@esbuild/freebsd-arm64": "0.17.18", + "@esbuild/freebsd-x64": "0.17.18", + "@esbuild/linux-arm": "0.17.18", + "@esbuild/linux-arm64": "0.17.18", + "@esbuild/linux-ia32": "0.17.18", + "@esbuild/linux-loong64": "0.17.18", + "@esbuild/linux-mips64el": "0.17.18", + "@esbuild/linux-ppc64": "0.17.18", + "@esbuild/linux-riscv64": "0.17.18", + "@esbuild/linux-s390x": "0.17.18", + "@esbuild/linux-x64": "0.17.18", + "@esbuild/netbsd-x64": "0.17.18", + "@esbuild/openbsd-x64": "0.17.18", + "@esbuild/sunos-x64": "0.17.18", + "@esbuild/win32-arm64": "0.17.18", + "@esbuild/win32-ia32": "0.17.18", + "@esbuild/win32-x64": "0.17.18" } }, "esbuild-wasm": { - "version": "0.17.16", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.16.tgz", - "integrity": "sha512-o5DNFwnYThm9LXYIEoZEnJrk7cI08GwVjHKMUHDFSN8vo0y8eKdEOAgNH3rSoBK/8E34PeKr1UO0liEBIH/GFQ==", + "version": "0.17.18", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.18.tgz", + "integrity": "sha512-h4m5zVa+KaDuRFIbH9dokMwovvkIjTQJS7/Ry+0Z1paVuS9aIkso2vdA2GmwH9GSvGX6w71WveJ3PfkoLuWaRw==", "dev": true }, "escalade": { @@ -22024,8 +22889,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "escodegen": { "version": "2.0.0", @@ -22091,7 +22955,6 @@ "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -22139,7 +23002,6 @@ "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, "requires": { "@babel/highlight": "^7.10.4" } @@ -22148,7 +23010,6 @@ "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" } @@ -22157,7 +23018,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -22167,7 +23027,6 @@ "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" } @@ -22175,20 +23034,17 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" }, @@ -22196,8 +23052,7 @@ "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" } } }, @@ -22205,7 +23060,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "requires": { "type-fest": "^0.20.2" } @@ -22213,20 +23067,17 @@ "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 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "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" } @@ -22234,8 +23085,7 @@ "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" } } }, @@ -22243,7 +23093,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -22261,14 +23110,12 @@ "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -22278,14 +23125,12 @@ "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" } } }, @@ -22298,7 +23143,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "requires": { "estraverse": "^5.1.0" }, @@ -22306,8 +23150,7 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, @@ -22315,7 +23158,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "requires": { "estraverse": "^5.2.0" }, @@ -22323,16 +23165,14 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { "version": "2.0.3", @@ -22561,14 +23401,12 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -22580,8 +23418,7 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -22598,7 +23435,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, "requires": { "reusify": "^1.0.4" } @@ -22634,16 +23470,43 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "requires": { "flat-cache": "^3.0.4" } }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -22716,11 +23579,16 @@ "path-exists": "^4.0.0" } }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -22729,8 +23597,7 @@ "flatted": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" }, "follow-redirects": { "version": "1.15.1", @@ -22747,6 +23614,24 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true + } + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -22780,6 +23665,12 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -22793,12 +23684,12 @@ } }, "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "fs-monkey": { @@ -22810,8 +23701,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -22828,8 +23718,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" }, "functions-have-names": { "version": "1.2.3", @@ -22912,7 +23801,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -22926,7 +23814,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -22956,7 +23843,6 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -23030,8 +23916,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { "version": "1.0.0", @@ -23233,7 +24118,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -23244,16 +24130,15 @@ "ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" }, "ignore-walk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.2.tgz", - "integrity": "sha512-ezmQ1Dg2b3jVZh2Dh+ar6Eu2MqNSTkyb32HU2MAQQQX9tKM3q/UQ/9lf03lQ5hW+fOeoMnwxwkleZ0xcNp0/qg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "requires": { - "minimatch": "^7.4.2" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -23266,9 +24151,9 @@ } }, "minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -23293,7 +24178,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -23302,8 +24186,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" } } }, @@ -23320,8 +24203,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "infer-owner": { "version": "1.0.4", @@ -23333,7 +24215,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -23431,9 +24312,9 @@ "dev": true }, "ionicons": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.0.4.tgz", - "integrity": "sha512-uDNOkBo0OVYV+kIhb51g9mb7r3Z0b+78GPZQBsjXuaetNmrB/mNTqN/uFtO+vxL/rQySKjzk8qeKJI5NWL9Ueg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.1.0.tgz", + "integrity": "sha512-iE4GuEdEHARJpp0sWL7WJZCzNCf5VxpNRhAjW0fLnZPnNL5qZOJUcfup2Z2Ty7Jk8Q5hacrHfGEB1lCwOdXqGg==", "requires": { "@stencil/core": "^2.18.0" } @@ -23535,20 +24416,17 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -23584,8 +24462,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-like": { "version": "1.0.8", @@ -23736,8 +24613,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", @@ -23778,6 +24654,79 @@ } } }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -23822,14 +24771,12 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -23842,17 +24789,16 @@ "dev": true }, "jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.1.tgz", + "integrity": "sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==", "requires": { "abab": "^2.0.6", - "acorn": "^8.8.0", + "acorn": "^8.8.2", "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", @@ -23861,16 +24807,17 @@ "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", + "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", "xml-name-validator": "^4.0.0" }, "dependencies": { @@ -23888,6 +24835,14 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" }, + "cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "requires": { + "rrweb-cssom": "^0.6.0" + } + }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -23958,14 +24913,12 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "json-stringify-safe": { "version": "5.0.1", @@ -24114,7 +25067,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -24243,8 +25195,7 @@ "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "lodash.once": { "version": "4.1.1", @@ -24255,8 +25206,7 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" }, "log-symbols": { "version": "4.1.0", @@ -24383,7 +25333,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -24602,8 +25551,7 @@ "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -24614,7 +25562,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -24663,7 +25610,6 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -24675,9 +25621,9 @@ "dev": true }, "minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true }, "minipass-collect": { @@ -24865,15 +25811,14 @@ "dev": true }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "needle": { "version": "3.1.0", @@ -24935,8 +25880,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true + "dev": true }, "node-forge": { "version": "1.3.1", @@ -24966,8 +25910,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "optional": true + "dev": true }, "node-releases": { "version": "2.0.10", @@ -25027,9 +25970,9 @@ } }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true }, "npm-package-arg": { @@ -25066,13 +26009,13 @@ } }, "npm-registry-fetch": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.4.tgz", - "integrity": "sha512-pMS2DRkwg+M44ct65zrN/Cr9IHK1+n6weuefAo6Er4lc+/8YBCU0Czq04H3ZiSigluh7pb2rMM5JpgcytctB+Q==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -25087,9 +26030,9 @@ "dev": true }, "make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -25099,7 +26042,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -25110,13 +26053,13 @@ } }, "minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -25157,6 +26100,204 @@ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" }, + "nx": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.0.2.tgz", + "integrity": "sha512-8Z9Bo1D2VbYjyC/F2ONensKjm10snz1UfkzURZiFA+oXikBPldiH1u67TOTpoCYZfyYQg4l6h6EpOaAvHF6Abg==", + "dev": true, + "requires": { + "@nrwl/tao": "16.0.2", + "@nx/nx-darwin-arm64": "16.0.2", + "@nx/nx-darwin-x64": "16.0.2", + "@nx/nx-linux-arm-gnueabihf": "16.0.2", + "@nx/nx-linux-arm64-gnu": "16.0.2", + "@nx/nx-linux-arm64-musl": "16.0.2", + "@nx/nx-linux-x64-gnu": "16.0.2", + "@nx/nx-linux-x64-musl": "16.0.2", + "@nx/nx-win32-arm64-msvc": "16.0.2", + "@nx/nx-win32-x64-msvc": "16.0.2", + "@parcel/watcher": "2.0.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^3.0.0-rc.18", + "@zkochan/js-yaml": "0.0.6", + "axios": "^1.0.0", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^11.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.2.0", + "lines-and-columns": "~2.0.3", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "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" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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 + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + } + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -25226,7 +26367,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } @@ -25278,7 +26418,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -25420,9 +26559,9 @@ "dev": true }, "pacote": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.1.tgz", - "integrity": "sha512-eeqEe77QrA6auZxNHIp+1TzHQ0HBKf5V6c8zcaYZ134EJe1lCi+fjXATkNiEEfbG+e50nu02GLvUtmZcGOYabQ==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.3.tgz", + "integrity": "sha512-aRts8cZqxiJVDitmAh+3z+FxuO3tLNWEmwDRPEpDDiZJaRz06clP4XX112ynMT5uF0QNoMPajBBHnaStUEPJXA==", "dev": true, "requires": { "@npmcli/git": "^4.0.0", @@ -25431,7 +26570,7 @@ "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", "fs-minipass": "^3.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -25440,7 +26579,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^1.0.0", + "sigstore": "^1.3.0", "ssri": "^10.0.0", "tar": "^6.1.11" } @@ -25455,7 +26594,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -25559,14 +26697,12 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -25575,9 +26711,9 @@ "dev": true }, "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "requires": { "lru-cache": "^9.0.0", @@ -25585,15 +26721,9 @@ }, "dependencies": { "lru-cache": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.2.tgz", - "integrity": "sha512-7zYMKApzQ9qQE13xQUzbXVY3p2C5lh+9V+bs8M9fRf1TF59id+8jkljRWtIPfBfNP4yQAol5cqh/e8clxatdXw==", - "dev": true - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "dev": true } } @@ -25606,8 +26736,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pend": { "version": "1.2.0", @@ -25629,8 +26758,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "2.3.0", @@ -25681,11 +26809,11 @@ } }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -25694,7 +26822,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -25744,8 +26873,7 @@ "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, "pretty-bytes": { "version": "5.6.0", @@ -25767,8 +26895,7 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -25823,9 +26950,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "qs": { "version": "6.2.3", @@ -25841,8 +26968,7 @@ "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 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "randombytes": { "version": "2.1.0", @@ -25870,12 +26996,12 @@ } }, "read-package-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.1.tgz", - "integrity": "sha512-AaHqXxfAVa+fNL07x8iAghfKOds/XXsu7zoouIVsbm7PEbQ3nMWXlvjcbrNLjElnUHWQtAo4QEa0RXuvD4XlpA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "requires": { - "glob": "^9.3.0", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -25891,15 +27017,16 @@ } }, "glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.2.tgz", + "integrity": "sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "json-parse-even-better-errors": { @@ -25909,9 +27036,9 @@ "dev": true }, "minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -26026,8 +27153,7 @@ "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" }, "regexpu-core": { "version": "5.3.2", @@ -26078,8 +27204,7 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, "requires-port": { "version": "1.0.0", @@ -26190,8 +27315,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rfdc": { "version": "1.3.0", @@ -26203,7 +27327,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -26217,6 +27340,11 @@ "fsevents": "~2.3.2" } }, + "rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -26227,7 +27355,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "requires": { "queue-microtask": "^1.2.2" } @@ -26239,9 +27366,9 @@ "dev": true }, "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "requires": { "tslib": "^2.1.0" } @@ -26258,9 +27385,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz", - "integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -26362,7 +27489,6 @@ "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -26581,7 +27707,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -26589,8 +27714,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shell-quote": { "version": "1.8.1", @@ -26615,14 +27739,14 @@ "dev": true }, "sigstore": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.2.0.tgz", - "integrity": "sha512-Fr9+W1nkBSIZCkJQR7jDn/zI0UXNsVpp+7mDQkCnZOIxG9p6yNXBx9xntHsfUyYHE55XDkkVV3+rYbrkzAeesA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.4.0.tgz", + "integrity": "sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==", "dev": true, "requires": { "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "dependencies": { "lru-cache": { @@ -26632,9 +27756,9 @@ "dev": true }, "make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -26644,7 +27768,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -26655,13 +27779,13 @@ } }, "minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -26671,8 +27795,7 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { "version": "3.0.0", @@ -26936,8 +28059,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "sshpk": { "version": "1.17.0", @@ -26957,12 +28079,12 @@ } }, "ssri": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.3.tgz", - "integrity": "sha512-lJtX/BFPI/VEtxZmLfeh7pzisIs6micwZ3eruD3+ds9aPsXKlYpwDS2Q7omD6WC42WO9+bnUSzlMmfv8uK8meg==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "statuses": { @@ -27001,6 +28123,16 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -27012,11 +28144,25 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -27026,14 +28172,23 @@ "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -27059,7 +28214,6 @@ "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -27072,7 +28226,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -27084,7 +28237,6 @@ "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" } @@ -27093,7 +28245,6 @@ "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" } @@ -27101,20 +28252,17 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "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": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -27130,14 +28278,14 @@ "dev": true }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -27165,10 +28313,36 @@ } } }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -27225,8 +28399,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "tfunk": { "version": "4.0.0", @@ -27317,7 +28490,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -27338,11 +28510,11 @@ } }, "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "requires": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" } }, "tree-kill": { @@ -27405,6 +28577,17 @@ "yn": "3.1.1" } }, + "tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "requires": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -27414,7 +28597,6 @@ "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, "requires": { "tslib": "^1.8.1" }, @@ -27422,19 +28604,18 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "tuf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.3.tgz", - "integrity": "sha512-jGYi5nG/kqgfTFQSdoN6PW9eIn+XRZqdXku+fSwNk6UpWIsWaV7pzAqPgFr85edOPhoyJDyBqCS+DCnHroMvrw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.5.tgz", + "integrity": "sha512-inqodgxdsmuxrtQVbu6tPNgRKWD1Boy3VB6GO7KczJZpAHiTukwhSzXUSzvDcw5pE2Jo8ua+e1ykpHv7VdPVlQ==", "dev": true, "requires": { - "@tufjs/models": "1.0.2", - "make-fetch-happen": "^11.0.1" + "@tufjs/models": "1.0.4", + "make-fetch-happen": "^11.1.0" }, "dependencies": { "lru-cache": { @@ -27444,9 +28625,9 @@ "dev": true }, "make-fetch-happen": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.0.tgz", - "integrity": "sha512-7ChuOzCb1LzdQZrTy0ky6RsCoMYeM+Fh4cY0+4zsJVhNcH5Q3OJojLY1mGkD0xAhWB29lskECVb6ZopofwjldA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -27456,7 +28637,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -27467,13 +28648,13 @@ } }, "minipass-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.2.tgz", - "integrity": "sha512-/ZpF1CQaWYqjbhfFgKNt3azxztEpc/JUPuMkqOgrnMQqcU8CbE409AUdJYTIWryl3PP5CBaTJZT71N49MXP/YA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -27499,7 +28680,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "requires": { "prelude-ls": "^1.2.1" } @@ -27528,13 +28708,13 @@ "typescript": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "dev": true + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" }, "typescript-eslint-language-service": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/typescript-eslint-language-service/-/typescript-eslint-language-service-4.1.5.tgz", - "integrity": "sha512-lJ9tH53m8e8fYYwhG5hTpiUHCz4SjY55rT8T4ADrmF/29JPdWkUik8cbZy+KsCsUIG1CEMRz+DOV4S+wVyYivQ==" + "integrity": "sha512-lJ9tH53m8e8fYYwhG5hTpiUHCz4SjY55rT8T4ADrmF/29JPdWkUik8cbZy+KsCsUIG1CEMRz+DOV4S+wVyYivQ==", + "requires": {} }, "ua-parser-js": { "version": "1.0.2", @@ -27619,7 +28799,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -27653,8 +28832,14 @@ "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "peer": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -27709,9 +28894,9 @@ } }, "w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "requires": { "xml-name-validator": "^4.0.0" } @@ -27780,21 +28965,21 @@ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" }, "webpack": { - "version": "5.79.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", - "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", + "version": "5.80.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz", + "integrity": "sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.13.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -27804,7 +28989,7 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.1.2", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", @@ -27812,9 +28997,9 @@ }, "dependencies": { "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -27822,9 +29007,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -28041,11 +29226,11 @@ "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" }, "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "requires": { - "tr46": "^3.0.0", + "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" } }, @@ -28053,7 +29238,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -28154,16 +29338,53 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@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" + }, + "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 + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==" + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} }, "xhr2": { "version": "0.2.1", @@ -28195,13 +29416,12 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -28223,15 +29443,15 @@ "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true } } }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/angular/test/apps/ng16/package.json b/angular/test/apps/ng16/package.json index 2796de155d..dc108ed7c4 100644 --- a/angular/test/apps/ng16/package.json +++ b/angular/test/apps/ng16/package.json @@ -19,37 +19,37 @@ "test.watch": "concurrently \"npm run start\" \"wait-on http-get://localhost:4200 && npm run cy.open\" --kill-others --success first" }, "dependencies": { - "@angular/animations": "^16.0.0-rc.0", - "@angular/common": "^16.0.0-rc.0", - "@angular/compiler": "^16.0.0-rc.0", - "@angular/core": "^16.0.0-rc.0", - "@angular/forms": "^16.0.0-rc.0", - "@angular/platform-browser": "^16.0.0-rc.0", - "@angular/platform-browser-dynamic": "^16.0.0-rc.0", - "@angular/platform-server": "^16.0.0-rc.0", - "@angular/router": "^16.0.0-rc.0", + "@angular/animations": "^16.0.0", + "@angular/common": "^16.0.0", + "@angular/compiler": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "@angular/platform-browser": "^16.0.0", + "@angular/platform-browser-dynamic": "^16.0.0", + "@angular/platform-server": "^16.0.0", + "@angular/router": "^16.0.0", "@ionic/angular": "^7.0.0", "@ionic/angular-server": "^7.0.0", - "@nguniversal/express-engine": "^15.0.0", + "@nguniversal/express-engine": "^16.0.0", "core-js": "^2.6.11", "express": "^4.15.2", - "ionicons": "^6.0.4", + "ionicons": "^7.0.4", "rxjs": "~7.8.0", "tslib": "^2.3.0", "typescript-eslint-language-service": "^4.1.5", "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.0.0-rc.0", - "@angular-eslint/builder": "^15.0.0", - "@angular-eslint/eslint-plugin": "^15.0.0", - "@angular-eslint/eslint-plugin-template": "^15.0.0", - "@angular-eslint/schematics": "^15.0.0", - "@angular-eslint/template-parser": "^15.0.0", - "@angular/cli": "^16.0.0-rc.0", - "@angular/compiler-cli": "^16.0.0-rc.0", - "@angular/language-service": "^16.0.0-rc.0", - "@nguniversal/builders": "^15.0.0", + "@angular-devkit/build-angular": "^16.0.0", + "@angular-eslint/builder": "^16.0.0", + "@angular-eslint/eslint-plugin": "^16.0.0", + "@angular-eslint/eslint-plugin-template": "^16.0.0", + "@angular-eslint/schematics": "^16.0.0", + "@angular-eslint/template-parser": "^16.0.0", + "@angular/cli": "^16.0.0", + "@angular/compiler-cli": "^16.0.0", + "@angular/language-service": "^16.0.0", + "@nguniversal/builders": "^16.0.0", "@types/express": "^4.17.7", "@types/node": "^12.12.54", "@typescript-eslint/eslint-plugin": "4.28.2", diff --git a/angular/test/base/e2e/src/modal.spec.ts b/angular/test/base/e2e/src/modal.spec.ts index 049b83020f..153da005ad 100644 --- a/angular/test/base/e2e/src/modal.spec.ts +++ b/angular/test/base/e2e/src/modal.spec.ts @@ -121,4 +121,4 @@ describe('when in a modal', () => { cy.get('#set-to-null').click(); cy.get('#inputWithFloatingLabel').should('not.have.class', 'item-has-value'); }); -}); +}); \ No newline at end of file diff --git a/angular/test/base/scripts/sync.sh b/angular/test/base/scripts/sync.sh index f41e5b09b6..9be3c4b76d 100644 --- a/angular/test/base/scripts/sync.sh +++ b/angular/test/base/scripts/sync.sh @@ -15,7 +15,7 @@ npm pack ../../../dist npm pack ../../../../packages/angular-server/dist # Install Dependencies -npm install *.tgz --no-save --legacy-peer-deps +npm install *.tgz --no-save # Delete Angular cache directory rm -rf .angular/ diff --git a/angular/test/base/src/app/modal-inline/modal-inline.component.html b/angular/test/base/src/app/modal-inline/modal-inline.component.html index b11f288cd7..2d14d2e545 100644 --- a/angular/test/base/src/app/modal-inline/modal-inline.component.html +++ b/angular/test/base/src/app/modal-inline/modal-inline.component.html @@ -17,4 +17,4 @@ - + \ No newline at end of file diff --git a/angular/test/base/src/app/modal-inline/modal-inline.component.ts b/angular/test/base/src/app/modal-inline/modal-inline.component.ts index 8ba5878bfc..b695291f10 100644 --- a/angular/test/base/src/app/modal-inline/modal-inline.component.ts +++ b/angular/test/base/src/app/modal-inline/modal-inline.component.ts @@ -24,4 +24,5 @@ export class ModalInlineComponent implements AfterViewInit { onBreakpointDidChange() { this.breakpointDidChangeCounter++; } + } diff --git a/core/README.md b/core/README.md index 2cc88b2a5d..c16910c4d0 100644 --- a/core/README.md +++ b/core/README.md @@ -40,7 +40,7 @@ The `@ionic/core` package can be used in simple HTML, or by vanilla JavaScript w * [@ionic/angular](https://www.npmjs.com/package/@ionic/angular) -## Custom Elements Build (Experimental) +## Custom Elements Build In addition to the default, self lazy-loading components built by Stencil, this package also comes with each component exported as a stand-alone custom element within `@ionic/core/components`. Each component extends `HTMLElement`, and does not lazy-load itself. Instead, this package is useful for projects already using a bundler such as Webpack or Rollup. While all components are available to be imported, the custom elements build also ensures bundlers only import what's used, and tree-shakes any unused components. diff --git a/core/src/components/action-sheet/action-sheet.tsx b/core/src/components/action-sheet/action-sheet.tsx index b8b9826d50..f0b5a779ad 100644 --- a/core/src/components/action-sheet/action-sheet.tsx +++ b/core/src/components/action-sheet/action-sheet.tsx @@ -12,6 +12,7 @@ import { prepareOverlay, present, safeCall, + setOverlayId } from '@utils/overlays'; import { getClassMap } from '@utils/theme'; @@ -311,6 +312,10 @@ export class ActionSheet implements ComponentInterface, OverlayInterface { this.triggerController.removeClickListener(); } + componentWillLoad() { + setOverlayId(this.el); + } + componentDidLoad() { /** * Do not create gesture if: diff --git a/core/src/components/action-sheet/test/action-sheet-id.spec.ts b/core/src/components/action-sheet/test/action-sheet-id.spec.ts new file mode 100644 index 0000000000..e5503b7eb1 --- /dev/null +++ b/core/src/components/action-sheet/test/action-sheet-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { ActionSheet } from '../action-sheet'; + +it('action sheet should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [ActionSheet], + html: ``, + }); + let actionSheet: HTMLIonActionSheetElement; + + actionSheet = page.body.querySelector('ion-action-sheet')!; + + expect(actionSheet).not.toBe(null); + expect(actionSheet.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the action sheet from the DOM + actionSheet.remove(); + await page.waitForChanges(); + + // Create a new action sheet to verify the id is incremented + actionSheet = document.createElement('ion-action-sheet'); + actionSheet.isOpen = true; + page.body.appendChild(actionSheet); + await page.waitForChanges(); + + actionSheet = page.body.querySelector('ion-action-sheet')!; + + expect(actionSheet.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same action sheet again should reuse the existing id + + actionSheet.isOpen = false; + await page.waitForChanges(); + actionSheet.isOpen = true; + await page.waitForChanges(); + + actionSheet = page.body.querySelector('ion-action-sheet')!; + + expect(actionSheet.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts b/core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts new file mode 100644 index 0000000000..005184f927 --- /dev/null +++ b/core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts @@ -0,0 +1,42 @@ +import { configs, test } from '@utils/test/playwright'; + +import { ActionSheetFixture } from './fixture'; + +configs().forEach(({ config, screenshot, title }) => { + test.describe(title('action sheet: variant rendering'), () => { + let actionSheetFixture!: ActionSheetFixture; + test.beforeEach(async ({ page }) => { + actionSheetFixture = new ActionSheetFixture(page, screenshot); + + await page.goto(`/src/components/action-sheet/test/basic`, config); + }); + 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'); + }); + }); +}); 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-ios-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-basic-diff-md-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-ios-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-cancel-only-diff-md-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-ios-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-custom-diff-md-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-ios-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scroll-without-cancel-diff-md-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-ios-rtl-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-ltr-Mobile-Safari-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Chrome-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Firefox-linux.png 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-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/action-sheet/test/basic/action-sheet.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/action-sheet/test/basic/action-sheet-rendering.e2e.ts-snapshots/action-sheet-scrollable-options-diff-md-rtl-Mobile-Safari-linux.png 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 index 92f716f330..2483a0b8f4 100644 --- a/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts +++ b/core/src/components/action-sheet/test/basic/action-sheet.e2e.ts @@ -1,9 +1,12 @@ import { expect } from '@playwright/test'; -import type { Locator } from '@playwright/test'; import { configs, test } from '@utils/test/playwright'; -import type { E2EPage } from '@utils/test/playwright'; -configs({ directions: ['ltr'] }).forEach(({ config, title }) => { +import { ActionSheetFixture } from './fixture'; + +/** + * This behavior does not vary across modes/directions + */ +configs({ mode: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => { test.describe(title('action sheet: data'), () => { let actionSheetFixture!: ActionSheetFixture; test.beforeEach(async ({ page }) => { @@ -35,58 +38,11 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => { }); }); }); -configs({ directions: ['ltr'] }).forEach(({ config, title }) => { - test.describe(title('action sheet: attributes'), () => { - test('should set htmlAttributes', async ({ page }) => { - await page.goto(`/src/components/action-sheet/test/basic`, config); - const actionSheetFixture = new ActionSheetFixture(page); - await actionSheetFixture.open('#basic'); - - const actionSheet = page.locator('ion-action-sheet'); - await expect(actionSheet).toHaveAttribute('data-testid', 'basic-action-sheet'); - }); - }); -}); -configs().forEach(({ config, screenshot, title }) => { - test.describe(title('action sheet: variant rendering'), () => { - let actionSheetFixture!: ActionSheetFixture; - test.beforeEach(async ({ page }) => { - actionSheetFixture = new ActionSheetFixture(page, screenshot); - - await page.goto(`/src/components/action-sheet/test/basic`, config); - }); - 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'); - }); - }); -}); -configs({ directions: ['ltr'] }).forEach(({ config, title }) => { +/** + * This behavior does not vary across modes/directions + */ +configs({ mode: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => { test.describe(title('action sheet: variant functionality'), () => { let actionSheetFixture!: ActionSheetFixture; test.beforeEach(async ({ page }) => { @@ -118,7 +74,11 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => { }); }); }); -configs({ directions: ['ltr'] }).forEach(({ config, title }) => { + +/** + * This behavior does not vary across modes/directions + */ +configs({ mode: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => { test.describe(title('action sheet: focus trap'), () => { test('it should trap focus in action sheet', async ({ page, browserName }) => { await page.goto(`/src/components/action-sheet/test/basic`, config); @@ -140,42 +100,3 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => { }); }); }); - -class ActionSheetFixture { - readonly page: E2EPage; - readonly screenshotFn?: (file: string) => string; - - private actionSheet!: Locator; - - constructor(page: E2EPage, screenshot?: (file: string) => string) { - this.page = page; - this.screenshotFn = screenshot; - } - - 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'); - await expect(this.actionSheet).toBeVisible(); - } - - async dismiss() { - const ionActionSheetDidDismiss = await this.page.spyOnEvent('ionActionSheetDidDismiss'); - await this.actionSheet.evaluate((el: HTMLIonActionSheetElement) => el.dismiss()); - await ionActionSheetDidDismiss.next(); - await expect(this.actionSheet).not.toBeVisible(); - } - - async screenshot(modifier: string) { - const { screenshotFn } = this; - - if (!screenshotFn) { - throw new Error( - 'A screenshot function is required to take a screenshot. Pass one in when creating ActionSheetFixture.' - ); - } - - await expect(this.actionSheet).toHaveScreenshot(screenshotFn(`action-sheet-${modifier}-diff`)); - } -} diff --git a/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx b/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx new file mode 100644 index 0000000000..4343a95f4a --- /dev/null +++ b/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx @@ -0,0 +1,17 @@ +import { h } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; + +import { ActionSheet } from '../../action-sheet'; + +describe('action sheet: htmlAttributes inheritance', () => { + it('should correctly inherit attributes on host', async () => { + const page = await newSpecPage({ + components: [ActionSheet], + template: () => , + }); + + const actionSheet = page.body.querySelector('ion-action-sheet'); + + await expect(actionSheet.getAttribute('data-testid')).toBe('basic-action-sheet'); + }); +}); diff --git a/core/src/components/action-sheet/test/basic/fixture.ts b/core/src/components/action-sheet/test/basic/fixture.ts new file mode 100644 index 0000000000..b7316d5330 --- /dev/null +++ b/core/src/components/action-sheet/test/basic/fixture.ts @@ -0,0 +1,42 @@ +import type { Locator } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { E2EPage } from '@utils/test/playwright'; + +export class ActionSheetFixture { + readonly page: E2EPage; + readonly screenshotFn?: (file: string) => string; + + private actionSheet!: Locator; + + constructor(page: E2EPage, screenshot?: (file: string) => string) { + this.page = page; + this.screenshotFn = screenshot; + } + + 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'); + await expect(this.actionSheet).toBeVisible(); + } + + async dismiss() { + const ionActionSheetDidDismiss = await this.page.spyOnEvent('ionActionSheetDidDismiss'); + await this.actionSheet.evaluate((el: HTMLIonActionSheetElement) => el.dismiss()); + await ionActionSheetDidDismiss.next(); + await expect(this.actionSheet).not.toBeVisible(); + } + + async screenshot(modifier: string) { + const { screenshotFn } = this; + + if (!screenshotFn) { + throw new Error( + 'A screenshot function is required to take a screenshot. Pass one in when creating ActionSheetFixture.' + ); + } + + await expect(this.actionSheet).toHaveScreenshot(screenshotFn(`action-sheet-${modifier}-diff`)); + } +} diff --git a/core/src/components/alert/alert.tsx b/core/src/components/alert/alert.tsx index 9acc4dd14f..08ea565552 100644 --- a/core/src/components/alert/alert.tsx +++ b/core/src/components/alert/alert.tsx @@ -13,6 +13,7 @@ import { prepareOverlay, present, safeCall, + setOverlayId } from '@utils/overlays'; import { sanitizeDOMString } from '@utils/sanitization'; import { getClassMap } from '@utils/theme'; @@ -329,6 +330,7 @@ export class Alert implements ComponentInterface, OverlayInterface { } componentWillLoad() { + setOverlayId(this.el); this.inputsChanged(); this.buttonsChanged(); } diff --git a/core/src/components/alert/test/alert-id.spec.ts b/core/src/components/alert/test/alert-id.spec.ts new file mode 100644 index 0000000000..25c1427b1b --- /dev/null +++ b/core/src/components/alert/test/alert-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Alert } from '../alert'; + +it('alert should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Alert], + html: ``, + }); + let alert: HTMLIonAlertElement; + + alert = page.body.querySelector('ion-alert')!; + + expect(alert).not.toBe(null); + expect(alert.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the alert from the DOM + alert.remove(); + await page.waitForChanges(); + + // Create a new alert to verify the id is incremented + alert = document.createElement('ion-alert'); + alert.isOpen = true; + page.body.appendChild(alert); + await page.waitForChanges(); + + alert = page.body.querySelector('ion-alert')!; + + expect(alert.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same alert again should reuse the existing id + + alert.isOpen = false; + await page.waitForChanges(); + alert.isOpen = true; + await page.waitForChanges(); + + alert = page.body.querySelector('ion-alert')!; + + expect(alert.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/loading/loading.tsx b/core/src/components/loading/loading.tsx index 5453c6ed90..1bdc4e0e60 100644 --- a/core/src/components/loading/loading.tsx +++ b/core/src/components/loading/loading.tsx @@ -10,6 +10,7 @@ import { present, createDelegateController, createTriggerController, + setOverlayId } from '@utils/overlays'; import { sanitizeDOMString } from '@utils/sanitization'; import { getClassMap } from '@utils/theme'; @@ -212,6 +213,7 @@ export class Loading implements ComponentInterface, OverlayInterface { const mode = getIonMode(this); this.spinner = config.get('loadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent')); } + setOverlayId(this.el); } componentDidLoad() { diff --git a/core/src/components/loading/test/loading-id.spec.ts b/core/src/components/loading/test/loading-id.spec.ts new file mode 100644 index 0000000000..f6b10e079b --- /dev/null +++ b/core/src/components/loading/test/loading-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Loading } from '../loading'; + +it('loading should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Loading], + html: ``, + }); + let loading: HTMLIonLoadingElement; + + loading = page.body.querySelector('ion-loading')!; + + expect(loading).not.toBe(null); + expect(loading.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the loading from the DOM + loading.remove(); + await page.waitForChanges(); + + // Create a new loading to verify the id is incremented + loading = document.createElement('ion-loading'); + loading.isOpen = true; + page.body.appendChild(loading); + await page.waitForChanges(); + + loading = page.body.querySelector('ion-loading')!; + + expect(loading.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same loading again should reuse the existing id + + loading.isOpen = false; + await page.waitForChanges(); + loading.isOpen = true; + await page.waitForChanges(); + + loading = page.body.querySelector('ion-loading')!; + + expect(loading.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/loading/test/loading.spec.ts b/core/src/components/loading/test/loading.spec.ts index 152ed87b09..11fa9658d7 100644 --- a/core/src/components/loading/test/loading.spec.ts +++ b/core/src/components/loading/test/loading.spec.ts @@ -1,15 +1,16 @@ import { newSpecPage } from '@stencil/core/testing'; -import { Loading } from '../loading'; -import { config } from '../../../global/config'; -describe('alert: custom html', () => { +import { config } from '../../../global/config'; +import { Loading } from '../loading'; + +describe('loading: custom html', () => { it('should not allow for custom html by default', async () => { const page = await newSpecPage({ components: [Loading], html: ``, }); - const content = page.body.querySelector('.loading-content'); + const content = page.body.querySelector('.loading-content')!; expect(content.textContent).toContain('Custom Text'); expect(content.querySelector('button.custom-html')).toBe(null); }); @@ -21,7 +22,7 @@ describe('alert: custom html', () => { html: ``, }); - const content = page.body.querySelector('.loading-content'); + const content = page.body.querySelector('.loading-content')!; expect(content.textContent).toContain('Custom Text'); expect(content.querySelector('button.custom-html')).not.toBe(null); }); @@ -33,7 +34,7 @@ describe('alert: custom html', () => { html: ``, }); - const content = page.body.querySelector('.loading-content'); + const content = page.body.querySelector('.loading-content')!; expect(content.textContent).toContain('Custom Text'); expect(content.querySelector('button.custom-html')).toBe(null); }); diff --git a/core/src/components/modal/modal.tsx b/core/src/components/modal/modal.tsx index 6445672b46..ce8aa2a05b 100644 --- a/core/src/components/modal/modal.tsx +++ b/core/src/components/modal/modal.tsx @@ -15,6 +15,7 @@ import { prepareOverlay, present, createTriggerController, + setOverlayId } from '@utils/overlays'; import { getClassMap } from '@utils/theme'; import { deepReady, waitForMount } from '@utils/transition'; @@ -65,8 +66,6 @@ import { setCardStatusBarDark, setCardStatusBarDefault } from './utils'; export class Modal implements ComponentInterface, OverlayInterface { private readonly triggerController = createTriggerController(); private gesture?: Gesture; - private modalIndex = modalIds++; - private modalId?: string; private coreDelegate: FrameworkDelegate = CoreDelegate(); private currentTransition?: Promise; private sheetTransition?: Promise; @@ -344,16 +343,10 @@ export class Modal implements ComponentInterface, OverlayInterface { componentWillLoad() { const { breakpoints, initialBreakpoint, el } = this; + const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined); this.inheritedAttributes = inheritAttributes(el, ['aria-label', 'role']); - /** - * If user has custom ID set then we should - * not assign the default incrementing ID. - */ - this.modalId = this.el.hasAttribute('id') ? this.el.getAttribute('id')! : `ion-modal-${this.modalIndex}`; - const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined); - if (isSheetModal) { this.currentBreakpoint = this.initialBreakpoint; } @@ -361,6 +354,8 @@ export class Modal implements ComponentInterface, OverlayInterface { if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) { printIonWarning('Your breakpoints array must include the initialBreakpoint value.'); } + + setOverlayId(el); } componentDidLoad() { @@ -861,7 +856,6 @@ export class Modal implements ComponentInterface, OverlayInterface { const showHandle = handle !== false && isSheetModal; const mode = getIonMode(this); - const { modalId } = this; const isCardModal = presentingElement !== undefined && mode === 'ios'; const isHandleCycle = handleBehavior === 'cycle'; @@ -881,7 +875,6 @@ export class Modal implements ComponentInterface, OverlayInterface { 'overlay-hidden': true, ...getClassMap(this.cssClass), }} - id={modalId} onIonBackdropTap={this.onBackdropTap} onIonModalDidPresent={this.onLifecycle} onIonModalWillPresent={this.onLifecycle} @@ -935,8 +928,6 @@ const LIFECYCLE_MAP: any = { ionModalDidDismiss: 'ionViewDidLeave', }; -let modalIds = 0; - interface ModalOverlayOptions { /** * The element that presented the modal. diff --git a/core/src/components/modal/test/modal-id.spec.ts b/core/src/components/modal/test/modal-id.spec.ts new file mode 100644 index 0000000000..4568aa6e1c --- /dev/null +++ b/core/src/components/modal/test/modal-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Modal } from '../modal'; + +it('modal should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Modal], + html: ``, + }); + let modal: HTMLIonModalElement; + + modal = page.body.querySelector('ion-modal')!; + + expect(modal).not.toBe(null); + expect(modal.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the modal from the DOM + modal.remove(); + await page.waitForChanges(); + + // Create a new modal to verify the id is incremented + modal = document.createElement('ion-modal'); + modal.isOpen = true; + page.body.appendChild(modal); + await page.waitForChanges(); + + modal = page.body.querySelector('ion-modal')!; + + expect(modal.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same modal again should reuse the existing id + + modal.isOpen = false; + await page.waitForChanges(); + modal.isOpen = true; + await page.waitForChanges(); + + modal = page.body.querySelector('ion-modal')!; + + expect(modal.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/picker/picker.tsx b/core/src/components/picker/picker.tsx index 46761042f5..af6c66e955 100644 --- a/core/src/components/picker/picker.tsx +++ b/core/src/components/picker/picker.tsx @@ -10,6 +10,7 @@ import { prepareOverlay, present, safeCall, + setOverlayId } from '@utils/overlays'; import { getClassMap } from '@utils/theme'; @@ -194,6 +195,10 @@ export class Picker implements ComponentInterface, OverlayInterface { this.triggerController.removeClickListener(); } + componentWillLoad() { + setOverlayId(this.el); + } + /** * Present the picker overlay after it has been created. */ diff --git a/core/src/components/picker/test/picker-id.spec.ts b/core/src/components/picker/test/picker-id.spec.ts new file mode 100644 index 0000000000..e496e5b28a --- /dev/null +++ b/core/src/components/picker/test/picker-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Picker } from '../picker'; + +it('picker should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Picker], + html: ``, + }); + let picker: HTMLIonPickerElement; + + picker = page.body.querySelector('ion-picker')!; + + expect(picker).not.toBe(null); + expect(picker.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the picker from the DOM + picker.remove(); + await page.waitForChanges(); + + // Create a new picker to verify the id is incremented + picker = document.createElement('ion-picker'); + picker.isOpen = true; + page.body.appendChild(picker); + await page.waitForChanges(); + + picker = page.body.querySelector('ion-picker')!; + + expect(picker.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same picker again should reuse the existing id + + picker.isOpen = false; + await page.waitForChanges(); + picker.isOpen = true; + await page.waitForChanges(); + + picker = page.body.querySelector('ion-picker')!; + + expect(picker.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/popover/popover.tsx b/core/src/components/popover/popover.tsx index b1ecd29557..c456929819 100644 --- a/core/src/components/popover/popover.tsx +++ b/core/src/components/popover/popover.tsx @@ -3,7 +3,7 @@ import { Component, Element, Event, Host, Method, Prop, State, Watch, h } from ' import { CoreDelegate, attachComponent, detachComponent } from '@utils/framework-delegate'; import { addEventListener, raf, hasLazyBuild } from '@utils/helpers'; import { printIonWarning } from '@utils/logging'; -import { BACKDROP, dismiss, eventMethod, focusFirstDescendant, prepareOverlay, present } from '@utils/overlays'; +import { BACKDROP, dismiss, eventMethod, focusFirstDescendant, prepareOverlay, present, setOverlayId } from '@utils/overlays'; import { isPlatform } from '@utils/platform'; import { getClassMap } from '@utils/theme'; import { deepReady, waitForMount } from '@utils/transition'; @@ -49,8 +49,6 @@ export class Popover implements ComponentInterface, PopoverInterface { private usersElement?: HTMLElement; private triggerEl?: HTMLElement | null; private parentPopover: HTMLIonPopoverElement | null = null; - private popoverIndex = popoverIds++; - private popoverId?: string; private coreDelegate: FrameworkDelegate = CoreDelegate(); private currentTransition?: Promise; private destroyTriggerInteraction?: () => void; @@ -338,13 +336,10 @@ export class Popover implements ComponentInterface, PopoverInterface { } componentWillLoad() { - /** - * If user has custom ID set then we should - * not assign the default incrementing ID. - */ - this.popoverId = this.el.hasAttribute('id') ? this.el.getAttribute('id')! : `ion-popover-${this.popoverIndex}`; + const { el } = this; + const popoverId = setOverlayId(el); - this.parentPopover = this.el.closest(`ion-popover:not(#${this.popoverId})`) as HTMLIonPopoverElement | null; + this.parentPopover = el.closest(`ion-popover:not(#${popoverId})`) as HTMLIonPopoverElement | null; if (this.alignment === undefined) { this.alignment = getIonMode(this) === 'ios' ? 'center' : 'start'; @@ -660,7 +655,7 @@ export class Popover implements ComponentInterface, PopoverInterface { render() { const mode = getIonMode(this); - const { onLifecycle, popoverId, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this; + const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this; const desktop = isPlatform('desktop'); const enableArrow = arrow && !parentPopover; @@ -673,7 +668,6 @@ export class Popover implements ComponentInterface, PopoverInterface { style={{ zIndex: `${20000 + this.overlayIndex}`, }} - id={popoverId} class={{ ...getClassMap(this.cssClass), [mode]: true, @@ -709,8 +703,6 @@ const LIFECYCLE_MAP: any = { ionPopoverDidDismiss: 'ionViewDidLeave', }; -let popoverIds = 0; - interface PopoverPresentOptions { /** * The original target event that presented the popover. diff --git a/core/src/components/popover/test/adjustment/popover.e2e-legacy.ts b/core/src/components/popover/test/adjustment/popover.e2e-legacy.ts deleted file mode 100644 index 77a0386cb3..0000000000 --- a/core/src/components/popover/test/adjustment/popover.e2e-legacy.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('popover: adjustment', async () => { - test('should not render the popover offscreen', async ({ page }) => { - await page.goto('/src/components/popover/test/adjustment'); - - /** - * We need to click in an area where - * there is not enough room to show the popover - * below the click coordinates but not enough - * room above the click coordinates that we - * can just move the popover to without it going - * offscreen. - */ - await page.setViewportSize({ - width: 500, - height: 400, - }); - - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await page.mouse.click(300, 300); - - await ionPopoverDidPresent.next(); - - const popoverContent = page.locator('ion-popover .popover-content'); - const box = (await popoverContent.boundingBox())!; - - expect(box.y > 0).toBe(true); - }); -}); diff --git a/core/src/components/popover/test/adjustment/popover.e2e.ts b/core/src/components/popover/test/adjustment/popover.e2e.ts new file mode 100644 index 0000000000..cd9808d069 --- /dev/null +++ b/core/src/components/popover/test/adjustment/popover.e2e.ts @@ -0,0 +1,37 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: adjustment'), async () => { + test('should not render the popover offscreen', async ({ page }) => { + await page.goto('/src/components/popover/test/adjustment', config); + + /** + * We need to click in an area where + * there is not enough room to show the popover + * below the click coordinates but not enough + * room above the click coordinates that we + * can just move the popover to without it going + * offscreen. + */ + await page.setViewportSize({ + width: 500, + height: 400, + }); + + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await page.mouse.click(300, 300); + + await ionPopoverDidPresent.next(); + + const popoverContent = page.locator('ion-popover .popover-content'); + const box = (await popoverContent.boundingBox())!; + + expect(box.y > 0).toBe(true); + }); + }); +}); diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts deleted file mode 100644 index 9c6b7276fe..0000000000 --- a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, Viewports } from '@utils/test/playwright'; - -import { openPopover } from '../test.utils'; - -test.describe('popover: arrow rendering', async () => { - /** - * The popovers have showBackdrop=false so we can open all of them at once - * and massively cut down on screenshots taken. The content has its own - * backdrop so you can still see the popovers. - */ - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/popover/test/arrow'); - await page.setViewportSize(Viewports.tablet.portrait); // avoid extra-long viewport screenshots - - const sides = ['top', 'right', 'bottom', 'left', 'start', 'end']; - for (const side of sides) { - await openPopover(page, `${side}-trigger`, true); - } - - await expect(page).toHaveScreenshot(`popover-arrow-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index 086cc18462..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index b73b49b971..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 641adb3035..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 205a100703..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 3c6098e618..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 421dbee18e..0000000000 Binary files a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/arrow/popover.e2e.ts b/core/src/components/popover/test/arrow/popover.e2e.ts new file mode 100644 index 0000000000..c62a349f64 --- /dev/null +++ b/core/src/components/popover/test/arrow/popover.e2e.ts @@ -0,0 +1,28 @@ +import { expect } from '@playwright/test'; +import { configs, test, Viewports } from '@utils/test/playwright'; + +import { openPopover } from '../test.utils'; + +/** + * This feature only exists on iOS. + */ +configs({ modes: ['ios'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('popover: arrow rendering'), async () => { + /** + * The popovers have showBackdrop=false so we can open all of them at once + * and massively cut down on screenshots taken. The content has its own + * backdrop so you can still see the popovers. + */ + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/popover/test/arrow', config); + await page.setViewportSize(Viewports.tablet.portrait); // avoid extra-long viewport screenshots + + const sides = ['top', 'right', 'bottom', 'left', 'start', 'end']; + for (const side of sides) { + await openPopover(page, `${side}-trigger`, true); + } + + await expect(page).toHaveScreenshot(screenshot(`popover-arrow`)); + }); + }); +}); diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/arrow/popover.e2e-legacy.ts-snapshots/popover-arrow-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/arrow/popover.e2e.ts-snapshots/popover-arrow-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts b/core/src/components/popover/test/basic/popover.e2e-legacy.ts deleted file mode 100644 index b344ccabfc..0000000000 --- a/core/src/components/popover/test/basic/popover.e2e-legacy.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { openPopover, screenshotPopover } from '../test.utils'; - -test.describe('popover: rendering', async () => { - test('should not have visual regressions', async ({ page }) => { - const buttonIDs = [ - 'basic-popover', - 'translucent-popover', - 'long-list-popover', - 'no-event-popover', - 'custom-class-popover', - 'header-popover', - 'translucent-header-popover', - ]; - - for (const id of buttonIDs) { - await screenshotPopover(page, id, 'basic'); - } - }); -}); - -test.describe('popover: htmlAttributes', async () => { - test('should inherit attributes on host', async ({ page }) => { - await page.goto('/src/components/popover/test/basic'); - await openPopover(page, 'basic-popover'); - - const alert = page.locator('ion-popover'); - await expect(alert).toHaveAttribute('data-testid', 'basic-popover'); - }); -}); - -test.describe('popover: focus trap', async () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/popover/test/basic'); - }); - - test('should focus the first ion-item on ArrowDown', async ({ page }) => { - const item0 = page.locator('ion-popover ion-item:nth-of-type(1)'); - - await openPopover(page, 'basic-popover'); - - await page.keyboard.press('ArrowDown'); - await expect(item0).toBeFocused(); - }); - - test('should trap focus', async ({ page, browserName }) => { - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - const items = page.locator('ion-popover ion-item'); - - await openPopover(page, 'basic-popover'); - - await page.keyboard.press(tabKey); - await expect(items.nth(0)).toBeFocused(); - - await page.keyboard.press(`Shift+${tabKey}`); - await expect(items.nth(3)).toBeFocused(); - - await page.keyboard.press(tabKey); - await expect(items.nth(0)).toBeFocused(); - - await page.keyboard.press('ArrowDown'); - await expect(items.nth(1)).toBeFocused(); - - await page.keyboard.press('ArrowDown'); - await expect(items.nth(2)).toBeFocused(); - - await page.keyboard.press('Home'); - await expect(items.nth(0)).toBeFocused(); - - await page.keyboard.press('End'); - await expect(items.nth(3)).toBeFocused(); - }); - - test('should not override keyboard interactions for textarea elements', async ({ page, browserName }) => { - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - const popover = page.locator('ion-popover'); - const innerNativeTextarea = page.locator('ion-textarea textarea').nth(0); - const vanillaTextarea = page.locator('ion-textarea + textarea'); - - await openPopover(page, 'popover-with-textarea'); - - /** - * Focusing happens async inside of popover so we need - * to wait for the requestAnimationFrame to fire. - */ - await expect(popover).toBeFocused(); - - await page.keyboard.press(tabKey); - - // for Firefox, ion-textarea is focused first - // need to tab again to get to native input - if (browserName === 'firefox') { - await page.keyboard.press(tabKey); - } - - await expect(innerNativeTextarea).toBeFocused(); - - await page.keyboard.press('ArrowDown'); - - await expect(innerNativeTextarea).toBeFocused(); - - await page.keyboard.press('ArrowUp'); - - await expect(innerNativeTextarea).toBeFocused(); - - await page.keyboard.press(tabKey); - // Checking within HTML textarea - - await expect(vanillaTextarea).toBeFocused(); - - await page.keyboard.press('ArrowDown'); - - await expect(vanillaTextarea).toBeFocused(); - - await page.keyboard.press('ArrowUp'); - - await expect(vanillaTextarea).toBeFocused(); - - await page.keyboard.press('Home'); - - await expect(vanillaTextarea).toBeFocused(); - - await page.keyboard.press('End'); - - await expect(vanillaTextarea).toBeFocused(); - }); -}); diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 74bfcf1413..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index db3d71ba16..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 776c51b7f6..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index e39b7f42f8..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 229ddc744a..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index eb242265b2..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png deleted file mode 100644 index a44dd84c55..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 13570bf3e8..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index e16744f2d9..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 13f28b9103..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 98d8b5e04d..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 78bdc043d4..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 007c394122..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 1c9e3d3df4..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 0a62a091e1..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 8d908a3e85..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index a787a32a38..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 8c1bfa6087..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index c949e05c64..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 2c0d14efcb..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index c5bd8d5b2e..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index a9f8c0f041..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index d6a9b19832..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 845385f885..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 95470fdb68..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index e5c061ce47..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 65e2c9aae8..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index f931760742..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index e4b281b70c..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 0b44bceeed..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index 993d4792cb..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index ec65fb5e0f..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 9e59e96965..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 98d8b5e04d..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 2458bfe813..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 007c394122..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index b8cc0ff4bd..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 09b7b8e1b6..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 3fbf31d89f..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index bf2d9481ac..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index 7a5bffd0ab..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 3a309a2081..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 2efccb99a0..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 0e2a736a2d..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 12d7649148..0000000000 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/basic/popover.e2e.ts b/core/src/components/popover/test/basic/popover.e2e.ts new file mode 100644 index 0000000000..81b76364f2 --- /dev/null +++ b/core/src/components/popover/test/basic/popover.e2e.ts @@ -0,0 +1,170 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { PopoverFixture } from '../fixture'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('popover: rendering'), async () => { + test('should not have visual regressions', async ({ page }) => { + const popoverFixture = new PopoverFixture(page); + + await popoverFixture.goto(`src/components/popover/test/basic`, config); + await popoverFixture.open('#basic-popover'); + await popoverFixture.screenshot('basic-basic-popover', screenshot); + }); + }); +}); + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('popover: rendering variants'), async () => { + let popoverFixture!: PopoverFixture; + test.beforeEach(async ({ page }) => { + popoverFixture = new PopoverFixture(page); + await popoverFixture.goto(`src/components/popover/test/basic`, config); + }); + test('should render long list popover', async () => { + await popoverFixture.open('#long-list-popover'); + await popoverFixture.screenshot('basic-long-list-popover', screenshot); + }); + test('should render no event popover', async () => { + await popoverFixture.open('#no-event-popover'); + await popoverFixture.screenshot('basic-no-event-popover', screenshot); + }); + test('should render custom class popover', async () => { + await popoverFixture.open('#custom-class-popover'); + await popoverFixture.screenshot('basic-custom-class-popover', screenshot); + }); + test('should render header popover', async () => { + await popoverFixture.open('#header-popover'); + await popoverFixture.screenshot('basic-header-popover', screenshot); + }); + }); +}); + +/** + * Translucent popovers are only available on iOS + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('popover: translucent variants'), async () => { + let popoverFixture!: PopoverFixture; + test.beforeEach(async ({ page }) => { + popoverFixture = new PopoverFixture(page); + await popoverFixture.goto(`src/components/popover/test/basic`, config); + }); + test('should render translucent popover', async () => { + await popoverFixture.open('#translucent-popover'); + await popoverFixture.screenshot('basic-translucent-popover', screenshot); + }); + test('should render translucent header popover', async () => { + await popoverFixture.open('#translucent-header-popover'); + await popoverFixture.screenshot('basic-translucent-header-popover', screenshot); + }); + }); +}); + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: focus trap'), async () => { + let popoverFixture!: PopoverFixture; + test.beforeEach(async ({ page }) => { + popoverFixture = new PopoverFixture(page); + await popoverFixture.goto('/src/components/popover/test/basic', config); + }); + + test('should focus the first ion-item on ArrowDown', async ({ page }) => { + const item0 = page.locator('ion-popover ion-item:nth-of-type(1)'); + + await popoverFixture.open('#basic-popover'); + + await page.keyboard.press('ArrowDown'); + await expect(item0).toBeFocused(); + }); + + test('should trap focus', async ({ page, browserName }) => { + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + const items = page.locator('ion-popover ion-item'); + + await popoverFixture.open('#basic-popover'); + + await page.keyboard.press(tabKey); + await expect(items.nth(0)).toBeFocused(); + + await page.keyboard.press(`Shift+${tabKey}`); + await expect(items.nth(3)).toBeFocused(); + + await page.keyboard.press(tabKey); + await expect(items.nth(0)).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + await expect(items.nth(1)).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + await expect(items.nth(2)).toBeFocused(); + + await page.keyboard.press('Home'); + await expect(items.nth(0)).toBeFocused(); + + await page.keyboard.press('End'); + await expect(items.nth(3)).toBeFocused(); + }); + + test('should not override keyboard interactions for textarea elements', async ({ page, browserName }) => { + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + const popover = page.locator('ion-popover'); + const innerNativeTextarea = page.locator('ion-textarea textarea').nth(0); + const vanillaTextarea = page.locator('ion-textarea + textarea'); + + await popoverFixture.open('#popover-with-textarea'); + + /** + * Focusing happens async inside of popover so we need + * to wait for the requestAnimationFrame to fire. + */ + await expect(popover).toBeFocused(); + + await page.keyboard.press(tabKey); + + // for Firefox, ion-textarea is focused first + // need to tab again to get to native input + if (browserName === 'firefox') { + await page.keyboard.press(tabKey); + } + + await expect(innerNativeTextarea).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + + await expect(innerNativeTextarea).toBeFocused(); + + await page.keyboard.press('ArrowUp'); + + await expect(innerNativeTextarea).toBeFocused(); + + await page.keyboard.press(tabKey); + // Checking within HTML textarea + + await expect(vanillaTextarea).toBeFocused(); + + await page.keyboard.press('ArrowDown'); + + await expect(vanillaTextarea).toBeFocused(); + + await page.keyboard.press('ArrowUp'); + + await expect(vanillaTextarea).toBeFocused(); + + await page.keyboard.press('Home'); + + await expect(vanillaTextarea).toBeFocused(); + + await page.keyboard.press('End'); + + await expect(vanillaTextarea).toBeFocused(); + }); + }); +}); diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png similarity index 97% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png index 51bca73c7e..73f8165a81 100644 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png similarity index 99% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png index 907de47d22..fa2013c2ba 100644 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-basic-popover-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png similarity index 99% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png index 6a4f4535a7..25961e27c2 100644 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-custom-class-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..210e06b124 Binary files /dev/null and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-header-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png similarity index 76% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png index f00265dc9b..75664761bc 100644 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-long-list-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..6b198b99f7 Binary files /dev/null and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-no-event-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png new file mode 100644 index 0000000000..6ab9823f19 Binary files /dev/null and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-header-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png similarity index 99% rename from core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png index 38cb6ec886..7d314d7fae 100644 Binary files a/core/src/components/popover/test/basic/popover.e2e-legacy.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/basic/popover.e2e.ts-snapshots/popover-basic-translucent-popover-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/basic/popover.spec.tsx b/core/src/components/popover/test/basic/popover.spec.tsx new file mode 100644 index 0000000000..8fe935fe37 --- /dev/null +++ b/core/src/components/popover/test/basic/popover.spec.tsx @@ -0,0 +1,17 @@ +import { h } from '@stencil/core'; +import { newSpecPage } from '@stencil/core/testing'; + +import { Popover } from '../../popover'; + +describe('popover: htmlAttributes inheritance', () => { + it('should correctly inherit attributes on host', async () => { + const page = await newSpecPage({ + components: [Popover], + template: () => , + }); + + const popover = page.body.querySelector('ion-popover'); + + await expect(popover.getAttribute('data-testid')).toBe('basic-popover'); + }); +}); diff --git a/core/src/components/popover/test/dismiss-on-select/popover.e2e-legacy.ts b/core/src/components/popover/test/dismiss-on-select/popover.e2e-legacy.ts deleted file mode 100644 index ef14e4b7e3..0000000000 --- a/core/src/components/popover/test/dismiss-on-select/popover.e2e-legacy.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { openPopover } from '../test.utils'; - -test.describe('popover: dismissOnSelect', async () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/popover/test/dismiss-on-select'); - }); - - test('should not dismiss a popover when clicking a hover trigger', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await openPopover(page, 'hover-trigger'); - const popover = page.locator('.hover-trigger-popover'); - const hoverTrigger = page.locator('#more-hover-trigger'); - - await hoverTrigger.hover(); - await ionPopoverDidPresent.next(); // wait for hover popover to open - await hoverTrigger.click(); - - // ensure parent popover is still open - await expect(popover).toBeVisible(); - }); - - test('should not dismiss a popover when clicking a click trigger', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await openPopover(page, 'click-trigger'); - const popover = page.locator('.click-trigger-popover'); - const clickTrigger = page.locator('#more-click-trigger'); - - await clickTrigger.hover(); - await clickTrigger.click(); - await ionPopoverDidPresent.next(); // wait for click popover to open - - // ensure parent popover is still open - await expect(popover).toBeVisible(); - }); -}); diff --git a/core/src/components/popover/test/dismiss-on-select/popover.e2e.ts b/core/src/components/popover/test/dismiss-on-select/popover.e2e.ts new file mode 100644 index 0000000000..416f079e78 --- /dev/null +++ b/core/src/components/popover/test/dismiss-on-select/popover.e2e.ts @@ -0,0 +1,45 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { openPopover } from '../test.utils'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: dismissOnSelect'), async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/popover/test/dismiss-on-select', config); + }); + + test('should not dismiss a popover when clicking a hover trigger', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await openPopover(page, 'hover-trigger'); + const popover = page.locator('.hover-trigger-popover'); + const hoverTrigger = page.locator('#more-hover-trigger'); + + await hoverTrigger.hover(); + await ionPopoverDidPresent.next(); // wait for hover popover to open + await hoverTrigger.click(); + + // ensure parent popover is still open + await expect(popover).toBeVisible(); + }); + + test('should not dismiss a popover when clicking a click trigger', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await openPopover(page, 'click-trigger'); + const popover = page.locator('.click-trigger-popover'); + const clickTrigger = page.locator('#more-click-trigger'); + + await clickTrigger.hover(); + await clickTrigger.click(); + await ionPopoverDidPresent.next(); // wait for click popover to open + + // ensure parent popover is still open + await expect(popover).toBeVisible(); + }); + }); +}); diff --git a/core/src/components/popover/test/fixture.ts b/core/src/components/popover/test/fixture.ts new file mode 100644 index 0000000000..1da142abb4 --- /dev/null +++ b/core/src/components/popover/test/fixture.ts @@ -0,0 +1,30 @@ +import { expect } from '@playwright/test'; +import type { E2EPage, E2EPageOptions, ScreenshotFn } from '@utils/test/playwright'; + +export class PopoverFixture { + readonly page: E2EPage; + + constructor(page: E2EPage) { + this.page = page; + } + + async goto(url: string, config: E2EPageOptions) { + await this.page.goto(url, config); + } + + async open(selector: string) { + const { page } = this; + + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await page.click(selector); + + await ionPopoverDidPresent.next(); + } + + async screenshot(modifier: string, screenshot: ScreenshotFn) { + const { page } = this; + + await expect(page).toHaveScreenshot(screenshot(`popover-${modifier}`)); + } +} diff --git a/core/src/components/popover/test/inline/popover.e2e-legacy.ts b/core/src/components/popover/test/inline/popover.e2e-legacy.ts deleted file mode 100644 index 10c682f2ec..0000000000 --- a/core/src/components/popover/test/inline/popover.e2e-legacy.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { expect } from '@playwright/test'; -import type { E2EPage } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -import { closePopover, openPopover } from '../test.utils'; - -test.describe('popover: inline', async () => { - test('should open using isOpen and event props', async ({ page }) => { - await testPopover(page, 'props'); - }); - - test('should open using present method', async ({ page }) => { - await testPopover(page, 'method'); - }); -}); - -const testPopover = async (page: E2EPage, buttonID: string) => { - await page.goto('/src/components/popover/test/inline'); - const popover = page.locator('ion-popover'); - - await openPopover(page, buttonID); - await expect(popover).toBeVisible(); - - await closePopover(page); - await expect(popover).not.toBeVisible(); - - // ensure popover can be opened multiple times - await openPopover(page, buttonID); - 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 new file mode 100644 index 0000000000..b7f1ea77ba --- /dev/null +++ b/core/src/components/popover/test/inline/popover.e2e.ts @@ -0,0 +1,37 @@ +import { expect } from '@playwright/test'; +import type { E2EPage } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +import { closePopover, openPopover } from '../test.utils'; + +/** + * this behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: inline'), async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/popover/test/inline', config); + }); + test('should open using isOpen and event props', async ({ page }) => { + await testPopover(page, 'props'); + }); + + test('should open using present method', async ({ page }) => { + await testPopover(page, 'method'); + }); + }); +}); + +const testPopover = async (page: E2EPage, buttonID: string) => { + const popover = page.locator('ion-popover'); + + await openPopover(page, buttonID); + await expect(popover).toBeVisible(); + + await closePopover(page); + await expect(popover).not.toBeVisible(); + + // ensure popover can be opened multiple times + await openPopover(page, buttonID); + await expect(popover).toBeVisible(); +}; diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts b/core/src/components/popover/test/nested/popover.e2e-legacy.ts deleted file mode 100644 index fe28f81c14..0000000000 --- a/core/src/components/popover/test/nested/popover.e2e-legacy.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('popover: nested', async () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/popover/test/nested'); - }); - - test('should render correctly', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await page.click('#first-trigger'); - await ionPopoverDidPresent.next(); - - const parentPopover = page.locator('.parent-popover'); - 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 - await page.click('#open-with-popover'); - await ionPopoverDidPresent.next(); - - const nestedPopover = page.locator('.child-popover-one'); - await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); - - await page.setIonViewport(); - await expect(page).toHaveScreenshot(`popover-nested-${page.getSnapshotSettings()}.png`); - }); - - test('should dismiss when clicking backdrop', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); - - await page.click('#first-trigger'); - await ionPopoverDidPresent.next(); - await page.click('#open-with-popover'); - await ionPopoverDidPresent.next(); - - const backdrop = page.locator('.parent-popover ion-backdrop'); - await backdrop.click({ position: { x: 5, y: 5 } }); - await ionPopoverDidDismiss.next(); - - const nestedPopover = page.locator('.child-popover-one'); - await expect(nestedPopover).toHaveClass(/overlay-hidden/); - }); - - test('should render multiple levels of nesting correctly', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await page.click('#first-trigger'); - await ionPopoverDidPresent.next(); - - await page.click('#share-popover'); - await ionPopoverDidPresent.next(); - - await page.click('#share-other-popover'); - await ionPopoverDidPresent.next(); - - const nestedPopover = page.locator('.child-popover-three'); - await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); - - await page.setIonViewport(); - await expect(page).toHaveScreenshot(`popover-nested-multiple-${page.getSnapshotSettings()}.png`); - }); - - test('clicking backdrop should dismiss multiple levels of popover', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); - - await page.click('#first-trigger'); - await ionPopoverDidPresent.next(); - - await page.click('#share-popover'); - await ionPopoverDidPresent.next(); - - await page.click('#share-other-popover'); - await ionPopoverDidPresent.next(); - - const backdrop = page.locator('.parent-popover ion-backdrop'); - await backdrop.click({ position: { x: 5, y: 5 } }); - await ionPopoverDidDismiss.next(); - - const nestedPopoverOne = page.locator('.child-popover-one'); - await expect(nestedPopoverOne).toHaveClass(/overlay-hidden/); - - const nestedPopoverTwo = page.locator('.child-popover-three'); - await expect(nestedPopoverTwo).toHaveClass(/overlay-hidden/); - }); - - test('should dismiss sibling nested popover when another sibling popover is opened', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); - - await page.click('#first-trigger'); - await ionPopoverDidPresent.next(); - - await page.click('#open-with-popover'); - await ionPopoverDidPresent.next(); - - await page.click('#share-popover'); - await ionPopoverDidPresent.next(); - await ionPopoverDidDismiss.next(); - - const openWithPopover = page.locator('.child-popover-one'); - const sharePopover = page.locator('.child-popover-two'); - await expect(openWithPopover).toHaveClass(/overlay-hidden/); - await expect(sharePopover).not.toHaveClass(/overlay-hidden/); - }); -}); diff --git a/core/src/components/popover/test/nested/popover.e2e.ts b/core/src/components/popover/test/nested/popover.e2e.ts new file mode 100644 index 0000000000..3797464553 --- /dev/null +++ b/core/src/components/popover/test/nested/popover.e2e.ts @@ -0,0 +1,119 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('popover: nested rendering'), async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/popover/test/nested', config); + }); + + test('should render correctly', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await page.click('#first-trigger'); + await ionPopoverDidPresent.next(); + + const parentPopover = page.locator('.parent-popover'); + 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 + await page.click('#open-with-popover'); + await ionPopoverDidPresent.next(); + + const nestedPopover = page.locator('.child-popover-one'); + await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); + + await page.setIonViewport(); + await expect(page).toHaveScreenshot(screenshot(`popover-nested`)); + }); + + test('should render multiple levels of nesting correctly', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await page.click('#first-trigger'); + await ionPopoverDidPresent.next(); + + await page.click('#share-popover'); + await ionPopoverDidPresent.next(); + + await page.click('#share-other-popover'); + await ionPopoverDidPresent.next(); + + const nestedPopover = page.locator('.child-popover-three'); + await expect(nestedPopover).not.toHaveClass(/overlay-hidden/); + + await page.setIonViewport(); + await expect(page).toHaveScreenshot(screenshot(`popover-nested-multiple`)); + }); + }); +}); + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: nested functionality'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/popover/test/nested', config); + }); + + test('should dismiss when clicking backdrop', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); + + await page.click('#first-trigger'); + await ionPopoverDidPresent.next(); + await page.click('#open-with-popover'); + await ionPopoverDidPresent.next(); + + const backdrop = page.locator('.parent-popover ion-backdrop'); + await backdrop.click({ position: { x: 5, y: 5 } }); + await ionPopoverDidDismiss.next(); + + const nestedPopover = page.locator('.child-popover-one'); + await expect(nestedPopover).toHaveClass(/overlay-hidden/); + }); + + test('clicking backdrop should dismiss multiple levels of popover', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); + + await page.click('#first-trigger'); + await ionPopoverDidPresent.next(); + + await page.click('#share-popover'); + await ionPopoverDidPresent.next(); + + await page.click('#share-other-popover'); + await ionPopoverDidPresent.next(); + + const backdrop = page.locator('.parent-popover ion-backdrop'); + await backdrop.click({ position: { x: 5, y: 5 } }); + await ionPopoverDidDismiss.next(); + + const nestedPopoverOne = page.locator('.child-popover-one'); + await expect(nestedPopoverOne).toHaveClass(/overlay-hidden/); + + const nestedPopoverTwo = page.locator('.child-popover-three'); + await expect(nestedPopoverTwo).toHaveClass(/overlay-hidden/); + }); + + test('should dismiss sibling nested popover when another sibling popover is opened', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); + + await page.click('#first-trigger'); + await ionPopoverDidPresent.next(); + + await page.click('#open-with-popover'); + await ionPopoverDidPresent.next(); + + await page.click('#share-popover'); + await ionPopoverDidPresent.next(); + await ionPopoverDidDismiss.next(); + + const openWithPopover = page.locator('.child-popover-one'); + const sharePopover = page.locator('.child-popover-two'); + await expect(openWithPopover).toHaveClass(/overlay-hidden/); + await expect(sharePopover).not.toHaveClass(/overlay-hidden/); + }); + }); +}); diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/nested/popover.e2e-legacy.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/nested/popover.e2e.ts-snapshots/popover-nested-multiple-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/popover-id.spec.ts b/core/src/components/popover/test/popover-id.spec.ts new file mode 100644 index 0000000000..fb42e12b40 --- /dev/null +++ b/core/src/components/popover/test/popover-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Popover } from '../popover'; + +it('popover should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Popover], + html: ``, + }); + let popover: HTMLIonPopoverElement; + + popover = page.body.querySelector('ion-popover')!; + + expect(popover).not.toBe(null); + expect(popover.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the popover from the DOM + popover.remove(); + await page.waitForChanges(); + + // Create a new popover to verify the id is incremented + popover = document.createElement('ion-popover'); + popover.isOpen = true; + page.body.appendChild(popover); + await page.waitForChanges(); + + popover = page.body.querySelector('ion-popover')!; + + expect(popover.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same popover again should reuse the existing id + + popover.isOpen = false; + await page.waitForChanges(); + popover.isOpen = true; + await page.waitForChanges(); + + popover = page.body.querySelector('ion-popover')!; + + expect(popover.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts b/core/src/components/popover/test/position/popover.e2e-legacy.ts deleted file mode 100644 index d2baac8312..0000000000 --- a/core/src/components/popover/test/position/popover.e2e-legacy.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, Viewports } from '@utils/test/playwright'; - -import { openPopover } from '../test.utils'; - -test.describe('popover: position', async () => { - /** - * The popovers have showBackdrop=false so we can open all of them at once - * and massively cut down on screenshots taken. The content has its own - * backdrop so you can still see the popovers. - */ - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/popover/test/position'); - await page.setViewportSize(Viewports.tablet.portrait); // avoid extra-long viewport screenshots - - const sides = ['top', 'right', 'bottom', 'left', 'start', 'end']; - const alignments = ['start', 'center', 'end']; - - for (const side of sides) { - for (const alignment of alignments) { - await openPopover(page, `${side}-${alignment}`, true); - } - } - - await expect(page).toHaveScreenshot(`popover-position-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/popover/test/position/popover.e2e.ts b/core/src/components/popover/test/position/popover.e2e.ts new file mode 100644 index 0000000000..12103639da --- /dev/null +++ b/core/src/components/popover/test/position/popover.e2e.ts @@ -0,0 +1,29 @@ +import { expect } from '@playwright/test'; +import { configs, test, Viewports } from '@utils/test/playwright'; + +import { openPopover } from '../test.utils'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('popover: position'), async () => { + /** + * The popovers have showBackdrop=false so we can open all of them at once + * and massively cut down on screenshots taken. The content has its own + * backdrop so you can still see the popovers. + */ + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/popover/test/position', config); + await page.setViewportSize(Viewports.tablet.portrait); // avoid extra-long viewport screenshots + + const sides = ['top', 'right', 'bottom', 'left', 'start', 'end']; + const alignments = ['start', 'center', 'end']; + + for (const side of sides) { + for (const alignment of alignments) { + await openPopover(page, `${side}-${alignment}`, true); + } + } + + await expect(page).toHaveScreenshot(screenshot(`popover-position`)); + }); + }); +}); diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/position/popover.e2e-legacy.ts-snapshots/popover-position-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/position/popover.e2e.ts-snapshots/popover-position-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts b/core/src/components/popover/test/reference/popover.e2e-legacy.ts deleted file mode 100644 index eca41d05be..0000000000 --- a/core/src/components/popover/test/reference/popover.e2e-legacy.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { test } from '@utils/test/playwright'; - -import { screenshotPopover } from '../test.utils'; - -test.describe('popover: reference', async () => { - test('should position popover relative to mouse click', async ({ page }) => { - await screenshotPopover(page, 'event-trigger', 'reference'); - }); - - test('should position popover relative to trigger', async ({ page }) => { - await screenshotPopover(page, 'trigger-trigger', 'reference'); - }); -}); diff --git a/core/src/components/popover/test/reference/popover.e2e.ts b/core/src/components/popover/test/reference/popover.e2e.ts new file mode 100644 index 0000000000..7b4b3a0664 --- /dev/null +++ b/core/src/components/popover/test/reference/popover.e2e.ts @@ -0,0 +1,23 @@ +import { configs, test } from '@utils/test/playwright'; + +import { PopoverFixture } from '../fixture'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('popover: reference'), async () => { + let popoverFixture!: PopoverFixture; + test.beforeEach(async ({ page }) => { + popoverFixture = new PopoverFixture(page); + await popoverFixture.goto(`src/components/popover/test/reference`, config); + }); + + test('should position popover relative to mouse click', async () => { + await popoverFixture.open('#event-trigger'); + await popoverFixture.screenshot('reference-event-trigger', screenshot); + }); + + test('should position popover relative to trigger', async () => { + await popoverFixture.open('#trigger-trigger'); + await popoverFixture.screenshot('reference-trigger-trigger', screenshot); + }); + }); +}); diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png similarity index 98% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png index 771e3c9e9e..29a03ab6c4 100644 Binary files a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png similarity index 98% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png index 82adcc7e94..ea54555735 100644 Binary files a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-event-trigger-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png similarity index 98% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png index 01268f9e2b..14906824cd 100644 Binary files a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png and b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-ltr-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png similarity index 98% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png index 80447f021a..3ab96e840f 100644 Binary files a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png and b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-ios-rtl-Mobile-Safari-linux.png differ diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/reference/popover.e2e-legacy.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/reference/popover.e2e.ts-snapshots/popover-reference-trigger-trigger-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts b/core/src/components/popover/test/size/popover.e2e-legacy.ts deleted file mode 100644 index 80b945e3a8..0000000000 --- a/core/src/components/popover/test/size/popover.e2e-legacy.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, Viewports } from '@utils/test/playwright'; - -import { openPopover, screenshotPopover } from '../test.utils'; - -test.describe('popover: size', async () => { - /** - * The popovers have showBackdrop=false so we can open most of them at once - * and massively cut down on screenshots taken. The content has its own - * backdrop so you can still see the popovers. - */ - // TODO FW-3598 - test.skip('should calculate popover width based on sizing method', async ({ page }) => { - await page.goto('/src/components/popover/test/size'); - await page.setViewportSize(Viewports.tablet.portrait); // avoid popovers overlapping - - const sameTimeTriggers = ['auto-trigger', 'cover-trigger', 'event-trigger']; - - for (const trigger of sameTimeTriggers) { - await openPopover(page, trigger, true); - } - - await expect(page).toHaveScreenshot(`popover-size-${page.getSnapshotSettings()}.png`); - - // test this one separately since it would overlap others - await screenshotPopover(page, 'no-event-trigger', 'size'); - }); -}); diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index ca1a60ef98..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 6833077c69..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 8812b87a72..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index c9bbd49c48..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index 61e0e436db..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 9d7c375a10..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 6f7315df7f..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 837db665e0..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 37e7a5d48b..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 8e143375bf..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index cd0ebf7d8b..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 1754c6cfac..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index 2047244fea..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index 91e898b495..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index b39d597499..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index a7585f7476..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index af50bffaff..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index fe8a3dd54a..0000000000 Binary files a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/popover/test/size/popover.e2e.ts b/core/src/components/popover/test/size/popover.e2e.ts new file mode 100644 index 0000000000..a8f10462e2 --- /dev/null +++ b/core/src/components/popover/test/size/popover.e2e.ts @@ -0,0 +1,33 @@ +import { expect } from '@playwright/test'; +import { configs, test, Viewports } from '@utils/test/playwright'; + +import { openPopover, screenshotPopover } from '../test.utils'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('popover: size'), async () => { + /** + * The popovers have showBackdrop=false so we can open most of them at once + * and massively cut down on screenshots taken. The content has its own + * backdrop so you can still see the popovers. + */ + // TODO FW-3598 + test.skip('should calculate popover width based on sizing method', async ({ page }) => { + await page.goto('/src/components/popover/test/size', config); + await page.setViewportSize(Viewports.tablet.portrait); // avoid popovers overlapping + + const sameTimeTriggers = ['auto-trigger', 'cover-trigger', 'event-trigger']; + + for (const trigger of sameTimeTriggers) { + await openPopover(page, trigger, true); + } + + await expect(page).toHaveScreenshot(screenshot(`popover-size`)); + + // test this one separately since it would overlap others + await screenshotPopover(page, screenshot, 'no-event-trigger', 'size'); + }); + }); +}); diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/size/popover.e2e-legacy.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/size/popover.e2e.ts-snapshots/popover-size-no-event-trigger-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts b/core/src/components/popover/test/standalone/popover.e2e-legacy.ts deleted file mode 100644 index bbb2724300..0000000000 --- a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { test } from '@utils/test/playwright'; - -import { screenshotPopover } from '../test.utils'; - -test.describe('popover: standalone', async () => { - test('should render correctly', async ({ page }) => { - await screenshotPopover(page, 'basic-popover', 'standalone'); - }); -}); diff --git a/core/src/components/popover/test/standalone/popover.e2e.ts b/core/src/components/popover/test/standalone/popover.e2e.ts new file mode 100644 index 0000000000..e6e6fc88e0 --- /dev/null +++ b/core/src/components/popover/test/standalone/popover.e2e.ts @@ -0,0 +1,14 @@ +import { configs, test } from '@utils/test/playwright'; + +import { PopoverFixture } from '../fixture'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('popover: standalone'), async () => { + test('should render correctly', async ({ page }) => { + const popoverFixture = new PopoverFixture(page); + await popoverFixture.goto(`src/components/popover/test/standalone`, config); + await popoverFixture.open('#basic-popover'); + await popoverFixture.screenshot('standalone-basic-popover', screenshot); + }); + }); +}); diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Chrome-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Firefox-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Safari-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Safari-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Chrome-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Firefox-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Safari-linux.png b/core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/popover/test/standalone/popover.e2e-legacy.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Safari-linux.png rename to core/src/components/popover/test/standalone/popover.e2e.ts-snapshots/popover-standalone-basic-popover-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/popover/test/test.utils.ts b/core/src/components/popover/test/test.utils.ts index 819260315a..ceff87e86d 100644 --- a/core/src/components/popover/test/test.utils.ts +++ b/core/src/components/popover/test/test.utils.ts @@ -1,6 +1,6 @@ import type { Locator } from '@playwright/test'; import { expect } from '@playwright/test'; -import type { E2EPage } from '@utils/test/playwright'; +import type { E2EPage, ScreenshotFn } from '@utils/test/playwright'; export const openPopover = async (page: E2EPage, buttonID: string, useEvalClick = false) => { const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); @@ -31,10 +31,14 @@ export const closePopover = async (page: E2EPage, popover?: Locator) => { await ionPopoverDidDismiss.next(); }; -export const screenshotPopover = async (page: E2EPage, buttonID: string, testName: string) => { - await page.goto(`src/components/popover/test/${testName}`); +export const screenshotPopover = async ( + page: E2EPage, + screenshot: ScreenshotFn, + buttonID: string, + testName: string +) => { await page.setIonViewport(); await openPopover(page, buttonID); - await expect(page).toHaveScreenshot(`popover-${testName}-${buttonID}-${page.getSnapshotSettings()}.png`); + await expect(page).toHaveScreenshot(screenshot(`popover-${testName}-${buttonID}`)); }; diff --git a/core/src/components/popover/test/trigger/popover.e2e-legacy.ts b/core/src/components/popover/test/trigger/popover.e2e-legacy.ts deleted file mode 100644 index b9a4c232a0..0000000000 --- a/core/src/components/popover/test/trigger/popover.e2e-legacy.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { expect } from '@playwright/test'; -import type { E2EPage } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -import { openPopover } from '../test.utils'; - -test.describe('popover: trigger', async () => { - test.beforeEach(async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios'); - await page.goto('/src/components/popover/test/trigger'); - }); - - test('should open popover by left clicking on trigger', async ({ page }) => { - await openPopover(page, 'left-click-trigger'); - await checkPopover(page, '.left-click-popover'); - }); - - test('should open popover by right clicking on trigger', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - await page.click('#right-click-trigger', { button: 'right' }); - await ionPopoverDidPresent.next(); - - await checkPopover(page, '.right-click-popover'); - }); - - test('should open popover by hovering over trigger', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - - const button = page.locator('#hover-trigger'); - await button.hover(); - await ionPopoverDidPresent.next(); - - await checkPopover(page, '.hover-popover'); - }); - - test('should still open popover when it has been removed and re-added to DOM', async ({ page }) => { - const button = page.locator('#left-click-trigger'); - const popover = page.locator('.left-click-popover'); - - await popover.evaluate((popover: HTMLIonPopoverElement) => { - popover.remove(); - document.querySelector('ion-button')?.insertAdjacentElement('afterend', popover); - }); - await page.waitForChanges(); - - await button.click(); - await expect(popover).toBeVisible(); - }); -}); - -const checkPopover = async (page: E2EPage, popoverSelector: string) => { - const popover = page.locator(popoverSelector); - await expect(popover).toBeVisible(); -}; diff --git a/core/src/components/popover/test/trigger/popover.e2e.ts b/core/src/components/popover/test/trigger/popover.e2e.ts new file mode 100644 index 0000000000..23e43b2efb --- /dev/null +++ b/core/src/components/popover/test/trigger/popover.e2e.ts @@ -0,0 +1,56 @@ +import { expect } from '@playwright/test'; +import type { E2EPage } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +import { openPopover } from '../test.utils'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('popover: trigger'), async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/popover/test/trigger', config); + }); + + test('should open popover by left clicking on trigger', async ({ page }) => { + await openPopover(page, 'left-click-trigger'); + await checkPopover(page, '.left-click-popover'); + }); + + test('should open popover by right clicking on trigger', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + await page.click('#right-click-trigger', { button: 'right' }); + await ionPopoverDidPresent.next(); + + await checkPopover(page, '.right-click-popover'); + }); + + test('should open popover by hovering over trigger', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + + const button = page.locator('#hover-trigger'); + await button.hover(); + await ionPopoverDidPresent.next(); + + await checkPopover(page, '.hover-popover'); + }); + + test('should still open popover when it has been removed and re-added to DOM', async ({ page }) => { + const button = page.locator('#left-click-trigger'); + const popover = page.locator('.left-click-popover'); + + await popover.evaluate((popover: HTMLIonPopoverElement) => { + popover.remove(); + document.querySelector('ion-button')?.insertAdjacentElement('afterend', popover); + }); + await page.waitForChanges(); + + await button.click(); + await expect(popover).toBeVisible(); + }); + }); +}); + +const checkPopover = async (page: E2EPage, popoverSelector: string) => { + const popover = page.locator(popoverSelector); + await expect(popover).toBeVisible(); +}; diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts b/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts deleted file mode 100644 index c6be715076..0000000000 --- a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('progress-bar: basic', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/progress-bar/test/basic'); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`progress-bar-basic-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts new file mode 100644 index 0000000000..ff67f7621c --- /dev/null +++ b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('progress-bar: basic'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/progress-bar/test/basic', config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`progress-bar-basic`)); + }); + }); +}); diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Safari-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/progress-bar/test/basic/progress-bar.e2e-legacy.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Safari-linux.png rename to core/src/components/progress-bar/test/basic/progress-bar.e2e.ts-snapshots/progress-bar-basic-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts b/core/src/components/range/test/a11y/range.e2e-legacy.ts deleted file mode 100644 index 4005c7dead..0000000000 --- a/core/src/components/range/test/a11y/range.e2e-legacy.ts +++ /dev/null @@ -1,75 +0,0 @@ -import AxeBuilder from '@axe-core/playwright'; -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: a11y', () => { - test('should not have accessibility violations', async ({ page, skip }) => { - skip.rtl(); - skip.mode('md'); - - await page.goto(`/src/components/range/test/a11y`); - - /** - * Axe does not take elements into account - * when checking color-contrast. As a result, it will - * incorrectly report color-contrast issues: https://github.com/dequelabs/axe-core/issues/3329 - */ - const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); - expect(results.violations).toEqual([]); - }); - - test('should not have visual regressions', async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios', 'iOS mode does not display hover/active/focus styles.'); - - await page.setContent( - ` - - - - - ` - ); - - const range = page.locator('ion-range'); - const rangeHandle = range.locator('.range-knob-handle'); - - await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); - await page.waitForChanges(); - - await expect(range).toHaveScreenshot(`range-focus-${page.getSnapshotSettings()}.png`); - - const box = (await rangeHandle.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.waitForChanges(); - - await expect(range).toHaveScreenshot(`range-active-${page.getSnapshotSettings()}.png`); - }); - - test.describe('with pin', () => { - test('should not have visual regressions', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent( - ` - - - - - ` - ); - - const range = page.locator('ion-range'); - const rangeHandle = range.locator('.range-knob-handle'); - - await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); - await page.waitForChanges(); - - await expect(range).toHaveScreenshot(`range-focus-with-pin-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/range/test/a11y/range.e2e.ts b/core/src/components/range/test/a11y/range.e2e.ts new file mode 100644 index 0000000000..d3d053546d --- /dev/null +++ b/core/src/components/range/test/a11y/range.e2e.ts @@ -0,0 +1,73 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: a11y'), () => { + test('should not have accessibility violations', async ({ page }) => { + await page.goto(`/src/components/range/test/a11y`, config); + + /** + * Axe does not take elements into account + * when checking color-contrast. As a result, it will + * incorrectly report color-contrast issues: https://github.com/dequelabs/axe-core/issues/3329 + */ + const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); + expect(results.violations).toEqual([]); + }); + + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + + + + `, + config + ); + + const range = page.locator('ion-range'); + const rangeHandle = range.locator('.range-knob-handle'); + + await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); + await page.waitForChanges(); + + await expect(range).toHaveScreenshot(screenshot(`range-focus`)); + + const box = (await rangeHandle.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.waitForChanges(); + + await expect(range).toHaveScreenshot(screenshot(`range-active`)); + }); + }); +}); + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('with pin'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + + + + `, + config + ); + + const range = page.locator('ion-range'); + const rangeHandle = range.locator('.range-knob-handle'); + + await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); + await page.waitForChanges(); + + await expect(range).toHaveScreenshot(screenshot(`range-focus-with-pin`)); + }); + }); +}); diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts b/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts deleted file mode 100644 index f9fc03a71e..0000000000 --- a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: activeBarStart', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/range/test/active-bar-start`); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`range-activeBarStart-diff-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/active-bar-start/range.e2e.ts b/core/src/components/range/test/active-bar-start/range.e2e.ts new file mode 100644 index 0000000000..99a7e093fc --- /dev/null +++ b/core/src/components/range/test/active-bar-start/range.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('range: activeBarStart'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/range/test/active-bar-start`, config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`range-activeBarStart-diff`)); + }); + }); +}); diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts b/core/src/components/range/test/basic/range.e2e-legacy.ts deleted file mode 100644 index 33157daaf3..0000000000 --- a/core/src/components/range/test/basic/range.e2e-legacy.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: basic', () => { - test.beforeEach(async ({ skip, page }) => { - skip.rtl(); - - await page.goto('/src/components/range/test/basic'); - }); - test('should render default range', async ({ page }) => { - const range = page.locator('ion-range.default'); - await expect(range).toHaveScreenshot(`range-default-${page.getSnapshotSettings()}.png`); - }); - test('should render dual knob range', async ({ page }) => { - const range = page.locator('ion-range.dual-knobs'); - await expect(range).toHaveScreenshot(`range-dual-knobs-${page.getSnapshotSettings()}.png`); - }); - test('should render range with ticks', async ({ page }) => { - const range = page.locator('ion-range.ticks'); - await expect(range).toHaveScreenshot(`range-ticks-${page.getSnapshotSettings()}.png`); - }); - test('should render pin', async ({ page }) => { - const range = page.locator('ion-range.pin'); - const knob = range.locator('.range-knob-handle'); - - // Force the pin to show - await knob.evaluate((el: HTMLElement) => el.classList.add('ion-focused')); - - await expect(range).toHaveScreenshot(`range-pin-${page.getSnapshotSettings()}.png`, { animations: 'disabled' }); - }); -}); diff --git a/core/src/components/range/test/basic/range.e2e.ts b/core/src/components/range/test/basic/range.e2e.ts new file mode 100644 index 0000000000..f864f2d049 --- /dev/null +++ b/core/src/components/range/test/basic/range.e2e.ts @@ -0,0 +1,31 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: basic'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/range/test/basic', config); + }); + test('should render default range', async ({ page }) => { + const range = page.locator('ion-range.default'); + await expect(range).toHaveScreenshot(screenshot(`range-default`)); + }); + test('should render dual knob range', async ({ page }) => { + const range = page.locator('ion-range.dual-knobs'); + await expect(range).toHaveScreenshot(screenshot(`range-dual-knobs`)); + }); + test('should render range with ticks', async ({ page }) => { + const range = page.locator('ion-range.ticks'); + await expect(range).toHaveScreenshot(screenshot(`range-ticks`)); + }); + test('should render pin', async ({ page }) => { + const range = page.locator('ion-range.pin'); + const knob = range.locator('.range-knob-handle'); + + // Force the pin to show + await knob.evaluate((el: HTMLElement) => el.classList.add('ion-focused')); + + await expect(range).toHaveScreenshot(screenshot(`range-pin`)); + }); + }); +}); diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-default-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-default-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-dual-knobs-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-pin-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-pin-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/basic/range.e2e-legacy.ts-snapshots/range-ticks-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/basic/range.e2e.ts-snapshots/range-ticks-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts b/core/src/components/range/test/color/range.e2e-legacy.ts deleted file mode 100644 index 729b76c1f5..0000000000 --- a/core/src/components/range/test/color/range.e2e-legacy.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: color', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('should apply color', async ({ page }) => { - await page.setContent(` - - - - Volume - - `); - - const range = page.locator('ion-range'); - expect(await range.screenshot()).toMatchSnapshot(`range-color-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/color/range.e2e.ts b/core/src/components/range/test/color/range.e2e.ts new file mode 100644 index 0000000000..11bcccad73 --- /dev/null +++ b/core/src/components/range/test/color/range.e2e.ts @@ -0,0 +1,22 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: color'), () => { + test('should apply color', async ({ page }) => { + await page.setContent( + ` + + + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-color`)); + }); + }); +}); diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/color/range.e2e-legacy.ts-snapshots/range-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/color/range.e2e.ts-snapshots/range-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts b/core/src/components/range/test/custom/range.e2e-legacy.ts deleted file mode 100644 index a16ae7da1e..0000000000 --- a/core/src/components/range/test/custom/range.e2e-legacy.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: customization', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('should be customizable', async ({ page }) => { - await page.goto(`/src/components/range/test/custom`); - - const range = page.locator('ion-range'); - expect(await range.screenshot()).toMatchSnapshot(`range-custom-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/custom/range.e2e.ts b/core/src/components/range/test/custom/range.e2e.ts new file mode 100644 index 0000000000..91aa696121 --- /dev/null +++ b/core/src/components/range/test/custom/range.e2e.ts @@ -0,0 +1,13 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: customization'), () => { + test('should be customizable', async ({ page }) => { + await page.goto(`/src/components/range/test/custom`, config); + + const range = page.locator('ion-range'); + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-custom`)); + }); + }); +}); diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/custom/range.e2e-legacy.ts-snapshots/range-custom-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/custom/range.e2e.ts-snapshots/range-custom-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts b/core/src/components/range/test/item/range.e2e-legacy.ts deleted file mode 100644 index f8f7172f7f..0000000000 --- a/core/src/components/range/test/item/range.e2e-legacy.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: item', () => { - test('should render correctly in list', async ({ page }) => { - await page.setContent(` - - -
Temperature
-
-
- `); - const list = page.locator('ion-list'); - expect(await list.screenshot()).toMatchSnapshot(`range-list-${page.getSnapshotSettings()}.png`); - }); - test('should render correctly in inset list', async ({ page }) => { - await page.setContent(` - - -
Temperature
-
-
- `); - const list = page.locator('ion-list'); - expect(await list.screenshot()).toMatchSnapshot(`range-inset-list-${page.getSnapshotSettings()}.png`); - }); - test('label should have correct contrast when used in an item', async ({ page, skip }) => { - skip.rtl(); - await page.setContent(` - -
Temperature
-
- `); - const item = page.locator('ion-item'); - expect(await item.screenshot()).toMatchSnapshot(`range-item-color-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/item/range.e2e.ts b/core/src/components/range/test/item/range.e2e.ts new file mode 100644 index 0000000000..86ff5a589e --- /dev/null +++ b/core/src/components/range/test/item/range.e2e.ts @@ -0,0 +1,52 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('range: item'), () => { + test('should render correctly in list', async ({ page }) => { + await page.setContent( + ` + + +
Temperature
+
+
+ `, + config + ); + const list = page.locator('ion-list'); + expect(await list.screenshot()).toMatchSnapshot(screenshot(`range-list`)); + }); + test('should render correctly in inset list', async ({ page }) => { + await page.setContent( + ` + + +
Temperature
+
+
+ `, + config + ); + const list = page.locator('ion-list'); + expect(await list.screenshot()).toMatchSnapshot(screenshot(`range-inset-list`)); + }); + }); +}); + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: item color'), () => { + test('label should have correct contrast when used in an item', async ({ page }) => { + await page.setContent( + ` + +
Temperature
+
+ `, + config + ); + const item = page.locator('ion-item'); + expect(await item.screenshot()).toMatchSnapshot(screenshot(`range-item-color`)); + }); + }); +}); diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-inset-list-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-inset-list-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-item-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-item-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/item/range.e2e-legacy.ts-snapshots/range-list-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/item/range.e2e.ts-snapshots/range-list-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts b/core/src/components/range/test/label/range.e2e-legacy.ts deleted file mode 100644 index d773cce0ec..0000000000 --- a/core/src/components/range/test/label/range.e2e-legacy.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: label', () => { - test.describe('range: no start or end items', () => { - test('should render a range with no visible label', async ({ page }) => { - await page.setContent(` - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-no-items-no-label-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the start placement', async ({ page }) => { - await page.setContent(` - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-no-items-start-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the end placement', async ({ page }) => { - await page.setContent(` - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-no-items-end-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the fixed placement', async ({ page }) => { - await page.setContent(` - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-no-items-fixed-${page.getSnapshotSettings()}.png`); - }); - }); - - test.describe('range: start and end items', () => { - test('should render a range with no visible label', async ({ page }) => { - await page.setContent(` - - - - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-items-no-label-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the start placement', async ({ page }) => { - await page.setContent(` - - - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-items-start-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the end placement', async ({ page }) => { - await page.setContent(` - - - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-items-end-${page.getSnapshotSettings()}.png`); - }); - test('should render label in the fixed placement', async ({ page }) => { - await page.setContent(` - - - - Volume - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-items-fixed-${page.getSnapshotSettings()}.png`); - }); - }); - - test.describe('range: label overflow', () => { - test('label should be truncated with ellipses', async ({ page, skip }) => { - skip.mode('ios'); - skip.rtl(); - - await page.setContent(` - -
Temperature Temperature Temperature Temperature Temperature Temperature
-
- `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-label-truncate-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/range/test/label/range.e2e.ts b/core/src/components/range/test/label/range.e2e.ts new file mode 100644 index 0000000000..9e90103f04 --- /dev/null +++ b/core/src/components/range/test/label/range.e2e.ts @@ -0,0 +1,148 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('range: label'), () => { + test.describe('range: no start or end items', () => { + test('should render a range with no visible label', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-no-items-no-label`)); + }); + test('should render label in the start placement', async ({ page }) => { + await page.setContent( + ` + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-no-items-start`)); + }); + test('should render label in the end placement', async ({ page }) => { + await page.setContent( + ` + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-no-items-end`)); + }); + test('should render label in the fixed placement', async ({ page }) => { + await page.setContent( + ` + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-no-items-fixed`)); + }); + }); + + test.describe('range: start and end items', () => { + test('should render a range with no visible label', async ({ page }) => { + await page.setContent( + ` + + + + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-items-no-label`)); + }); + test('should render label in the start placement', async ({ page }) => { + await page.setContent( + ` + + + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-items-start`)); + }); + test('should render label in the end placement', async ({ page }) => { + await page.setContent( + ` + + + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-items-end`)); + }); + test('should render label in the fixed placement', async ({ page }) => { + await page.setContent( + ` + + + + Volume + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-items-fixed`)); + }); + }); + }); +}); + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: label overflow'), () => { + test('label should be truncated with ellipses', async ({ page }) => { + await page.setContent( + ` + +
Temperature Temperature Temperature Temperature Temperature Temperature
+
+ `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-label-truncate`)); + }); + }); +}); diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-fixed-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-fixed-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-no-label-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-no-label-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-items-start-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-items-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-label-truncate-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-label-truncate-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-fixed-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-no-label-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/label/range.e2e-legacy.ts-snapshots/range-no-items-start-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/label/range.e2e.ts-snapshots/range-no-items-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts b/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts deleted file mode 100644 index d60877daf1..0000000000 --- a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: a11y', () => { - test('should not have visual regressions', async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios', 'iOS mode does not display hover/active/focus styles.'); - - await page.setContent( - ` - - - - - ` - ); - - const range = page.locator('ion-range'); - const rangeHandle = range.locator('.range-knob-handle'); - - await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); - await page.waitForChanges(); - - expect(await range.screenshot()).toMatchSnapshot(`range-focus-${page.getSnapshotSettings()}.png`); - - const box = (await rangeHandle.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.waitForChanges(); - - expect(await range.screenshot()).toMatchSnapshot(`range-active-${page.getSnapshotSettings()}.png`); - }); - - test.describe('with pin', () => { - test('should not have visual regressions', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent( - ` - - - - - ` - ); - - const range = page.locator('ion-range'); - const rangeHandle = range.locator('.range-knob-handle'); - - await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); - await page.waitForChanges(); - - expect(await range.screenshot()).toMatchSnapshot(`range-focus-with-pin-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/range/test/legacy/a11y/range.e2e.ts b/core/src/components/range/test/legacy/a11y/range.e2e.ts new file mode 100644 index 0000000000..4cae478087 --- /dev/null +++ b/core/src/components/range/test/legacy/a11y/range.e2e.ts @@ -0,0 +1,63 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * iOS mode does not display hover/active/focus styles. + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: a11y'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + + + + `, + config + ); + + const range = page.locator('ion-range'); + const rangeHandle = range.locator('.range-knob-handle'); + + await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); + await page.waitForChanges(); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-focus`)); + + const box = (await rangeHandle.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.waitForChanges(); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-active`)); + }); + }); +}); + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('with pin'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + + + + `, + config + ); + + const range = page.locator('ion-range'); + const rangeHandle = range.locator('.range-knob-handle'); + + await rangeHandle.evaluate((el) => el.classList.add('ion-focused')); + await page.waitForChanges(); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-focus-with-pin`)); + }); + }); +}); diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-active-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/a11y/range.e2e-legacy.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/a11y/range.e2e.ts-snapshots/range-focus-with-pin-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts b/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts deleted file mode 100644 index 7a62825c76..0000000000 --- a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: activeBarStart', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/range/test/legacy/active-bar-start`); - - await page.setIonViewport(); - - expect(await page.screenshot()).toMatchSnapshot(`range-activeBarStart-diff-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts new file mode 100644 index 0000000000..6735ea304f --- /dev/null +++ b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('range: activeBarStart'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/range/test/legacy/active-bar-start`, config); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(screenshot(`range-activeBarStart-diff`)); + }); + }); +}); diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/active-bar-start/range.e2e-legacy.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/active-bar-start/range.e2e.ts-snapshots/range-activeBarStart-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts b/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts deleted file mode 100644 index be8cfcc5ac..0000000000 --- a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { expect } from '@playwright/test'; -import { dragElementBy, test } from '@utils/test/playwright'; - -test.describe('range: basic', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/range/test/legacy/basic`); - - await page.setIonViewport(); - - expect(await page.screenshot()).toMatchSnapshot(`range-diff-${page.getSnapshotSettings()}.png`); - }); - - /** - * The mouse events are flaky on CI - * TODO FW-2873 - */ - test.fixme('should emit start/end events', async ({ page }, testInfo) => { - await page.setContent(``); - - const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); - const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); - - const rangeEl = page.locator('ion-range'); - - await dragElementBy(rangeEl, page, testInfo.project.metadata.rtl ? -300 : 300, 0); - await page.waitForChanges(); - - /** - * dragElementBy defaults to starting the drag from the middle of the el, - * so the start value should jump to 50 despite the range defaulting to 20. - */ - expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 100 }); - - /** - * Verify both events fire if range is clicked without dragging. - */ - await dragElementBy(rangeEl, page, 0, 0); - await page.waitForChanges(); - - expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 50 }); - }); - - test('should emit start/end events, keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); - const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); - - await page.keyboard.press('Tab'); // focus first range - await page.keyboard.press('ArrowRight'); - - await rangeStart.next(); - await rangeEnd.next(); - - expect(rangeStart).toHaveReceivedEventDetail({ value: 20 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 21 }); - }); - - // TODO FW-2873 - test.skip('should not scroll when the knob is swiped', async ({ page, skip }) => { - skip.browser('webkit', 'mouse.wheel is not available in WebKit'); - skip.rtl(); - - await page.goto(`/src/components/range/test/legacy/basic`); - - const knobEl = page.locator('ion-range#stacked-range .range-knob-handle'); - const scrollEl = page.locator('ion-content .inner-scroll'); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - - const box = (await knobEl.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.mouse.move(centerX + 30, centerY); - - /** - * Do not use scrollToBottom() or other scrolling methods - * on ion-content as those will update the scroll position. - * Setting scrollTop still works even with overflow-y: hidden. - * However, simulating a user gesture should not scroll the content. - */ - await page.mouse.wheel(0, 100); - await page.waitForChanges(); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - }); -}); diff --git a/core/src/components/range/test/legacy/basic/range.e2e.ts b/core/src/components/range/test/legacy/basic/range.e2e.ts new file mode 100644 index 0000000000..d990ac59c5 --- /dev/null +++ b/core/src/components/range/test/legacy/basic/range.e2e.ts @@ -0,0 +1,100 @@ +import { expect } from '@playwright/test'; +import { configs, dragElementBy, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('range: rendering'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/range/test/legacy/basic`, config); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(screenshot(`range-diff`)); + }); + }); +}); + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('range: behavior'), () => { + /** + * The mouse events are flaky on CI + * TODO FW-2873 + */ + test.fixme('should emit start/end events', async ({ page }) => { + await page.setContent(``, config); + + const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); + const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); + + const rangeEl = page.locator('ion-range'); + + await dragElementBy(rangeEl, page, 300, 0); + await page.waitForChanges(); + + /** + * dragElementBy defaults to starting the drag from the middle of the el, + * so the start value should jump to 50 despite the range defaulting to 20. + */ + expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 100 }); + + /** + * Verify both events fire if range is clicked without dragging. + */ + await dragElementBy(rangeEl, page, 0, 0); + await page.waitForChanges(); + + expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 50 }); + }); + + test('should emit start/end events, keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); + const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); + + await page.keyboard.press('Tab'); // focus first range + await page.keyboard.press('ArrowRight'); + + await rangeStart.next(); + await rangeEnd.next(); + + expect(rangeStart).toHaveReceivedEventDetail({ value: 20 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 21 }); + }); + + // TODO FW-2873 + test.skip('should not scroll when the knob is swiped', async ({ page, skip }) => { + skip.browser('webkit', 'mouse.wheel is not available in WebKit'); + + await page.goto(`/src/components/range/test/legacy/basic`, config); + + const knobEl = page.locator('ion-range#stacked-range .range-knob-handle'); + const scrollEl = page.locator('ion-content .inner-scroll'); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + + const box = (await knobEl.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.mouse.move(centerX + 30, centerY); + + /** + * Do not use scrollToBottom() or other scrolling methods + * on ion-content as those will update the scroll position. + * Setting scrollTop still works even with overflow-y: hidden. + * However, simulating a user gesture should not scroll the content. + */ + await page.mouse.wheel(0, 100); + await page.waitForChanges(); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + }); + }); +}); diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/legacy/basic/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/range/test/legacy/basic/range.e2e.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/legacy/range-events.e2e-legacy.ts b/core/src/components/range/test/legacy/range-events.e2e-legacy.ts deleted file mode 100644 index 42dbbb7c6a..0000000000 --- a/core/src/components/range/test/legacy/range-events.e2e-legacy.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: events:', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('md'); - }); - - test.describe(' ionChange', () => { - test('should not emit if the value is set programmatically', async ({ page }) => { - await page.setContent(``); - - const range = page.locator('ion-range'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await range.evaluate((el: HTMLIonRangeElement) => { - el.value = 50; - }); - - await page.waitForChanges(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - - // Update the value again to make sure it doesn't emit a second time - await range.evaluate((el: HTMLIonRangeElement) => { - el.value = 60; - }); - - await page.waitForChanges(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - }); - - // TODO(FW-2873) - test.skip('should emit when the knob is released', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - const boundingBox = await rangeHandle.boundingBox(); - - await rangeHandle.hover(); - await page.mouse.down(); - await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); - - await page.mouse.up(); - - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - }); - - test('should emit when the knob is moved with the keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await rangeHandle.click(); - - await page.keyboard.press('ArrowLeft'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 49 }); - - await page.keyboard.press('ArrowRight'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); - - await page.keyboard.press('ArrowUp'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 51 }); - - await page.keyboard.press('ArrowDown'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); - }); - }); - - test.describe('ionInput', () => { - // TODO(FW-2873) Enable this test when touch events/gestures are better supported in Playwright - test.skip('should emit when the knob is dragged', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionInputSpy = await page.spyOnEvent('ionInput'); - - const boundingBox = await rangeHandle.boundingBox(); - - await rangeHandle.hover(); - await page.mouse.down(); - await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); - - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEvent(); - }); - - test('should emit when the knob is moved with the keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionInputSpy = await page.spyOnEvent('ionInput'); - - await rangeHandle.click(); - - await page.keyboard.press('ArrowLeft'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 49 }); - - await page.keyboard.press('ArrowRight'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); - - await page.keyboard.press('ArrowUp'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 51 }); - - await page.keyboard.press('ArrowDown'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); - }); - }); -}); diff --git a/core/src/components/range/test/legacy/range-events.e2e.ts b/core/src/components/range/test/legacy/range-events.e2e.ts new file mode 100644 index 0000000000..3db8c3bc60 --- /dev/null +++ b/core/src/components/range/test/legacy/range-events.e2e.ts @@ -0,0 +1,130 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('range: events:'), () => { + test.describe(' ionChange', () => { + test('should not emit if the value is set programmatically', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await range.evaluate((el: HTMLIonRangeElement) => { + el.value = 50; + }); + + await page.waitForChanges(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + + // Update the value again to make sure it doesn't emit a second time + await range.evaluate((el: HTMLIonRangeElement) => { + el.value = 60; + }); + + await page.waitForChanges(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + }); + + // TODO(FW-2873) + test.skip('should emit when the knob is released', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + const boundingBox = await rangeHandle.boundingBox(); + + await rangeHandle.hover(); + await page.mouse.down(); + await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); + + await page.mouse.up(); + + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + }); + + test('should emit when the knob is moved with the keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await rangeHandle.click(); + + await page.keyboard.press('ArrowLeft'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 49 }); + + await page.keyboard.press('ArrowRight'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); + + await page.keyboard.press('ArrowUp'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 51 }); + + await page.keyboard.press('ArrowDown'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); + }); + }); + + test.describe('ionInput', () => { + // TODO(FW-2873) Enable this test when touch events/gestures are better supported in Playwright + test.skip('should emit when the knob is dragged', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionInputSpy = await page.spyOnEvent('ionInput'); + + const boundingBox = await rangeHandle.boundingBox(); + + await rangeHandle.hover(); + await page.mouse.down(); + await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); + + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEvent(); + }); + + test('should emit when the knob is moved with the keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionInputSpy = await page.spyOnEvent('ionInput'); + + await rangeHandle.click(); + + await page.keyboard.press('ArrowLeft'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 49 }); + + await page.keyboard.press('ArrowRight'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); + + await page.keyboard.press('ArrowUp'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 51 }); + + await page.keyboard.press('ArrowDown'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); + }); + }); + }); +}); diff --git a/core/src/components/range/test/legacy/scroll-target/range.e2e-legacy.ts b/core/src/components/range/test/legacy/scroll-target/range.e2e-legacy.ts deleted file mode 100644 index 2a9365ed2c..0000000000 --- a/core/src/components/range/test/legacy/scroll-target/range.e2e-legacy.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -// TODO FW-2873 -test.describe.skip('range: scroll-target', () => { - test('should not scroll when the knob is swiped in custom scroll target', async ({ page, skip }) => { - skip.browser('webkit', 'mouse.wheel is not available in WebKit'); - skip.rtl(); - - await page.goto(`/src/components/range/test/legacy/scroll-target`); - - const knobEl = page.locator('ion-range .range-knob-handle'); - const scrollEl = page.locator('.ion-content-scroll-host'); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - - const box = (await knobEl.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.mouse.move(centerX + 30, centerY); - - /** - * Do not use scrollToBottom() or other scrolling methods - * on ion-content as those will update the scroll position. - * Setting scrollTop still works even with overflow-y: hidden. - * However, simulating a user gesture should not scroll the content. - */ - await page.mouse.wheel(0, 100); - await page.waitForChanges(); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - }); -}); diff --git a/core/src/components/range/test/legacy/scroll-target/range.e2e.ts b/core/src/components/range/test/legacy/scroll-target/range.e2e.ts new file mode 100644 index 0000000000..d1240a6a88 --- /dev/null +++ b/core/src/components/range/test/legacy/scroll-target/range.e2e.ts @@ -0,0 +1,37 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +// TODO FW-2873 +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('range: scroll-target'), () => { + test('should not scroll when the knob is swiped in custom scroll target', async ({ page, skip }) => { + skip.browser('webkit', 'mouse.wheel is not available in WebKit'); + + await page.goto(`/src/components/range/test/legacy/scroll-target`, config); + + const knobEl = page.locator('ion-range .range-knob-handle'); + const scrollEl = page.locator('.ion-content-scroll-host'); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + + const box = (await knobEl.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.mouse.move(centerX + 30, centerY); + + /** + * Do not use scrollToBottom() or other scrolling methods + * on ion-content as those will update the scroll position. + * Setting scrollTop still works even with overflow-y: hidden. + * However, simulating a user gesture should not scroll the content. + */ + await page.mouse.wheel(0, 100); + await page.waitForChanges(); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + }); + }); +}); diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index f53dfd2b8a..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index fb8f9f706e..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 35fbaedb2e..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 9b793ae0e2..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 6342efbfc1..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 038ebf7c01..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index 69393f4371..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png deleted file mode 100644 index fb7a683eee..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png deleted file mode 100644 index 37787ff82d..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 68d1ae6f63..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 76e3178bee..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 16294c4a5e..0000000000 Binary files a/core/src/components/range/test/legacy/standalone/range.e2e-legacy.ts-snapshots/range-diff-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/range/test/range-events.e2e-legacy.ts b/core/src/components/range/test/range-events.e2e-legacy.ts deleted file mode 100644 index 3d31c92d9f..0000000000 --- a/core/src/components/range/test/range-events.e2e-legacy.ts +++ /dev/null @@ -1,214 +0,0 @@ -import { expect } from '@playwright/test'; -import { dragElementBy, test } from '@utils/test/playwright'; - -test.describe('range: events:', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('md'); - }); - - test.describe('range: knob events', () => { - /** - * The mouse events are flaky on CI - */ - test.fixme('should emit start/end events', async ({ page }, testInfo) => { - await page.setContent(``); - - const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); - const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); - - const rangeEl = page.locator('ion-range'); - - await dragElementBy(rangeEl, page, testInfo.project.metadata.rtl ? -300 : 300, 0); - await page.waitForChanges(); - - /** - * dragElementBy defaults to starting the drag from the middle of the el, - * so the start value should jump to 50 despite the range defaulting to 20. - */ - expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 100 }); - - /** - * Verify both events fire if range is clicked without dragging. - */ - await dragElementBy(rangeEl, page, 0, 0); - await page.waitForChanges(); - - expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 50 }); - }); - - test('should emit start/end events, keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); - const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); - - await page.keyboard.press('Tab'); // focus first range - await page.keyboard.press('ArrowRight'); - - await rangeStart.next(); - await rangeEnd.next(); - - expect(rangeStart).toHaveReceivedEventDetail({ value: 20 }); - expect(rangeEnd).toHaveReceivedEventDetail({ value: 21 }); - }); - - // TODO FW-2873 - test.skip('should not scroll when the knob is swiped', async ({ page, skip }) => { - skip.browser('webkit', 'mouse.wheel is not available in WebKit'); - skip.rtl(); - - await page.goto(`/src/components/range/test/legacy/basic`); - - const knobEl = page.locator('ion-range#stacked-range .range-knob-handle'); - const scrollEl = page.locator('ion-content .inner-scroll'); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - - const box = (await knobEl.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.mouse.move(centerX + 30, centerY); - - /** - * Do not use scrollToBottom() or other scrolling methods - * on ion-content as those will update the scroll position. - * Setting scrollTop still works even with overflow-y: hidden. - * However, simulating a user gesture should not scroll the content. - */ - await page.mouse.wheel(0, 100); - await page.waitForChanges(); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - }); - }); - - test.describe('ionChange', () => { - test('should not emit if the value is set programmatically', async ({ page }) => { - await page.setContent(``); - - const range = page.locator('ion-range'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await range.evaluate((el: HTMLIonRangeElement) => { - el.value = 50; - }); - - await page.waitForChanges(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - - // Update the value again to make sure it doesn't emit a second time - await range.evaluate((el: HTMLIonRangeElement) => { - el.value = 60; - }); - - await page.waitForChanges(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - }); - - // TODO FW-2873 - test.skip('should emit when the knob is released', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - const boundingBox = await rangeHandle.boundingBox(); - - await rangeHandle.hover(); - await page.mouse.down(); - await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); - - await page.mouse.up(); - - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - }); - - test('should emit when the knob is moved with the keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await rangeHandle.click(); - - await page.keyboard.press('ArrowLeft'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 49 }); - - await page.keyboard.press('ArrowRight'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); - - await page.keyboard.press('ArrowUp'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 51 }); - - await page.keyboard.press('ArrowDown'); - await ionChangeSpy.next(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); - }); - }); - - test.describe('ionInput', () => { - // TODO(FW-2873) Enable this test when touch events/gestures are better supported in Playwright - test.skip('should emit when the knob is dragged', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionInputSpy = await page.spyOnEvent('ionInput'); - - const boundingBox = await rangeHandle.boundingBox(); - - await rangeHandle.hover(); - await page.mouse.down(); - await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); - - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEvent(); - }); - - test('should emit when the knob is moved with the keyboard', async ({ page }) => { - await page.setContent(``); - - const rangeHandle = page.locator('ion-range .range-knob-handle'); - const ionInputSpy = await page.spyOnEvent('ionInput'); - - await rangeHandle.click(); - - await page.keyboard.press('ArrowLeft'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 49 }); - - await page.keyboard.press('ArrowRight'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); - - await page.keyboard.press('ArrowUp'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 51 }); - - await page.keyboard.press('ArrowDown'); - await ionInputSpy.next(); - - expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); - }); - }); -}); diff --git a/core/src/components/range/test/range-events.e2e.ts b/core/src/components/range/test/range-events.e2e.ts new file mode 100644 index 0000000000..08eea08e0c --- /dev/null +++ b/core/src/components/range/test/range-events.e2e.ts @@ -0,0 +1,213 @@ +import { expect } from '@playwright/test'; +import { configs, dragElementBy, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('range: events:'), () => { + test.describe('range: knob events', () => { + /** + * The mouse events are flaky on CI + */ + test.fixme('should emit start/end events', async ({ page }, testInfo) => { + await page.setContent(``, config); + + const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); + const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); + + const rangeEl = page.locator('ion-range'); + + await dragElementBy(rangeEl, page, testInfo.project.metadata.rtl ? -300 : 300, 0); + await page.waitForChanges(); + + /** + * dragElementBy defaults to starting the drag from the middle of the el, + * so the start value should jump to 50 despite the range defaulting to 20. + */ + expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 100 }); + + /** + * Verify both events fire if range is clicked without dragging. + */ + await dragElementBy(rangeEl, page, 0, 0); + await page.waitForChanges(); + + expect(rangeStart).toHaveReceivedEventDetail({ value: 50 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 50 }); + }); + + test('should emit start/end events, keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeStart = await page.spyOnEvent('ionKnobMoveStart'); + const rangeEnd = await page.spyOnEvent('ionKnobMoveEnd'); + + await page.keyboard.press('Tab'); // focus first range + await page.keyboard.press('ArrowRight'); + + await rangeStart.next(); + await rangeEnd.next(); + + expect(rangeStart).toHaveReceivedEventDetail({ value: 20 }); + expect(rangeEnd).toHaveReceivedEventDetail({ value: 21 }); + }); + + // TODO FW-2873 + test.skip('should not scroll when the knob is swiped', async ({ page, skip }) => { + skip.browser('webkit', 'mouse.wheel is not available in WebKit'); + + await page.goto(`/src/components/range/test/legacy/basic`, config); + + const knobEl = page.locator('ion-range#stacked-range .range-knob-handle'); + const scrollEl = page.locator('ion-content .inner-scroll'); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + + const box = (await knobEl.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.mouse.move(centerX + 30, centerY); + + /** + * Do not use scrollToBottom() or other scrolling methods + * on ion-content as those will update the scroll position. + * Setting scrollTop still works even with overflow-y: hidden. + * However, simulating a user gesture should not scroll the content. + */ + await page.mouse.wheel(0, 100); + await page.waitForChanges(); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + }); + }); + + test.describe('ionChange', () => { + test('should not emit if the value is set programmatically', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await range.evaluate((el: HTMLIonRangeElement) => { + el.value = 50; + }); + + await page.waitForChanges(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + + // Update the value again to make sure it doesn't emit a second time + await range.evaluate((el: HTMLIonRangeElement) => { + el.value = 60; + }); + + await page.waitForChanges(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + }); + + // TODO FW-2873 + test.skip('should emit when the knob is released', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + const boundingBox = await rangeHandle.boundingBox(); + + await rangeHandle.hover(); + await page.mouse.down(); + await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); + + await page.mouse.up(); + + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + }); + + test('should emit when the knob is moved with the keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await rangeHandle.click(); + + await page.keyboard.press('ArrowLeft'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 49 }); + + await page.keyboard.press('ArrowRight'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); + + await page.keyboard.press('ArrowUp'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 51 }); + + await page.keyboard.press('ArrowDown'); + await ionChangeSpy.next(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: 50 }); + }); + }); + + test.describe('ionInput', () => { + // TODO(FW-2873) Enable this test when touch events/gestures are better supported in Playwright + test.skip('should emit when the knob is dragged', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionInputSpy = await page.spyOnEvent('ionInput'); + + const boundingBox = await rangeHandle.boundingBox(); + + await rangeHandle.hover(); + await page.mouse.down(); + await page.mouse.move(boundingBox!.x + 100, boundingBox!.y); + + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEvent(); + }); + + test('should emit when the knob is moved with the keyboard', async ({ page }) => { + await page.setContent(``, config); + + const rangeHandle = page.locator('ion-range .range-knob-handle'); + const ionInputSpy = await page.spyOnEvent('ionInput'); + + await rangeHandle.click(); + + await page.keyboard.press('ArrowLeft'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 49 }); + + await page.keyboard.press('ArrowRight'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); + + await page.keyboard.press('ArrowUp'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 51 }); + + await page.keyboard.press('ArrowDown'); + await ionInputSpy.next(); + + expect(ionInputSpy).toHaveReceivedEventDetail({ value: 50 }); + }); + }); + }); +}); diff --git a/core/src/components/range/test/scroll-target/range.e2e-legacy.ts b/core/src/components/range/test/scroll-target/range.e2e-legacy.ts deleted file mode 100644 index 7050a7b770..0000000000 --- a/core/src/components/range/test/scroll-target/range.e2e-legacy.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -// TODO FW-2873 -test.describe.skip('range: scroll-target', () => { - test('should not scroll when the knob is swiped in custom scroll target', async ({ page, skip }) => { - skip.browser('webkit', 'mouse.wheel is not available in WebKit'); - skip.rtl(); - - await page.goto(`/src/components/range/test/scroll-target`); - - const knobEl = page.locator('ion-range .range-knob-handle'); - const scrollEl = page.locator('.ion-content-scroll-host'); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - - const box = (await knobEl.boundingBox())!; - const centerX = box.x + box.width / 2; - const centerY = box.y + box.height / 2; - - await page.mouse.move(centerX, centerY); - await page.mouse.down(); - await page.mouse.move(centerX + 30, centerY); - - /** - * Do not use scrollToBottom() or other scrolling methods - * on ion-content as those will update the scroll position. - * Setting scrollTop still works even with overflow-y: hidden. - * However, simulating a user gesture should not scroll the content. - */ - await page.mouse.wheel(0, 100); - await page.waitForChanges(); - - expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); - }); -}); diff --git a/core/src/components/range/test/scroll-target/range.e2e.ts b/core/src/components/range/test/scroll-target/range.e2e.ts new file mode 100644 index 0000000000..990c4cd4f2 --- /dev/null +++ b/core/src/components/range/test/scroll-target/range.e2e.ts @@ -0,0 +1,40 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +// TODO FW-2873 +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('range: scroll-target'), () => { + test('should not scroll when the knob is swiped in custom scroll target', async ({ page, skip }) => { + skip.browser('webkit', 'mouse.wheel is not available in WebKit'); + + await page.goto(`/src/components/range/test/scroll-target`, config); + + const knobEl = page.locator('ion-range .range-knob-handle'); + const scrollEl = page.locator('.ion-content-scroll-host'); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + + const box = (await knobEl.boundingBox())!; + const centerX = box.x + box.width / 2; + const centerY = box.y + box.height / 2; + + await page.mouse.move(centerX, centerY); + await page.mouse.down(); + await page.mouse.move(centerX + 30, centerY); + + /** + * Do not use scrollToBottom() or other scrolling methods + * on ion-content as those will update the scroll position. + * Setting scrollTop still works even with overflow-y: hidden. + * However, simulating a user gesture should not scroll the content. + */ + await page.mouse.wheel(0, 100); + await page.waitForChanges(); + + expect(await scrollEl.evaluate((el: HTMLElement) => el.scrollTop)).toEqual(0); + }); + }); +}); diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts b/core/src/components/range/test/states/range.e2e-legacy.ts deleted file mode 100644 index 99adcde93f..0000000000 --- a/core/src/components/range/test/states/range.e2e-legacy.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('range: states', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('should render enabled state', async ({ page }) => { - await page.setContent(` - - - - Temperature - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-enabled-${page.getSnapshotSettings()}.png`); - }); - test('should render disabled state', async ({ page }) => { - await page.setContent(` - - - - Temperature - - `); - - const range = page.locator('ion-range'); - - expect(await range.screenshot()).toMatchSnapshot(`range-disabled-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/range/test/states/range.e2e.ts b/core/src/components/range/test/states/range.e2e.ts new file mode 100644 index 0000000000..82a0bbdbed --- /dev/null +++ b/core/src/components/range/test/states/range.e2e.ts @@ -0,0 +1,39 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('range: states'), () => { + test('should render enabled state', async ({ page }) => { + await page.setContent( + ` + + + + Temperature + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-enabled`)); + }); + test('should render disabled state', async ({ page }) => { + await page.setContent( + ` + + + + Temperature + + `, + config + ); + + const range = page.locator('ion-range'); + + expect(await range.screenshot()).toMatchSnapshot(screenshot(`range-disabled`)); + }); + }); +}); diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-disabled-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-disabled-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/range/test/states/range.e2e-legacy.ts-snapshots/range-enabled-md-ltr-Mobile-Safari-linux.png rename to core/src/components/range/test/states/range.e2e.ts-snapshots/range-enabled-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/refresher/test/basic/refresher.e2e-legacy.ts b/core/src/components/refresher/test/basic/refresher.e2e-legacy.ts deleted file mode 100644 index 219fa1fbf7..0000000000 --- a/core/src/components/refresher/test/basic/refresher.e2e-legacy.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { pullToRefresh } from '../test.utils'; - -// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright -test.skip('refresher: basic', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/refresher/test/basic'); - }); - - test.describe('legacy refresher', () => { - test('should load more items when performing a pull-to-refresh', async ({ page }) => { - const items = page.locator('ion-item'); - - expect(await items.count()).toBe(30); - - await pullToRefresh(page); - - expect(await items.count()).toBe(60); - }); - }); - - test.describe('native refresher', () => { - test('should load more items when performing a pull-to-refresh', async ({ page }) => { - const refresherContent = page.locator('ion-refresher-content'); - refresherContent.evaluateHandle((el: any) => { - // Resets the pullingIcon to enable the native refresher - el.pullingIcon = undefined; - }); - - await page.waitForChanges(); - - const items = page.locator('ion-item'); - expect(await items.count()).toBe(30); - - await pullToRefresh(page); - - expect(await items.count()).toBe(60); - }); - }); -}); diff --git a/core/src/components/refresher/test/basic/refresher.e2e.ts b/core/src/components/refresher/test/basic/refresher.e2e.ts new file mode 100644 index 0000000000..fe17dd7fca --- /dev/null +++ b/core/src/components/refresher/test/basic/refresher.e2e.ts @@ -0,0 +1,48 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { pullToRefresh } from '../test.utils'; + +// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('refresher: basic'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/refresher/test/basic', config); + }); + + test.describe('legacy refresher', () => { + test('should load more items when performing a pull-to-refresh', async ({ page }) => { + const items = page.locator('ion-item'); + + expect(await items.count()).toBe(30); + + await pullToRefresh(page); + + expect(await items.count()).toBe(60); + }); + }); + + test.describe('native refresher', () => { + test('should load more items when performing a pull-to-refresh', async ({ page }) => { + const refresherContent = page.locator('ion-refresher-content'); + refresherContent.evaluateHandle((el: any) => { + // Resets the pullingIcon to enable the native refresher + el.pullingIcon = undefined; + }); + + await page.waitForChanges(); + + const items = page.locator('ion-item'); + expect(await items.count()).toBe(30); + + await pullToRefresh(page); + + expect(await items.count()).toBe(60); + }); + }); + }); +}); diff --git a/core/src/components/refresher/test/scroll-target/refresher.e2e-legacy.ts b/core/src/components/refresher/test/scroll-target/refresher.e2e-legacy.ts deleted file mode 100644 index d7904f0552..0000000000 --- a/core/src/components/refresher/test/scroll-target/refresher.e2e-legacy.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { pullToRefresh } from '../test.utils'; - -// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright -test.skip('refresher: custom scroll target', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/refresher/test/scroll-target'); - }); - - test.describe('legacy refresher', () => { - test('should load more items when performing a pull-to-refresh', async ({ page }) => { - const items = page.locator('ion-item'); - - expect(await items.count()).toBe(30); - - await pullToRefresh(page, '#inner-scroll'); - - expect(await items.count()).toBe(60); - }); - }); - - test.describe('native refresher', () => { - test('should load more items when performing a pull-to-refresh', async ({ page }) => { - const refresherContent = page.locator('ion-refresher-content'); - refresherContent.evaluateHandle((el: any) => { - // Resets the pullingIcon to enable the native refresher - el.pullingIcon = undefined; - }); - - await page.waitForChanges(); - - const items = page.locator('ion-item'); - - expect(await items.count()).toBe(30); - - await pullToRefresh(page, '#inner-scroll'); - - expect(await items.count()).toBe(60); - }); - }); -}); diff --git a/core/src/components/refresher/test/scroll-target/refresher.e2e.ts b/core/src/components/refresher/test/scroll-target/refresher.e2e.ts new file mode 100644 index 0000000000..8cd3547651 --- /dev/null +++ b/core/src/components/refresher/test/scroll-target/refresher.e2e.ts @@ -0,0 +1,48 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { pullToRefresh } from '../test.utils'; + +// TODO FW-2795: Enable this test when touch events/gestures are better supported in Playwright +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('refresher: custom scroll target'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/refresher/test/scroll-target', config); + }); + + test.describe('legacy refresher', () => { + test('should load more items when performing a pull-to-refresh', async ({ page }) => { + const items = page.locator('ion-item'); + + expect(await items.count()).toBe(30); + + await pullToRefresh(page, '#inner-scroll'); + + expect(await items.count()).toBe(60); + }); + }); + + test.describe('native refresher', () => { + test('should load more items when performing a pull-to-refresh', async ({ page }) => { + const refresherContent = page.locator('ion-refresher-content'); + refresherContent.evaluateHandle((el: any) => { + // Resets the pullingIcon to enable the native refresher + el.pullingIcon = undefined; + }); + + await page.waitForChanges(); + + const items = page.locator('ion-item'); + + expect(await items.count()).toBe(30); + + await pullToRefresh(page, '#inner-scroll'); + + expect(await items.count()).toBe(60); + }); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts deleted file mode 100644 index d944a52782..0000000000 --- a/core/src/components/reorder-group/test/basic/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('reorder group: basic', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - }); - test('should render the handle when reorder group is enabled', async ({ page }) => { - await page.setContent(` - - - Item - - - - `); - const reorder = page.locator('ion-reorder'); - await expect(reorder).toBeVisible(); - }); - test('should not render the handle when reorder group is disabled', async ({ page }) => { - await page.setContent(` - - - Item - - - - `); - const reorder = page.locator('ion-reorder'); - await expect(reorder).toBeHidden(); - }); -}); diff --git a/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts b/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts new file mode 100644 index 0000000000..38fc40873e --- /dev/null +++ b/core/src/components/reorder-group/test/basic/reorder-group.e2e.ts @@ -0,0 +1,40 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('reorder group: basic'), () => { + test('should render the handle when reorder group is enabled', async ({ page }) => { + await page.setContent( + ` + + + Item + + + + `, + config + ); + const reorder = page.locator('ion-reorder'); + await expect(reorder).toBeVisible(); + }); + test('should not render the handle when reorder group is disabled', async ({ page }) => { + await page.setContent( + ` + + + Item + + + + `, + config + ); + const reorder = page.locator('ion-reorder'); + await expect(reorder).toBeHidden(); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts deleted file mode 100644 index 781af1a955..0000000000 --- a/core/src/components/reorder-group/test/interactive/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: interactive', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/interactive`); - - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/interactive`); - - const reorderHandle = page.locator('ion-reorder'); - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts b/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts new file mode 100644 index 0000000000..df76a46478 --- /dev/null +++ b/core/src/components/reorder-group/test/interactive/reorder-group.e2e.ts @@ -0,0 +1,42 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: interactive'), () => { + test.beforeEach(async ({ page, skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + + await page.goto(`/src/components/reorder-group/test/interactive`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('ion-reorder'); + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts deleted file mode 100644 index a980daa956..0000000000 --- a/core/src/components/reorder-group/test/nested/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: nested', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/nested`); - - const items = page.locator('app-reorder'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/nested`); - - const reorderHandle = page.locator('app-reorder ion-reorder'); - const items = page.locator('app-reorder'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts b/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts new file mode 100644 index 0000000000..51b426e750 --- /dev/null +++ b/core/src/components/reorder-group/test/nested/reorder-group.e2e.ts @@ -0,0 +1,41 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: nested'), () => { + test.beforeEach(async ({ page, skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + await page.goto(`/src/components/reorder-group/test/nested`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('app-reorder'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('app-reorder ion-reorder'); + const items = page.locator('app-reorder'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +}); diff --git a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts deleted file mode 100644 index 7209a59331..0000000000 --- a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e-legacy.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, dragElementBy } from '@utils/test/playwright'; - -// TODO FW-3079 -test.describe.skip('reorder group: scroll-target', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Reorder group does not have per-mode styles'); - skip.browser( - (browserName: string) => browserName !== 'chromium', - 'dragElementBy is flaky outside of Chrome browsers.' - ); - }); - test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/scroll-target`); - - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(items.nth(1), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); - }); - test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { - await page.goto(`/src/components/reorder-group/test/scroll-target`); - - const reorderHandle = page.locator('ion-reorder'); - const items = page.locator('ion-item'); - const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); - - await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); - - await dragElementBy(reorderHandle.nth(0), page, 0, 300); - await ionItemReorderComplete.next(); - - await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); - }); -}); diff --git a/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts new file mode 100644 index 0000000000..a9ef4b809c --- /dev/null +++ b/core/src/components/reorder-group/test/scroll-target/reorder-group.e2e.ts @@ -0,0 +1,41 @@ +import { expect } from '@playwright/test'; +import { configs, test, dragElementBy } from '@utils/test/playwright'; + +// TODO FW-3079 +/** + * Reorder group does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('reorder group: scroll-target'), () => { + test.beforeEach(async ({ page, skip }) => { + skip.browser( + (browserName: string) => browserName !== 'chromium', + 'dragElementBy is flaky outside of Chrome browsers.' + ); + await page.goto(`/src/components/reorder-group/test/scroll-target`, config); + }); + test('should drag and drop when ion-reorder wraps ion-item', async ({ page }) => { + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(items.nth(1), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 1', 'Item 3', 'Item 4', 'Item 2']); + }); + test('should drag and drop when ion-item wraps ion-reorder', async ({ page }) => { + const reorderHandle = page.locator('ion-reorder'); + const items = page.locator('ion-item'); + const ionItemReorderComplete = await page.spyOnEvent('ionItemReorderComplete'); + + await expect(items).toContainText(['Item 1', 'Item 2', 'Item 3', 'Item 4']); + + await dragElementBy(reorderHandle.nth(0), page, 0, 300); + await ionItemReorderComplete.next(); + + await expect(items).toContainText(['Item 2', 'Item 3', 'Item 4', 'Item 1']); + }); + }); +}); diff --git a/core/src/components/ripple-effect/test/basic/ripple-effect.e2e-legacy.ts b/core/src/components/ripple-effect/test/basic/ripple-effect.e2e-legacy.ts deleted file mode 100644 index 9f6006ee37..0000000000 --- a/core/src/components/ripple-effect/test/basic/ripple-effect.e2e-legacy.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { expect } from '@playwright/test'; -import type { E2EPage } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -test.describe('ripple-effect: basic', () => { - test.beforeEach(async ({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - - test('should add .ion-activated when pressed', async ({ page }) => { - await verifyRippleEffect(page, '#small-btn'); - await verifyRippleEffect(page, '#large-btn'); - await verifyRippleEffect(page, '#large-btn-outline'); - await verifyRippleEffect(page, '#large-btn-clear'); - await verifyRippleEffect(page, '.block'); - }); - - test.describe('ripple effect with nested ion-button', () => { - test('should add .ion-activated when the block is pressed', async ({ page }) => { - await page.goto('/src/components/ripple-effect/test/basic?ionic:_testing=false'); - await isIdleCallbackComplete(page); - - const el = page.locator('#ripple-with-button'); - - await el.scrollIntoViewIfNeeded(); - - const boundingBox = await el.boundingBox(); - - if (boundingBox) { - await page.mouse.move(boundingBox.x + 5, boundingBox.y + 5); - await page.mouse.down(); - } - - // Waits for the ripple effect to be added - await page.waitForSelector('.ion-activated'); - - await expect(el).toHaveClass(/ion-activated/); - }); - - test('should add .ion-activated when the button is pressed', async ({ page }) => { - await verifyRippleEffect(page, '#ripple-with-button ion-button'); - }); - }); -}); - -const verifyRippleEffect = async (page: E2EPage, selector: string) => { - await page.goto('/src/components/ripple-effect/test/basic?ionic:_testing=false'); - await isIdleCallbackComplete(page); - - const el = page.locator(selector); - - await el.scrollIntoViewIfNeeded(); - - const boundingBox = await el.boundingBox(); - - if (boundingBox) { - await page.mouse.move(boundingBox.x + boundingBox.width / 2, boundingBox.y + boundingBox.height / 2); - await page.mouse.down(); - } - - await page.waitForSelector('.ion-activated'); - - await expect(el).toHaveClass(/ion-activated/); -}; - -/** - * This function is used to wait for the idle callback to be called. - * It mirrors the custom implementation in app.tsx for either - * using requestIdleCallback on supported browsers or a setTimeout - * of 32ms (~2 frames) on unsupported browsers (Safari). - */ -const isIdleCallbackComplete = async (page: E2EPage) => { - await page.waitForFunction( - () => { - return new Promise((resolve) => { - if ('requestIdleCallback' in window) { - window.requestIdleCallback(resolve); - } else { - setTimeout(resolve, 32); - } - }); - }, - { timeout: 5000 } - ); -}; diff --git a/core/src/components/ripple-effect/test/basic/ripple-effect.e2e.ts b/core/src/components/ripple-effect/test/basic/ripple-effect.e2e.ts new file mode 100644 index 0000000000..5d128bdca1 --- /dev/null +++ b/core/src/components/ripple-effect/test/basic/ripple-effect.e2e.ts @@ -0,0 +1,83 @@ +import { expect } from '@playwright/test'; +import type { E2EPage, E2EPageOptions } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('ripple-effect: basic'), () => { + test('should add .ion-activated when pressed', async ({ page }) => { + await verifyRippleEffect(page, config, '#small-btn'); + await verifyRippleEffect(page, config, '#large-btn'); + await verifyRippleEffect(page, config, '#large-btn-outline'); + await verifyRippleEffect(page, config, '#large-btn-clear'); + await verifyRippleEffect(page, config, '.block'); + }); + + test.describe('ripple effect with nested ion-button', () => { + test('should add .ion-activated when the block is pressed', async ({ page }) => { + await page.goto('/src/components/ripple-effect/test/basic?ionic:_testing=false', config); + await isIdleCallbackComplete(page); + + const el = page.locator('#ripple-with-button'); + + await el.scrollIntoViewIfNeeded(); + + const boundingBox = await el.boundingBox(); + + if (boundingBox) { + await page.mouse.move(boundingBox.x + 5, boundingBox.y + 5); + await page.mouse.down(); + } + + // Waits for the ripple effect to be added + await page.waitForSelector('.ion-activated'); + + await expect(el).toHaveClass(/ion-activated/); + }); + + test('should add .ion-activated when the button is pressed', async ({ page }) => { + await verifyRippleEffect(page, config, '#ripple-with-button ion-button'); + }); + }); + }); +}); + +const verifyRippleEffect = async (page: E2EPage, config: E2EPageOptions, selector: string) => { + await page.goto('/src/components/ripple-effect/test/basic?ionic:_testing=false', config); + await isIdleCallbackComplete(page); + + const el = page.locator(selector); + + await el.scrollIntoViewIfNeeded(); + + const boundingBox = await el.boundingBox(); + + if (boundingBox) { + await page.mouse.move(boundingBox.x + boundingBox.width / 2, boundingBox.y + boundingBox.height / 2); + await page.mouse.down(); + } + + await page.waitForSelector('.ion-activated'); + + await expect(el).toHaveClass(/ion-activated/); +}; + +/** + * This function is used to wait for the idle callback to be called. + * It mirrors the custom implementation in app.tsx for either + * using requestIdleCallback on supported browsers or a setTimeout + * of 32ms (~2 frames) on unsupported browsers (Safari). + */ +const isIdleCallbackComplete = async (page: E2EPage) => { + await page.waitForFunction( + () => { + return new Promise((resolve) => { + if ('requestIdleCallback' in window) { + window.requestIdleCallback(resolve); + } else { + setTimeout(resolve, 32); + } + }); + }, + { timeout: 5000 } + ); +}; diff --git a/core/src/components/router-outlet/test/basic/router-outlet.e2e-legacy.ts b/core/src/components/router-outlet/test/basic/router-outlet.e2e-legacy.ts deleted file mode 100644 index d09caab60c..0000000000 --- a/core/src/components/router-outlet/test/basic/router-outlet.e2e-legacy.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('router outlet: basic', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - test('getRouteId() should return the segment parameters', async ({ page }) => { - await page.goto('/src/components/router-outlet/test/basic'); - - await page.click('ion-button[href="#/two/segment"]'); - await page.waitForChanges(); - - const routerOutlet = page.locator('ion-router-outlet'); - const routeId = await routerOutlet.evaluate((el: HTMLIonRouterOutletElement) => el.getRouteId()); - - expect(routeId!.id).toEqual('PAGE-TWO'); - expect(routeId!.params).toEqual({ param: 'segment' }); - }); - - test('getRouteId() should return the route parameters', async ({ page }) => { - await page.goto('/src/components/router-outlet/test/basic'); - - await page.click('ion-button[href="#/page-3"]'); - await page.waitForChanges(); - - const routerOutlet = page.locator('ion-router-outlet'); - const routeId = await routerOutlet.evaluate((el: HTMLIonRouterOutletElement) => el.getRouteId()); - - expect(routeId!.id).toEqual('PAGE-THREE'); - expect(routeId!.params).toEqual({ param: 'route' }); - }); - - test('it should be possible to activate the same component provided parameters are different', async ({ page }) => { - await page.goto('/src/components/router-outlet/test/basic'); - - await page.click('ion-button[href="#/page-4.1/foo"]'); - await page.waitForChanges(); - - await page.$eval('ion-item[href="#/page-4.1/foo"] ion-label', (el: any) => el.click()); - await page.waitForChanges(); - - const routerOutlet = page.locator('ion-router-outlet'); - await expect(routerOutlet).toHaveText(/text = foo/); - - await page.click('ion-button[href="#/page-4.2/bar"]'); - await page.waitForChanges(); - - await expect(routerOutlet).toHaveText(/text = bar/); - }); -}); diff --git a/core/src/components/router-outlet/test/basic/router-outlet.e2e.ts b/core/src/components/router-outlet/test/basic/router-outlet.e2e.ts new file mode 100644 index 0000000000..3cbc184214 --- /dev/null +++ b/core/src/components/router-outlet/test/basic/router-outlet.e2e.ts @@ -0,0 +1,50 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router outlet: basic'), () => { + test('getRouteId() should return the segment parameters', async ({ page }) => { + await page.goto('/src/components/router-outlet/test/basic', config); + + await page.click('ion-button[href="#/two/segment"]'); + await page.waitForChanges(); + + const routerOutlet = page.locator('ion-router-outlet'); + const routeId = await routerOutlet.evaluate((el: HTMLIonRouterOutletElement) => el.getRouteId()); + + expect(routeId!.id).toEqual('PAGE-TWO'); + expect(routeId!.params).toEqual({ param: 'segment' }); + }); + + test('getRouteId() should return the route parameters', async ({ page }) => { + await page.goto('/src/components/router-outlet/test/basic', config); + + await page.click('ion-button[href="#/page-3"]'); + await page.waitForChanges(); + + const routerOutlet = page.locator('ion-router-outlet'); + const routeId = await routerOutlet.evaluate((el: HTMLIonRouterOutletElement) => el.getRouteId()); + + expect(routeId!.id).toEqual('PAGE-THREE'); + expect(routeId!.params).toEqual({ param: 'route' }); + }); + + test('it should be possible to activate the same component provided parameters are different', async ({ page }) => { + await page.goto('/src/components/router-outlet/test/basic', config); + + await page.click('ion-button[href="#/page-4.1/foo"]'); + await page.waitForChanges(); + + await page.$eval('ion-item[href="#/page-4.1/foo"] ion-label', (el: any) => el.click()); + await page.waitForChanges(); + + const routerOutlet = page.locator('ion-router-outlet'); + await expect(routerOutlet).toHaveText(/text = foo/); + + await page.click('ion-button[href="#/page-4.2/bar"]'); + await page.waitForChanges(); + + await expect(routerOutlet).toHaveText(/text = bar/); + }); + }); +}); diff --git a/core/src/components/router/test/basic/router.e2e-legacy.ts b/core/src/components/router/test/basic/router.e2e-legacy.ts deleted file mode 100644 index e5d87cabf7..0000000000 --- a/core/src/components/router/test/basic/router.e2e-legacy.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('router: redirect', () => { - test.beforeEach(({ skip }) => { - skip.mode('md'); - skip.rtl(); - }); - - test('contains query parameters after redirect', async ({ page }) => { - await page.goto(`/src/components/router/test/basic#/redirect-to-three`); - - expect(page.url()).toContain('#/three?has_query_string=true'); - }); -}); - -test.describe('router: push', () => { - test.beforeEach(({ skip }) => { - skip.mode('md'); - skip.rtl(); - }); - - test('should support relative path', async ({ page }) => { - await page.goto(`/src/components/router/test/basic#/two/three/hola`); - await page.click('#btn-rel'); - - expect(page.url()).toContain('#/two/three/relative?param=1'); - }); - - test('should support absolute path', async ({ page }) => { - await page.goto(`/src/components/router/test/basic#/two/three/hola`); - await page.click('#btn-abs'); - - expect(page.url()).toContain('#/two/three/absolute'); - }); -}); - -test.describe('router: tabs', () => { - test.beforeEach(({ skip }) => { - skip.mode('md'); - skip.rtl(); - }); - - test('should activate the initial tab', async ({ page }) => { - await page.goto(`/src/components/router/test/basic`); - - const tabOne = page.locator('tab-one'); - - await expect(tabOne).toBeVisible(); - - expect(page.url()).toContain('/basic?'); - }); - - /** - * Selects the Schedule (tab two) tab and verifies that both the - * page is visible and the URL is correct. - */ - test('selecting a tab routes to the tab page', async ({ page }) => { - await page.goto(`/src/components/router/test/basic`); - - const tabOne = page.locator('tab-one'); - const tabTwo = page.locator('tab-two'); - - await page.click('#tab-button-tab-two'); - - await expect(tabOne).toBeHidden(); - await expect(tabTwo).toBeVisible(); - - expect(page.url()).toContain('#/two'); - }); - - test('should navigate to a nested page within a tab', async ({ page }) => { - await page.goto('/src/components/router/test/basic#/two'); - - const tabTwo = page.locator('tab-two'); - const pageOne = page.locator('page-one'); - - await expect(tabTwo).toBeVisible(); - await expect(pageOne).toBeVisible(); - - await page.click('text=Go to page 2'); - - const pageTwo = page.locator('page-two'); - - await expect(pageTwo).toBeVisible(); - await expect(pageOne).toBeHidden(); - - await expect(page.url()).toContain('#/two/second-page'); - }); - - test('navigating directly to a sub page should activate the page', async ({ page }) => { - await page.goto('/src/components/router/test/basic#/two/second-page'); - - const tabTwo = page.locator('tab-two'); - const pageTwo = page.locator('page-two'); - - await expect(tabTwo).toBeVisible(); - await expect(pageTwo).toBeVisible(); - }); -}); diff --git a/core/src/components/router/test/basic/router.e2e.ts b/core/src/components/router/test/basic/router.e2e.ts new file mode 100644 index 0000000000..33f4e37d33 --- /dev/null +++ b/core/src/components/router/test/basic/router.e2e.ts @@ -0,0 +1,90 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router: redirect'), () => { + test('contains query parameters after redirect', async ({ page }) => { + await page.goto(`/src/components/router/test/basic#/redirect-to-three`, config); + + expect(page.url()).toContain('#/three?has_query_string=true'); + }); + }); + + test.describe(title('router: push'), () => { + test('should support relative path', async ({ page }) => { + await page.goto(`/src/components/router/test/basic#/two/three/hola`, config); + await page.click('#btn-rel'); + + expect(page.url()).toContain('#/two/three/relative?param=1'); + }); + + test('should support absolute path', async ({ page }) => { + await page.goto(`/src/components/router/test/basic#/two/three/hola`, config); + await page.click('#btn-abs'); + + expect(page.url()).toContain('#/two/three/absolute'); + }); + }); + + test.describe(title('router: tabs'), () => { + test('should activate the initial tab', async ({ page }) => { + await page.goto(`/src/components/router/test/basic`, config); + + const tabOne = page.locator('tab-one'); + + await expect(tabOne).toBeVisible(); + + expect(page.url()).toContain('/basic?'); + }); + + /** + * Selects the Schedule (tab two) tab and verifies that both the + * page is visible and the URL is correct. + */ + test('selecting a tab routes to the tab page', async ({ page }) => { + await page.goto(`/src/components/router/test/basic`, config); + + const tabOne = page.locator('tab-one'); + const tabTwo = page.locator('tab-two'); + + await page.click('#tab-button-tab-two'); + + await expect(tabOne).toBeHidden(); + await expect(tabTwo).toBeVisible(); + + expect(page.url()).toContain('#/two'); + }); + + test('should navigate to a nested page within a tab', async ({ page }) => { + await page.goto('/src/components/router/test/basic#/two', config); + + const tabTwo = page.locator('tab-two'); + const pageOne = page.locator('page-one'); + + await expect(tabTwo).toBeVisible(); + await expect(pageOne).toBeVisible(); + + await page.click('text=Go to page 2'); + + const pageTwo = page.locator('page-two'); + + await expect(pageTwo).toBeVisible(); + await expect(pageOne).toBeHidden(); + + await expect(page.url()).toContain('#/two/second-page'); + }); + + test('navigating directly to a sub page should activate the page', async ({ page }) => { + await page.goto('/src/components/router/test/basic#/two/second-page', config); + + const tabTwo = page.locator('tab-two'); + const pageTwo = page.locator('page-two'); + + await expect(tabTwo).toBeVisible(); + await expect(pageTwo).toBeVisible(); + }); + }); +}); diff --git a/core/src/components/router/test/guards/href/router.e2e-legacy.ts b/core/src/components/router/test/guards/href/router.e2e-legacy.ts deleted file mode 100644 index f87b918f36..0000000000 --- a/core/src/components/router/test/guards/href/router.e2e-legacy.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; - -test.describe('router: guards: href', () => { - test.beforeEach(async ({ page, skip }) => { - skip.mode('md'); - skip.rtl(); - - await page.goto(`/src/components/router/test/guards`); - }); - - test('allow/allow', async ({ page }) => { - // beforeEnter: allow, beforeLeave: allow - await setBeforeEnterHook(page, 'allow'); - - await page.click('#href'); - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('block/allow', async ({ page }) => { - // beforeEnter: block, beforeLeave: allow - await setBeforeEnterHook(page, 'block'); - - await page.click('#href'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('redirect/allow', async ({ page }) => { - // beforeEnter: redirect, beforeLeave: allow - await setBeforeEnterHook(page, 'redirect'); - - await page.click('#href'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('allow/bock', async ({ page }) => { - // beforeEnter: allow, beforeLeave: block - await setBeforeLeaveHook(page, 'block'); - - await page.click('#href'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - }); - - test('allow/redirect', async ({ page }) => { - // beforeEnter: allow, beforeLeave: redirect - await setBeforeLeaveHook(page, 'redirect'); - - await page.click('#href'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - }); -}); diff --git a/core/src/components/router/test/guards/href/router.e2e.ts b/core/src/components/router/test/guards/href/router.e2e.ts new file mode 100644 index 0000000000..b553779ff9 --- /dev/null +++ b/core/src/components/router/test/guards/href/router.e2e.ts @@ -0,0 +1,89 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router: guards: href'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/router/test/guards`, config); + }); + + test('allow/allow', async ({ page }) => { + // beforeEnter: allow, beforeLeave: allow + await setBeforeEnterHook(page, 'allow'); + + await page.click('#href'); + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('block/allow', async ({ page }) => { + // beforeEnter: block, beforeLeave: allow + await setBeforeEnterHook(page, 'block'); + + await page.click('#href'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('redirect/allow', async ({ page }) => { + // beforeEnter: redirect, beforeLeave: allow + await setBeforeEnterHook(page, 'redirect'); + + await page.click('#href'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('allow/bock', async ({ page }) => { + // beforeEnter: allow, beforeLeave: block + await setBeforeLeaveHook(page, 'block'); + + await page.click('#href'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + }); + + test('allow/redirect', async ({ page }) => { + // beforeEnter: allow, beforeLeave: redirect + await setBeforeLeaveHook(page, 'redirect'); + + await page.click('#href'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + }); + }); +}); diff --git a/core/src/components/router/test/guards/link/router.e2e-legacy.ts b/core/src/components/router/test/guards/link/router.e2e-legacy.ts deleted file mode 100644 index 6fd1f01e4a..0000000000 --- a/core/src/components/router/test/guards/link/router.e2e-legacy.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; - -test.describe('router: guards: router-link', () => { - test.beforeEach(async ({ page, skip }) => { - skip.mode('md'); - skip.rtl(); - - await page.goto(`/src/components/router/test/guards`); - }); - - test('allow/allow', async ({ page }) => { - // beforeEnter: allow, beforeLeave: allow - await setBeforeEnterHook(page, 'allow'); - - await page.click('#router-link'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child/1'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('block/allow', async ({ page }) => { - // beforeEnter: block, beforeLeave: allow - await setBeforeEnterHook(page, 'block'); - - await page.click('#router-link'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('redirect/allow', async ({ page }) => { - // beforeEnter: redirect, beforeLeave: allow - await setBeforeEnterHook(page, 'redirect'); - - await page.click('#router-link'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('allow/block', async ({ page }) => { - // beforeEnter: allow, beforeLeave: block - await setBeforeLeaveHook(page, 'block'); - - await page.click('#router-link'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child/1'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child/1'); - }); - - test('allow/redirect', async ({ page }) => { - // beforeEnter: allow, beforeLeave: redirect - await setBeforeLeaveHook(page, 'redirect'); - - await page.click('#router-link'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child/1'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - }); -}); diff --git a/core/src/components/router/test/guards/link/router.e2e.ts b/core/src/components/router/test/guards/link/router.e2e.ts new file mode 100644 index 0000000000..03dd671bf1 --- /dev/null +++ b/core/src/components/router/test/guards/link/router.e2e.ts @@ -0,0 +1,91 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router: guards: router-link'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/router/test/guards`, config); + }); + + test('allow/allow', async ({ page }) => { + // beforeEnter: allow, beforeLeave: allow + await setBeforeEnterHook(page, 'allow'); + + await page.click('#router-link'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child/1'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('block/allow', async ({ page }) => { + // beforeEnter: block, beforeLeave: allow + await setBeforeEnterHook(page, 'block'); + + await page.click('#router-link'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('redirect/allow', async ({ page }) => { + // beforeEnter: redirect, beforeLeave: allow + await setBeforeEnterHook(page, 'redirect'); + + await page.click('#router-link'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('allow/block', async ({ page }) => { + // beforeEnter: allow, beforeLeave: block + await setBeforeLeaveHook(page, 'block'); + + await page.click('#router-link'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child/1'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child/1'); + }); + + test('allow/redirect', async ({ page }) => { + // beforeEnter: allow, beforeLeave: redirect + await setBeforeLeaveHook(page, 'redirect'); + + await page.click('#router-link'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child/1'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + }); + }); +}); diff --git a/core/src/components/router/test/guards/push/router.e2e-legacy.ts b/core/src/components/router/test/guards/push/router.e2e-legacy.ts deleted file mode 100644 index 6aec67ef96..0000000000 --- a/core/src/components/router/test/guards/push/router.e2e-legacy.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; - -test.describe('router: guards: router.push', () => { - test.beforeEach(async ({ page, skip }) => { - skip.mode('md'); - skip.rtl(); - - await page.goto(`/src/components/router/test/guards`); - }); - - test('allow/allow', async ({ page }) => { - // beforeEnter: allow, beforeLeave: allow - await setBeforeEnterHook(page, 'allow'); - - await page.click('#router-push'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('block/allow', async ({ page }) => { - // beforeEnter: block, beforeLeave: allow - await setBeforeEnterHook(page, 'block'); - - await page.click('#router-push'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('redirect/allow', async ({ page }) => { - // beforeEnter: redirect, beforeLeave: allow - await setBeforeEnterHook(page, 'redirect'); - - await page.click('#router-push'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/home'); - }); - - test('allow/block', async ({ page }) => { - // beforeEnter: allow, beforeLeave: block - await setBeforeLeaveHook(page, 'block'); - - await page.click('#router-push'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - }); - - test('allow/redirect', async ({ page }) => { - // beforeEnter: allow, beforeLeave: redirect - await setBeforeLeaveHook(page, 'redirect'); - - await page.click('#router-push'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/child'); - - await page.click('ion-back-button'); - - await page.waitForChanges(); - - expect(page.url()).toContain('#/test'); - }); -}); diff --git a/core/src/components/router/test/guards/push/router.e2e.ts b/core/src/components/router/test/guards/push/router.e2e.ts new file mode 100644 index 0000000000..6fdaef9b7c --- /dev/null +++ b/core/src/components/router/test/guards/push/router.e2e.ts @@ -0,0 +1,91 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +import { setBeforeEnterHook, setBeforeLeaveHook } from '../test.utils'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router: guards: router.push'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/router/test/guards`, config); + }); + + test('allow/allow', async ({ page }) => { + // beforeEnter: allow, beforeLeave: allow + await setBeforeEnterHook(page, 'allow'); + + await page.click('#router-push'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('block/allow', async ({ page }) => { + // beforeEnter: block, beforeLeave: allow + await setBeforeEnterHook(page, 'block'); + + await page.click('#router-push'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('redirect/allow', async ({ page }) => { + // beforeEnter: redirect, beforeLeave: allow + await setBeforeEnterHook(page, 'redirect'); + + await page.click('#router-push'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/home'); + }); + + test('allow/block', async ({ page }) => { + // beforeEnter: allow, beforeLeave: block + await setBeforeLeaveHook(page, 'block'); + + await page.click('#router-push'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + }); + + test('allow/redirect', async ({ page }) => { + // beforeEnter: allow, beforeLeave: redirect + await setBeforeLeaveHook(page, 'redirect'); + + await page.click('#router-push'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/child'); + + await page.click('ion-back-button'); + + await page.waitForChanges(); + + expect(page.url()).toContain('#/test'); + }); + }); +}); diff --git a/core/src/components/router/test/guards/router.e2e-legacy.ts b/core/src/components/router/test/guards/router.e2e-legacy.ts deleted file mode 100644 index 000209713c..0000000000 --- a/core/src/components/router/test/guards/router.e2e-legacy.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('router: guards', () => { - test.beforeEach(({ skip }) => { - skip.mode('md'); - skip.rtl(); - }); - - test('guards should be run on initial load', async ({ page }) => { - await page.goto(`/src/components/router/test/guards#/guard-initial-page`); - - expect(page.url()).toContain('#/child/1'); - }); -}); diff --git a/core/src/components/router/test/guards/router.e2e.ts b/core/src/components/router/test/guards/router.e2e.ts new file mode 100644 index 0000000000..f34ed61800 --- /dev/null +++ b/core/src/components/router/test/guards/router.e2e.ts @@ -0,0 +1,12 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('router: guards'), () => { + test('guards should be run on initial load', async ({ page }) => { + await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); + + expect(page.url()).toContain('#/child/1'); + }); + }); +}); diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts b/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts deleted file mode 100644 index 4cc68a00a3..0000000000 --- a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('searchbar: cancel button', () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/src/components/searchbar/test/basic`); - }); - - test('should show cancel button on focus if show-cancel-button=focus', async ({ page }) => { - const searchbar = page.locator('#basic'); - const cancelButton = searchbar.locator('.searchbar-cancel-button'); - - await searchbar.evaluate((el: HTMLIonSearchbarElement) => el.setFocus()); - await page.waitForChanges(); - - await expect(searchbar).toHaveClass(/searchbar-has-focus/); - await expect(cancelButton).toBeVisible(); - }); - - test('should not show cancel button on focus if show-cancel-button=never', async ({ page }) => { - const searchbar = page.locator('#noCancel'); - const cancelButton = searchbar.locator('.searchbar-cancel-button'); - - await searchbar.evaluate((el: HTMLIonSearchbarElement) => el.setFocus()); - await page.waitForChanges(); - - await expect(searchbar).toHaveClass(/searchbar-has-focus/); - await expect(cancelButton).toHaveCount(0); - }); -}); - -test.describe('searchbar: clear button', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('should clear the input when pressed', async ({ page }) => { - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - const clearButton = searchbar.locator('.searchbar-clear-button'); - - await expect(searchbar).toHaveJSProperty('value', 'abc'); - - await clearButton.click(); - await page.waitForChanges(); - - await expect(searchbar).toHaveJSProperty('value', ''); - }); - /** - * Note: This only tests the desktop focus behavior. - * Mobile browsers have different restrictions around - * focusing inputs, so these platforms should always - * be tested when making changes to the focus behavior. - */ - test('should keep the input focused when the clear button is pressed', async ({ page }) => { - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - const nativeInput = searchbar.locator('input'); - const clearButton = searchbar.locator('.searchbar-clear-button'); - - await searchbar.click(); - await expect(nativeInput).toBeFocused(); - - await clearButton.click(); - await page.waitForChanges(); - - await expect(nativeInput).toBeFocused(); - }); -}); - -test.describe('searchbar: rendering', () => { - test('should render searchbar', async ({ page }) => { - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - - await expect(searchbar).toHaveScreenshot(`searchbar-${page.getSnapshotSettings()}.png`); - }); - - test('should render cancel and clear buttons', async ({ page }) => { - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - - await expect(searchbar).toHaveScreenshot(`searchbar-buttons-${page.getSnapshotSettings()}.png`); - }); - - test('should render searchbar with color', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - - await expect(searchbar).toHaveScreenshot(`searchbar-color-${page.getSnapshotSettings()}.png`); - }); - - test('should render disabled searchbar', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent(` - - `); - - const searchbar = page.locator('ion-searchbar'); - - await expect(searchbar).toHaveScreenshot(`searchbar-disabled-${page.getSnapshotSettings()}.png`); - }); - - test('should render custom search icon', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent(` - - `); - - const icon = page.locator('ion-searchbar ion-icon.searchbar-search-icon'); - - await expect(icon).toHaveScreenshot(`searchbar-search-icon-${page.getSnapshotSettings()}.png`); - }); -}); - -test.describe('searchbar: placeholder', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - test('should set placeholder', async ({ page }) => { - await page.setContent(` - - `); - - const nativeInput = page.locator('ion-searchbar input'); - await expect(nativeInput).toHaveAttribute('placeholder', 'My Placeholder'); - }); -}); diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e.ts b/core/src/components/searchbar/test/basic/searchbar.e2e.ts new file mode 100644 index 0000000000..486afaa5c8 --- /dev/null +++ b/core/src/components/searchbar/test/basic/searchbar.e2e.ts @@ -0,0 +1,172 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('searchbar: cancel button'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/searchbar/test/basic`, config); + }); + + test('should show cancel button on focus if show-cancel-button=focus', async ({ page }) => { + const searchbar = page.locator('#basic'); + const cancelButton = searchbar.locator('.searchbar-cancel-button'); + + await searchbar.evaluate((el: HTMLIonSearchbarElement) => el.setFocus()); + await page.waitForChanges(); + + await expect(searchbar).toHaveClass(/searchbar-has-focus/); + await expect(cancelButton).toBeVisible(); + }); + + test('should not show cancel button on focus if show-cancel-button=never', async ({ page }) => { + const searchbar = page.locator('#noCancel'); + const cancelButton = searchbar.locator('.searchbar-cancel-button'); + + await searchbar.evaluate((el: HTMLIonSearchbarElement) => el.setFocus()); + await page.waitForChanges(); + + await expect(searchbar).toHaveClass(/searchbar-has-focus/); + await expect(cancelButton).toHaveCount(0); + }); + }); + + test.describe(title('searchbar: clear button'), () => { + test('should clear the input when pressed', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + const clearButton = searchbar.locator('.searchbar-clear-button'); + + await expect(searchbar).toHaveJSProperty('value', 'abc'); + + await clearButton.click(); + await page.waitForChanges(); + + await expect(searchbar).toHaveJSProperty('value', ''); + }); + /** + * Note: This only tests the desktop focus behavior. + * Mobile browsers have different restrictions around + * focusing inputs, so these platforms should always + * be tested when making changes to the focus behavior. + */ + test('should keep the input focused when the clear button is pressed', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + const nativeInput = searchbar.locator('input'); + const clearButton = searchbar.locator('.searchbar-clear-button'); + + await searchbar.click(); + await expect(nativeInput).toBeFocused(); + + await clearButton.click(); + await page.waitForChanges(); + + await expect(nativeInput).toBeFocused(); + }); + }); + + test.describe(title('searchbar: placeholder'), () => { + test('should set placeholder', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const nativeInput = page.locator('ion-searchbar input'); + await expect(nativeInput).toHaveAttribute('placeholder', 'My Placeholder'); + }); + }); +}); + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('searchbar: rendering'), () => { + test('should render searchbar', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + + await expect(searchbar).toHaveScreenshot(screenshot(`searchbar`)); + }); + + test('should render cancel and clear buttons', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + + await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-buttons`)); + }); + }); +}); + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('searchbar: feature rendering'), () => { + test('should render searchbar with color', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + + await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-color`)); + }); + + test('should render disabled searchbar', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const searchbar = page.locator('ion-searchbar'); + + await expect(searchbar).toHaveScreenshot(screenshot(`searchbar-disabled`)); + }); + + test('should render custom search icon', async ({ page }) => { + await page.setContent( + ` + + `, + config + ); + + const icon = page.locator('ion-searchbar ion-icon.searchbar-search-icon'); + + await expect(icon).toHaveScreenshot(screenshot(`searchbar-search-icon`)); + }); + }); +}); diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-buttons-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-disabled-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-md-rtl-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Chrome-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Firefox-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Safari-linux.png b/core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/searchbar/test/basic/searchbar.e2e-legacy.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Safari-linux.png rename to core/src/components/searchbar/test/basic/searchbar.e2e.ts-snapshots/searchbar-search-icon-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/searchbar/test/events/searchbar.e2e-legacy.ts b/core/src/components/searchbar/test/events/searchbar.e2e-legacy.ts deleted file mode 100644 index 1079957cbc..0000000000 --- a/core/src/components/searchbar/test/events/searchbar.e2e-legacy.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('searchbar: events (ionChange)', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - - test('should emit when blurred after value change', async ({ page }) => { - await page.setContent(``); - const nativeInput = page.locator('ion-searchbar input'); - const ionChange = await page.spyOnEvent('ionChange'); - - await nativeInput.type('new value', { delay: 100 }); - await nativeInput.evaluate((e) => e.blur()); - - await ionChange.next(); - expect(ionChange).toHaveReceivedEventDetail({ value: 'new value', event: { isTrusted: true } }); - expect(ionChange).toHaveReceivedEventTimes(1); - }); - - test('should emit when blurred after clicking clear with default value', async ({ page }) => { - await page.setContent(``); - const nativeInput = page.locator('ion-searchbar input'); - const ionChange = await page.spyOnEvent('ionChange'); - - await page.click('.searchbar-clear-button'); - await page.waitForChanges(); - await nativeInput.evaluate((e) => e.blur()); - - await ionChange.next(); - expect(ionChange).toHaveReceivedEventDetail({ value: '', event: { isTrusted: true } }); - expect(ionChange).toHaveReceivedEventTimes(1); - }); - - test('should emit after clicking cancel with default value', async ({ page }) => { - await page.setContent(``); - const ionChange = await page.spyOnEvent('ionChange'); - - await page.click('.searchbar-cancel-button'); - await page.waitForChanges(); - - await ionChange.next(); - expect(ionChange).toHaveReceivedEventDetail({ value: '', event: { isTrusted: true } }); - expect(ionChange).toHaveReceivedEventTimes(1); - }); - - test('should not emit if the value is set programmatically', async ({ page }) => { - await page.setContent(``); - const searchbar = page.locator('ion-searchbar'); - const ionChange = await page.spyOnEvent('ionChange'); - - await searchbar.evaluate((el: HTMLIonSearchbarElement) => { - el.value = 'new value'; - }); - - await page.waitForChanges(); - expect(ionChange).toHaveReceivedEventTimes(0); - - // Update the value again to make sure it doesn't emit a second time - await searchbar.evaluate((el: HTMLIonSearchbarElement) => { - el.value = 'new value 2'; - }); - - await page.waitForChanges(); - expect(ionChange).toHaveReceivedEventTimes(0); - }); -}); - -test.describe('searchbar: events (ionInput)', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - - test('should emit when the user types', async ({ page }) => { - await page.setContent(``); - const nativeInput = page.locator('ion-searchbar input'); - const ionInput = await page.spyOnEvent('ionInput'); - - await nativeInput.type('new value', { delay: 100 }); - expect(ionInput).toHaveReceivedEventTimes(9); - }); -}); diff --git a/core/src/components/searchbar/test/events/searchbar.e2e.ts b/core/src/components/searchbar/test/events/searchbar.e2e.ts new file mode 100644 index 0000000000..28919348ca --- /dev/null +++ b/core/src/components/searchbar/test/events/searchbar.e2e.ts @@ -0,0 +1,83 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('searchbar: events (ionChange)'), () => { + test('should emit when blurred after value change', async ({ page }) => { + await page.setContent(``, config); + const nativeInput = page.locator('ion-searchbar input'); + const ionChange = await page.spyOnEvent('ionChange'); + + await nativeInput.type('new value', { delay: 100 }); + await nativeInput.evaluate((e) => e.blur()); + + await ionChange.next(); + expect(ionChange).toHaveReceivedEventDetail({ value: 'new value', event: { isTrusted: true } }); + expect(ionChange).toHaveReceivedEventTimes(1); + }); + + test('should emit when blurred after clicking clear with default value', async ({ page }) => { + await page.setContent(``, config); + const nativeInput = page.locator('ion-searchbar input'); + const ionChange = await page.spyOnEvent('ionChange'); + + await page.click('.searchbar-clear-button'); + await page.waitForChanges(); + await nativeInput.evaluate((e) => e.blur()); + + await ionChange.next(); + expect(ionChange).toHaveReceivedEventDetail({ value: '', event: { isTrusted: true } }); + expect(ionChange).toHaveReceivedEventTimes(1); + }); + + test('should emit after clicking cancel with default value', async ({ page }) => { + await page.setContent( + ``, + config + ); + const ionChange = await page.spyOnEvent('ionChange'); + + await page.click('.searchbar-cancel-button'); + await page.waitForChanges(); + + await ionChange.next(); + expect(ionChange).toHaveReceivedEventDetail({ value: '', event: { isTrusted: true } }); + expect(ionChange).toHaveReceivedEventTimes(1); + }); + + test('should not emit if the value is set programmatically', async ({ page }) => { + await page.setContent(``, config); + const searchbar = page.locator('ion-searchbar'); + const ionChange = await page.spyOnEvent('ionChange'); + + await searchbar.evaluate((el: HTMLIonSearchbarElement) => { + el.value = 'new value'; + }); + + await page.waitForChanges(); + expect(ionChange).toHaveReceivedEventTimes(0); + + // Update the value again to make sure it doesn't emit a second time + await searchbar.evaluate((el: HTMLIonSearchbarElement) => { + el.value = 'new value 2'; + }); + + await page.waitForChanges(); + expect(ionChange).toHaveReceivedEventTimes(0); + }); + }); + + test.describe(title('searchbar: events (ionInput)'), () => { + test('should emit when the user types', async ({ page }) => { + await page.setContent(``, config); + const nativeInput = page.locator('ion-searchbar input'); + const ionInput = await page.spyOnEvent('ionInput'); + + await nativeInput.type('new value', { delay: 100 }); + expect(ionInput).toHaveReceivedEventTimes(9); + }); + }); +}); diff --git a/core/src/components/segment/test/a11y/segment.e2e-legacy.ts b/core/src/components/segment/test/a11y/segment.e2e-legacy.ts deleted file mode 100644 index 8fe9e20049..0000000000 --- a/core/src/components/segment/test/a11y/segment.e2e-legacy.ts +++ /dev/null @@ -1,49 +0,0 @@ -import AxeBuilder from '@axe-core/playwright'; -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: a11y', () => { - test('should not have any axe violations', async ({ page }) => { - await page.goto('/src/components/segment/test/a11y'); - - const results = await new AxeBuilder({ page }).analyze(); - expect(results.violations).toEqual([]); - }); - - // TODO FW-3710 - test.skip('segment buttons should be keyboard navigable', async ({ page, browserName, skip }, testInfo) => { - // TODO (FW-2979) - skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.'); - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - const isRTL = testInfo.project.metadata.rtl === true; - const nextKey = isRTL ? 'ArrowLeft' : 'ArrowRight'; - const previousKey = isRTL ? 'ArrowRight' : 'ArrowLeft'; - - await page.goto('/src/components/segment/test/a11y'); - - const segmentButtons = page.locator('ion-segment-button'); - - await page.keyboard.press(tabKey); - await expect(segmentButtons.nth(0)).toBeFocused(); - - await page.keyboard.press(nextKey); - await expect(segmentButtons.nth(1)).toBeFocused(); - - await page.keyboard.press(previousKey); - await expect(segmentButtons.nth(0)).toBeFocused(); - - await page.keyboard.press('End'); - await expect(segmentButtons.nth(2)).toBeFocused(); - - await page.keyboard.press('Home'); - await expect(segmentButtons.nth(0)).toBeFocused(); - - // Loop to the end from the start - await page.keyboard.press(previousKey); - await expect(segmentButtons.nth(2)).toBeFocused(); - - // Loop to the start from the end - await page.keyboard.press(nextKey); - await expect(segmentButtons.nth(0)).toBeFocused(); - }); -}); diff --git a/core/src/components/segment/test/a11y/segment.e2e.ts b/core/src/components/segment/test/a11y/segment.e2e.ts new file mode 100644 index 0000000000..33bebc50f2 --- /dev/null +++ b/core/src/components/segment/test/a11y/segment.e2e.ts @@ -0,0 +1,51 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, config }) => { + test.describe(title('segment: a11y'), () => { + test('should not have any axe violations', async ({ page }) => { + await page.goto('/src/components/segment/test/a11y', config); + + const results = await new AxeBuilder({ page }).analyze(); + expect(results.violations).toEqual([]); + }); + + // TODO FW-3710 + test.skip('segment buttons should be keyboard navigable', async ({ page, browserName, skip }, testInfo) => { + // TODO (FW-2979) + skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + const isRTL = testInfo.project.metadata.rtl === true; + const nextKey = isRTL ? 'ArrowLeft' : 'ArrowRight'; + const previousKey = isRTL ? 'ArrowRight' : 'ArrowLeft'; + + await page.goto('/src/components/segment/test/a11y', config); + + const segmentButtons = page.locator('ion-segment-button'); + + await page.keyboard.press(tabKey); + await expect(segmentButtons.nth(0)).toBeFocused(); + + await page.keyboard.press(nextKey); + await expect(segmentButtons.nth(1)).toBeFocused(); + + await page.keyboard.press(previousKey); + await expect(segmentButtons.nth(0)).toBeFocused(); + + await page.keyboard.press('End'); + await expect(segmentButtons.nth(2)).toBeFocused(); + + await page.keyboard.press('Home'); + await expect(segmentButtons.nth(0)).toBeFocused(); + + // Loop to the end from the start + await page.keyboard.press(previousKey); + await expect(segmentButtons.nth(2)).toBeFocused(); + + // Loop to the start from the end + await page.keyboard.press(nextKey); + await expect(segmentButtons.nth(0)).toBeFocused(); + }); + }); +}); diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts b/core/src/components/segment/test/basic/segment.e2e.ts similarity index 63% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts rename to core/src/components/segment/test/basic/segment.e2e.ts index abd3a85604..f9f13b22ac 100644 --- a/core/src/components/segment/test/basic/segment.e2e-legacy.ts +++ b/core/src/components/segment/test/basic/segment.e2e.ts @@ -1,61 +1,80 @@ import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; -test.describe('segment: basic', () => { - test.describe('segment: rendering', () => { +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('segment: rendering'), () => { test('should not have visual regressions when no value is selected', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` First Second Third - `); + `, + config + ); const segment = page.locator('ion-segment'); - await expect(segment).toHaveScreenshot(`segment-no-value-${page.getSnapshotSettings()}.png`); + await expect(segment).toHaveScreenshot(screenshot(`segment-no-value`)); }); test('should not have visual regressions when a value is selected', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` First Second Third - `); + `, + config + ); const segment = page.locator('ion-segment'); - await expect(segment).toHaveScreenshot(`segment-value-${page.getSnapshotSettings()}.png`); + await expect(segment).toHaveScreenshot(screenshot(`segment-value`)); }); + }); +}); +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('segment: feature rendering'), () => { test('should not have visual regressions when an item is disabled', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` First Second Third - `); + `, + config + ); const segment = page.locator('ion-segment'); - await expect(segment).toHaveScreenshot(`segment-disabled-${page.getSnapshotSettings()}.png`); + await expect(segment).toHaveScreenshot(screenshot(`segment-disabled`)); }); test('should not have visual regressions with color', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` First Second Third - `); + `, + config + ); const segment = page.locator('ion-segment'); - await expect(segment).toHaveScreenshot(`segment-color-${page.getSnapshotSettings()}.png`); + await expect(segment).toHaveScreenshot(screenshot(`segment-color`)); }); }); }); diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-color-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-color-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-disabled-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-disabled-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-no-value-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-no-value-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/basic/segment.e2e-legacy.ts-snapshots/segment-value-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/basic/segment.e2e.ts-snapshots/segment-value-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts b/core/src/components/segment/test/custom/segment.e2e-legacy.ts deleted file mode 100644 index 6e6b7c7b33..0000000000 --- a/core/src/components/segment/test/custom/segment.e2e-legacy.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: custom', () => { - test('should not have visual regressions', async ({ page, skip }) => { - skip.rtl(); - - await page.goto('/src/components/segment/test/custom'); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`segment-custom-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/segment/test/custom/segment.e2e.ts b/core/src/components/segment/test/custom/segment.e2e.ts new file mode 100644 index 0000000000..d1e857a5d6 --- /dev/null +++ b/core/src/components/segment/test/custom/segment.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('segment: custom'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/segment/test/custom', config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`segment-custom`)); + }); + }); +}); diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/custom/segment.e2e-legacy.ts-snapshots/segment-custom-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/custom/segment.e2e.ts-snapshots/segment-custom-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts b/core/src/components/segment/test/icon/segment.e2e-legacy.ts deleted file mode 100644 index 77b035b705..0000000000 --- a/core/src/components/segment/test/icon/segment.e2e-legacy.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: icons', () => { - test('should not have visual regressions', async ({ page }) => { - await page.setContent(` - - - - Bookmarks - - - - Reading List - - - - Shared Links - - - `); - - const segment = page.locator('ion-segment'); - - await expect(segment).toHaveScreenshot(`segment-icons-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/segment/test/icon/segment.e2e.ts b/core/src/components/segment/test/icon/segment.e2e.ts new file mode 100644 index 0000000000..36aff5cdb8 --- /dev/null +++ b/core/src/components/segment/test/icon/segment.e2e.ts @@ -0,0 +1,32 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('segment: icons'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + + + Bookmarks + + + + Reading List + + + + Shared Links + + + `, + config + ); + + const segment = page.locator('ion-segment'); + + await expect(segment).toHaveScreenshot(screenshot(`segment-icons`)); + }); + }); +}); diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/icon/segment.e2e-legacy.ts-snapshots/segment-icons-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/icon/segment.e2e.ts-snapshots/segment-icons-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/modes/segment.e2e-legacy.ts b/core/src/components/segment/test/modes/segment.e2e-legacy.ts deleted file mode 100644 index dbb68da0a2..0000000000 --- a/core/src/components/segment/test/modes/segment.e2e-legacy.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: modes', () => { - test('should allow overriding of modes to iOS', async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios', 'This tests that users can override the mode to iOS when the app is in MD mode'); - - await page.setContent(` - - - Puppies - - - `); - - const segment = page.locator('ion-segment'); - const segmentButtons = page.locator('ion-segment-button'); - await expect(segment).toHaveClass(/ios/); - await expect(segmentButtons).toHaveClass(/ios/); - }); - - test('should allow overriding of modes to MD', async ({ page, skip }) => { - skip.rtl(); - skip.mode('md', 'This tests that users can override the mode to MD when the app is in iOS mode'); - - await page.setContent(` - - - Puppies - - - `); - - const segment = page.locator('ion-segment'); - const segmentButtons = page.locator('ion-segment-button'); - await expect(segment).toHaveClass(/md/); - await expect(segmentButtons).toHaveClass(/md/); - }); -}); diff --git a/core/src/components/segment/test/modes/segment.e2e.ts b/core/src/components/segment/test/modes/segment.e2e.ts new file mode 100644 index 0000000000..ed409be143 --- /dev/null +++ b/core/src/components/segment/test/modes/segment.e2e.ts @@ -0,0 +1,45 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This tests that users can override the mode to iOS when the app is in MD mode + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('segment: modes'), () => { + test('should allow overriding of modes to iOS', async ({ page }) => { + await page.setContent( + ` + + + Puppies + + + `, + config + ); + + const segment = page.locator('ion-segment'); + const segmentButtons = page.locator('ion-segment-button'); + await expect(segment).toHaveClass(/ios/); + await expect(segmentButtons).toHaveClass(/ios/); + }); + + test('should allow overriding of modes to MD', async ({ page }) => { + await page.setContent( + ` + + + Puppies + + + `, + config + ); + + const segment = page.locator('ion-segment'); + const segmentButtons = page.locator('ion-segment-button'); + await expect(segment).toHaveClass(/md/); + await expect(segmentButtons).toHaveClass(/md/); + }); + }); +}); diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts b/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts deleted file mode 100644 index 941d2c63e7..0000000000 --- a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: scrollable', () => { - test('should not have visual regressions', async ({ page }) => { - await page.setContent(` - - First - Second - Third - Fourth - Fifth - Sixth - Seventh - Eigth - Nineth - - `); - - const segment = page.locator('ion-segment'); - - await expect(segment).toHaveScreenshot(`segment-scrollable-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/segment/test/scrollable/segment.e2e.ts b/core/src/components/segment/test/scrollable/segment.e2e.ts new file mode 100644 index 0000000000..d40258a70f --- /dev/null +++ b/core/src/components/segment/test/scrollable/segment.e2e.ts @@ -0,0 +1,29 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('segment: scrollable'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.setContent( + ` + + First + Second + Third + Fourth + Fifth + Sixth + Seventh + Eigth + Nineth + + `, + config + ); + + const segment = page.locator('ion-segment'); + + await expect(segment).toHaveScreenshot(screenshot(`segment-scrollable`)); + }); + }); +}); diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/scrollable/segment.e2e-legacy.ts-snapshots/segment-scrollable-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/scrollable/segment.e2e.ts-snapshots/segment-scrollable-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/segment-events.e2e-legacy.ts b/core/src/components/segment/test/segment-events.e2e-legacy.ts deleted file mode 100644 index 6a4c29a8ca..0000000000 --- a/core/src/components/segment/test/segment-events.e2e-legacy.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('segment: events: ionChange', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - - test.describe('when the segment is activated by keyboard navigation', () => { - test('should emit when there is no initial value', async ({ page, browserName }) => { - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - - await page.keyboard.press(tabKey); - await page.keyboard.press('ArrowRight'); - await page.keyboard.press('Enter'); - - expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); - - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); - }); - }); - - test.describe('when the segment is clicked', () => { - test('should emit when the value changes', async ({ page }) => { - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await page.click('ion-segment-button[value="2"]'); - - await ionChangeSpy.next(); - - expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - }); - - test('when the segment does not have an initial value', async ({ page }) => { - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await page.click('ion-segment-button[value="2"]'); - - await ionChangeSpy.next(); - - expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - }); - }); - - // TODO FW-3021 - test.describe.skip('when the pointer is released', () => { - test('should emit if the value has changed', async ({ page }) => { - test.info().annotations.push({ - type: 'issue', - description: 'https://github.com/ionic-team/ionic-framework/issues/20257', - }); - - await page.setContent(` - - - - One - Two - Three - - - - `); - - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - const firstButton = page.locator('ion-segment-button[value="1"]'); - const lastButton = page.locator('ion-segment-button[value="3"]'); - - await firstButton.hover(); - await page.mouse.down(); - - await lastButton.hover(); - await page.mouse.up(); - - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '3' }); - expect(ionChangeSpy).toHaveReceivedEventTimes(1); - }); - - test('should not emit if the value has not changed', async ({ page }) => { - await page.setContent(` - - One - Two - Three - - `); - - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - const firstButton = page.locator('ion-segment-button[value="1"]'); - const lastButton = page.locator('ion-segment-button[value="3"]'); - - await firstButton.hover(); - await page.mouse.down(); - - await lastButton.hover(); - - await firstButton.hover(); - await page.mouse.up(); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - }); - }); - - test('should not emit if the value has not changed on click', async ({ page }) => { - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await page.click('ion-segment-button[value="1"]'); - - expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('1'); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - }); - - test('should not emit if the value is set programmatically', async ({ page }) => { - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await segment.evaluate((el: HTMLIonSegmentElement) => (el.value = '2')); - - expect(ionChangeSpy).toHaveReceivedEventTimes(0); - expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); - }); - - test('should emit when clicking after changing value programmatically', async ({ page }) => { - test.info().annotations.push({ - type: 'issue', - description: 'https://github.com/ionic-team/ionic-framework/issues/27002', - }); - - await page.setContent(` - - One - Two - Three - - `); - - const segment = page.locator('ion-segment'); - const segmentButtons = segment.locator('ion-segment-button'); - const ionChangeSpy = await page.spyOnEvent('ionChange'); - - await segment.evaluate((el: HTMLIonSegmentElement) => (el.value = '2')); - - await segmentButtons.nth(0).click(); - - await ionChangeSpy.next(); - expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '1' }); - }); -}); diff --git a/core/src/components/segment/test/segment-events.e2e.ts b/core/src/components/segment/test/segment-events.e2e.ts new file mode 100644 index 0000000000..f0b10d0e9a --- /dev/null +++ b/core/src/components/segment/test/segment-events.e2e.ts @@ -0,0 +1,229 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('segment: events: ionChange'), () => { + test.describe('when the segment is activated by keyboard navigation', () => { + test('should emit when there is no initial value', async ({ page, browserName }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + await page.keyboard.press(tabKey); + await page.keyboard.press('ArrowRight'); + await page.keyboard.press('Enter'); + + expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); + + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); + }); + }); + + test.describe('when the segment is clicked', () => { + test('should emit when the value changes', async ({ page }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await page.click('ion-segment-button[value="2"]'); + + await ionChangeSpy.next(); + + expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + }); + + test('when the segment does not have an initial value', async ({ page }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await page.click('ion-segment-button[value="2"]'); + + await ionChangeSpy.next(); + + expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + }); + }); + + // TODO FW-3021 + test.describe.skip('when the pointer is released', () => { + test('should emit if the value has changed', async ({ page }) => { + test.info().annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/20257', + }); + + await page.setContent( + ` + + + + One + Two + Three + + + + `, + config + ); + + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + const firstButton = page.locator('ion-segment-button[value="1"]'); + const lastButton = page.locator('ion-segment-button[value="3"]'); + + await firstButton.hover(); + await page.mouse.down(); + + await lastButton.hover(); + await page.mouse.up(); + + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '3' }); + expect(ionChangeSpy).toHaveReceivedEventTimes(1); + }); + + test('should not emit if the value has not changed', async ({ page }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + const firstButton = page.locator('ion-segment-button[value="1"]'); + const lastButton = page.locator('ion-segment-button[value="3"]'); + + await firstButton.hover(); + await page.mouse.down(); + + await lastButton.hover(); + + await firstButton.hover(); + await page.mouse.up(); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + }); + }); + + test('should not emit if the value has not changed on click', async ({ page }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await page.click('ion-segment-button[value="1"]'); + + expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('1'); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + }); + + test('should not emit if the value is set programmatically', async ({ page }) => { + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await segment.evaluate((el: HTMLIonSegmentElement) => (el.value = '2')); + + expect(ionChangeSpy).toHaveReceivedEventTimes(0); + expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); + }); + + test('should emit when clicking after changing value programmatically', async ({ page }) => { + test.info().annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/27002', + }); + + await page.setContent( + ` + + One + Two + Three + + `, + config + ); + + const segment = page.locator('ion-segment'); + const segmentButtons = segment.locator('ion-segment-button'); + const ionChangeSpy = await page.spyOnEvent('ionChange'); + + await segment.evaluate((el: HTMLIonSegmentElement) => (el.value = '2')); + + await segmentButtons.nth(0).click(); + + await ionChangeSpy.next(); + expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '1' }); + }); + }); +}); diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts b/core/src/components/segment/test/toolbar/segment.e2e.ts similarity index 76% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts rename to core/src/components/segment/test/toolbar/segment.e2e.ts index 20329552c8..a3687a6feb 100644 --- a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts +++ b/core/src/components/segment/test/toolbar/segment.e2e.ts @@ -1,10 +1,11 @@ import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; -test.describe('segment: toolbar', () => { - test.describe('segment: rendering', () => { +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('segment: rendering'), () => { test('should not have visual regressions when used in a toolbar without color', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` @@ -14,15 +15,18 @@ test.describe('segment: toolbar', () => { - `); + `, + config + ); const header = page.locator('ion-header'); - await expect(header).toHaveScreenshot(`segment-toolbar-${page.getSnapshotSettings()}.png`); + await expect(header).toHaveScreenshot(screenshot(`segment-toolbar`)); }); test('should not have visual regressions when used in a toolbar with color', async ({ page }) => { - await page.setContent(` + await page.setContent( + ` @@ -53,23 +57,30 @@ test.describe('segment: toolbar', () => { - `); + `, + config + ); const header = page.locator('ion-header'); - await expect(header).toHaveScreenshot(`segment-toolbar-color-${page.getSnapshotSettings()}.png`); + await expect(header).toHaveScreenshot(screenshot(`segment-toolbar-color`)); }); + }); +}); - test('should not inherit height when segment is MD and toolbar is iOS', async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios', 'We manually set the mode in this test, so the automatic mode switching is not needed'); - +/** + * We manually set the mode in this test, so the automatic mode switching is not needed + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('segment: feature rendering'), () => { + test('should not inherit height when segment is MD and toolbar is iOS', async ({ page }) => { test.info().annotations.push({ type: 'issue', description: 'https://github.com/ionic-team/ionic-framework/issues/18617', }); - await page.setContent(` + await page.setContent( + ` @@ -79,11 +90,13 @@ test.describe('segment: toolbar', () => { - `); + `, + config + ); const header = page.locator('ion-header'); - await expect(header).toHaveScreenshot(`segment-toolbar-height-inherit-${page.getSnapshotSettings()}.png`); + await expect(header).toHaveScreenshot(screenshot(`segment-toolbar-height-inherit`)); }); }); }); diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-color-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-height-inherit-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-ltr-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Chrome-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Firefox-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Safari-linux.png b/core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/segment/test/toolbar/segment.e2e-legacy.ts-snapshots/segment-toolbar-md-rtl-Mobile-Safari-linux.png rename to core/src/components/segment/test/toolbar/segment.e2e.ts-snapshots/segment-toolbar-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts deleted file mode 100644 index c8ab652275..0000000000 --- a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('skeleton-text: basic', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/skeleton-text/test/basic'); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`skeleton-text-basic-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts new file mode 100644 index 0000000000..38afaaaee6 --- /dev/null +++ b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('skeleton-text: basic'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/skeleton-text/test/basic', config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`skeleton-text-basic`)); + }); + }); +}); diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/basic/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/basic/skeleton-text.e2e.ts-snapshots/skeleton-text-basic-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts deleted file mode 100644 index 1406df997b..0000000000 --- a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('skeleton-text: custom', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/skeleton-text/test/custom'); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`skeleton-text-custom-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts new file mode 100644 index 0000000000..7f31fedc00 --- /dev/null +++ b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('skeleton-text: custom'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/skeleton-text/test/custom', config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`skeleton-text-custom`)); + }); + }); +}); diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Chrome-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Firefox-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Safari-linux.png b/core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/skeleton-text/test/custom/skeleton-text.e2e-legacy.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Safari-linux.png rename to core/src/components/skeleton-text/test/custom/skeleton-text.e2e.ts-snapshots/skeleton-text-custom-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts b/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts deleted file mode 100644 index 6bdfc8d0a3..0000000000 --- a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('spinner: basic', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/spinner/test/basic'); - }); - test.describe('spinner: visual regression tests', () => { - test('should not have visual regressions', async ({ page }) => { - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`spinner-basic-diff-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/spinner/test/basic/spinner.e2e.ts b/core/src/components/spinner/test/basic/spinner.e2e.ts new file mode 100644 index 0000000000..c1e148b28c --- /dev/null +++ b/core/src/components/spinner/test/basic/spinner.e2e.ts @@ -0,0 +1,17 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('spinner: basic'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/spinner/test/basic', config); + }); + test.describe('spinner: visual regression tests', () => { + test('should not have visual regressions', async ({ page }) => { + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`spinner-basic-diff`)); + }); + }); + }); +}); diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/basic/spinner.e2e-legacy.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/spinner/test/basic/spinner.e2e.ts-snapshots/spinner-basic-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts deleted file mode 100644 index d120e8e57a..0000000000 --- a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('spinner: color', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/src/components/spinner/test/color'); - }); - test.describe('spinner: visual regression tests', () => { - test('should not have visual regressions', async ({ page }) => { - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`spinner-color-diff-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 4acf0c3613..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 41e362fdf3..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 607febe5ab..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index facb618893..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 72b76ded2a..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 2d82eb985c..0000000000 Binary files a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/spinner/test/color/spinner.e2e.ts b/core/src/components/spinner/test/color/spinner.e2e.ts new file mode 100644 index 0000000000..864513e749 --- /dev/null +++ b/core/src/components/spinner/test/color/spinner.e2e.ts @@ -0,0 +1,20 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('spinner: color'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/spinner/test/color', config); + }); + test.describe('spinner: visual regression tests', () => { + test('should not have visual regressions', async ({ page }) => { + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`spinner-color-diff`)); + }); + }); + }); +}); diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/spinner/test/color/spinner.e2e-legacy.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/spinner/test/color/spinner.e2e.ts-snapshots/spinner-color-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts b/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts deleted file mode 100644 index 0a936e4138..0000000000 --- a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { expect } from '@playwright/test'; -import { test, Viewports } from '@utils/test/playwright'; - -test.describe('split-pane: basic', () => { - test('should render on the correct side', async ({ page }) => { - await page.setViewportSize(Viewports.large); - await page.goto(`/src/components/split-pane/test/basic`); - - await expect(page).toHaveScreenshot(`split-pane-${page.getSnapshotSettings()}.png`, { animations: 'disabled' }); - }); - test('should collapse on smaller viewports', async ({ page, skip }) => { - skip.rtl(); - await page.goto(`/src/components/split-pane/test/basic`); - - const menu = page.locator('ion-menu'); - await expect(menu).toBeHidden(); - }); - test('should expand on larger viewports', async ({ page, skip }) => { - skip.rtl(); - await page.setViewportSize(Viewports.large); - await page.goto(`/src/components/split-pane/test/basic`); - - const menu = page.locator('ion-menu'); - await expect(menu).toBeVisible(); - }); -}); diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e.ts b/core/src/components/split-pane/test/basic/split-pane.e2e.ts new file mode 100644 index 0000000000..ad158b5623 --- /dev/null +++ b/core/src/components/split-pane/test/basic/split-pane.e2e.ts @@ -0,0 +1,31 @@ +import { expect } from '@playwright/test'; +import { configs, test, Viewports } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('split-pane: basic'), () => { + test('should render on the correct side', async ({ page }) => { + await page.setViewportSize(Viewports.large); + await page.goto(`/src/components/split-pane/test/basic`, config); + + await expect(page).toHaveScreenshot(screenshot(`split-pane`)); + }); + }); +}); + +configs({ directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('split-pane: functionality'), () => { + test('should collapse on smaller viewports', async ({ page }) => { + await page.goto(`/src/components/split-pane/test/basic`, config); + + const menu = page.locator('ion-menu'); + await expect(menu).toBeHidden(); + }); + test('should expand on larger viewports', async ({ page }) => { + await page.setViewportSize(Viewports.large); + await page.goto(`/src/components/split-pane/test/basic`, config); + + const menu = page.locator('ion-menu'); + await expect(menu).toBeVisible(); + }); + }); +}); diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Safari-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Safari-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Chrome-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Firefox-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Safari-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-ltr-Mobile-Safari-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Chrome-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Firefox-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Safari-linux.png b/core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/split-pane/test/basic/split-pane.e2e-legacy.ts-snapshots/split-pane-md-rtl-Mobile-Safari-linux.png rename to core/src/components/split-pane/test/basic/split-pane.e2e.ts-snapshots/split-pane-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts b/core/src/components/text/test/basic/text.e2e-legacy.ts deleted file mode 100644 index e5b69fb57c..0000000000 --- a/core/src/components/text/test/basic/text.e2e-legacy.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('text: basic', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios', 'Text does not have per-mode styles'); - }); - test('should render default text', async ({ page }) => { - await page.setContent(` - - The quick brown fox jumps over the lazy dog - - `); - - const text = page.locator('ion-text'); - await expect(text.nth(0)).toHaveScreenshot(`text-${page.getSnapshotSettings()}.png`); - }); - test('should render text with color prop', async ({ page }) => { - await page.setContent(` - - The quick brown fox jumps over the lazy dog - - `); - - const text = page.locator('ion-text'); - await expect(text.nth(0)).toHaveScreenshot(`text-color-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/text/test/basic/text.e2e.ts b/core/src/components/text/test/basic/text.e2e.ts new file mode 100644 index 0000000000..a98baa015d --- /dev/null +++ b/core/src/components/text/test/basic/text.e2e.ts @@ -0,0 +1,36 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * Text does not have per-mode styles + */ +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('text: basic'), () => { + test('should render default text', async ({ page }) => { + await page.setContent( + ` + + The quick brown fox jumps over the lazy dog + + `, + config + ); + + const text = page.locator('ion-text'); + await expect(text.nth(0)).toHaveScreenshot(screenshot(`text`)); + }); + test('should render text with color prop', async ({ page }) => { + await page.setContent( + ` + + The quick brown fox jumps over the lazy dog + + `, + config + ); + + const text = page.locator('ion-text'); + await expect(text.nth(0)).toHaveScreenshot(screenshot(`text-color`)); + }); + }); +}); diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Chrome-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Firefox-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Safari-linux.png b/core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/text/test/basic/text.e2e-legacy.ts-snapshots/text-md-ltr-Mobile-Safari-linux.png rename to core/src/components/text/test/basic/text.e2e.ts-snapshots/text-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts b/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts deleted file mode 100644 index 4ddf1bba07..0000000000 --- a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('thumbnail: basic', () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/src/components/thumbnail/test/basic`); - }); - test('should not have visual regressions when rendering ', async ({ page, skip }) => { - skip.rtl('ion-thumbnail does not have RTL-specific logic'); - skip.mode('md', 'ion-thumbnail does not have mode-specific logic'); - - const referenceEl = page.locator('#img'); - - await expect(referenceEl).toHaveScreenshot(`thumbnail-img-diff-${page.getSnapshotSettings()}.png`); - }); - - /** - * ion-item has mode and RTL specific logic - * for ion-thumbnail which is why we do not skip - * RTL and mode tests here. - */ - test('should not have visual regressions when rendering inside of an ', async ({ page }) => { - const referenceEl = page.locator('#ion-item'); - - await expect(referenceEl).toHaveScreenshot(`thumbnail-ion-item-diff-${page.getSnapshotSettings()}.png`); - }); - - test('size should be customizable in ', async ({ page, skip }) => { - skip.rtl(); - - test.info().annotations.push({ - type: 'issue', - description: 'https://github.com/ionic-team/ionic-framework/issues/22935', - }); - - await page.setContent(` - - - - - - `); - - const item = page.locator('ion-item'); - await expect(item).toHaveScreenshot(`thumbnail-ion-item-size-diff-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts new file mode 100644 index 0000000000..49b4c6dfcc --- /dev/null +++ b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts @@ -0,0 +1,57 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * ion-thumbnail does not have mode/RTL-specific logic + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('thumbnail: rendering'), () => { + test('should not have visual regressions when rendering ', async ({ page }) => { + await page.goto(`/src/components/thumbnail/test/basic`, config); + + const referenceEl = page.locator('#img'); + + await expect(referenceEl).toHaveScreenshot(screenshot(`thumbnail-img-diff`)); + }); + + test('size should be customizable in ', async ({ page }) => { + test.info().annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/22935', + }); + + await page.setContent( + ` + + + + + + `, + config + ); + + const item = page.locator('ion-item'); + await expect(item).toHaveScreenshot(screenshot(`thumbnail-ion-item-size-diff`)); + }); + }); +}); + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('thumbnail: item rendering'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/thumbnail/test/basic`, config); + }); + + /** + * ion-item has mode and RTL specific logic + * for ion-thumbnail which is why we do not skip + * RTL and mode tests here. + */ + test('should not have visual regressions when rendering inside of an ', async ({ page }) => { + const referenceEl = page.locator('#ion-item'); + + await expect(referenceEl).toHaveScreenshot(screenshot(`thumbnail-ion-item-diff`)); + }); + }); +}); diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-img-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/thumbnail/test/basic/thumbnail.e2e-legacy.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/thumbnail/test/basic/thumbnail.e2e.ts-snapshots/thumbnail-ion-item-size-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts b/core/src/components/title/test/basic/title.e2e-legacy.ts deleted file mode 100644 index 83444e2a54..0000000000 --- a/core/src/components/title/test/basic/title.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('title: basic', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto('/src/components/title/test/basic'); - const wrapper = page.locator('#header-wrapper'); - - // only screenshot the headers to avoid unnecessary blank space from ion-content - await expect(wrapper).toHaveScreenshot(`title-basic-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/title/test/basic/title.e2e.ts b/core/src/components/title/test/basic/title.e2e.ts new file mode 100644 index 0000000000..a821bcf9b7 --- /dev/null +++ b/core/src/components/title/test/basic/title.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('title: basic'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto('/src/components/title/test/basic', config); + const wrapper = page.locator('#header-wrapper'); + + // only screenshot the headers to avoid unnecessary blank space from ion-content + await expect(wrapper).toHaveScreenshot(screenshot(`title-basic`)); + }); + }); +}); diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-ltr-Mobile-Safari-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/title/test/basic/title.e2e-legacy.ts-snapshots/title-basic-md-rtl-Mobile-Safari-linux.png rename to core/src/components/title/test/basic/title.e2e.ts-snapshots/title-basic-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/a11y/toast.e2e-legacy.ts b/core/src/components/toast/test/a11y/toast.e2e-legacy.ts deleted file mode 100644 index a9ccf76cba..0000000000 --- a/core/src/components/toast/test/a11y/toast.e2e-legacy.ts +++ /dev/null @@ -1,38 +0,0 @@ -import AxeBuilder from '@axe-core/playwright'; -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toast: a11y', () => { - test.beforeEach(async ({ page }, testInfo) => { - test.skip(testInfo.project.metadata.rtl === true, 'This test does not check LTR vs RTL layouts'); - await page.goto(`/src/components/toast/test/a11y`); - }); - test('should not have any axe violations with inline toasts', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - - await page.click('#inline-toast-trigger'); - await ionToastDidPresent.next(); - - /** - * IonToast overlays the entire screen, so - * Axe will be unable to verify color contrast - * on elements under the toast. - */ - const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); - expect(results.violations).toEqual([]); - }); - test('should not have any axe violations with controller toasts', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - - await page.click('#controller-toast-trigger'); - await ionToastDidPresent.next(); - - /** - * IonToast overlays the entire screen, so - * Axe will be unable to verify color contrast - * on elements under the toast. - */ - const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); - expect(results.violations).toEqual([]); - }); -}); diff --git a/core/src/components/toast/test/a11y/toast.e2e.ts b/core/src/components/toast/test/a11y/toast.e2e.ts new file mode 100644 index 0000000000..65b24a85b3 --- /dev/null +++ b/core/src/components/toast/test/a11y/toast.e2e.ts @@ -0,0 +1,42 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This test does not check LTR vs RTL layouts + */ +configs({ directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toast: a11y'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/toast/test/a11y`, config); + }); + test('should not have any axe violations with inline toasts', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + + await page.click('#inline-toast-trigger'); + await ionToastDidPresent.next(); + + /** + * IonToast overlays the entire screen, so + * Axe will be unable to verify color contrast + * on elements under the toast. + */ + const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); + expect(results.violations).toEqual([]); + }); + test('should not have any axe violations with controller toasts', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + + await page.click('#controller-toast-trigger'); + await ionToastDidPresent.next(); + + /** + * IonToast overlays the entire screen, so + * Axe will be unable to verify color contrast + * on elements under the toast. + */ + const results = await new AxeBuilder({ page }).disableRules('color-contrast').analyze(); + expect(results.violations).toEqual([]); + }); + }); +}); diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts b/core/src/components/toast/test/basic/toast.e2e-legacy.ts deleted file mode 100644 index 84250ee7ae..0000000000 --- a/core/src/components/toast/test/basic/toast.e2e-legacy.ts +++ /dev/null @@ -1,167 +0,0 @@ -import type { Locator, TestInfo } from '@playwright/test'; -import { expect } from '@playwright/test'; -import type { E2EPage, EventSpy } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -class ToastFixture { - readonly page: E2EPage; - readonly testInfo: TestInfo; - - private ionToastDidPresent!: EventSpy; - - constructor(page: E2EPage, testInfo: TestInfo) { - this.page = page; - this.testInfo = testInfo; - } - - async goto() { - const { page } = this; - await page.goto(`/src/components/toast/test/basic`); - this.ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - } - - async openToast(selector: string) { - const { page, ionToastDidPresent } = this; - const button = page.locator(selector); - await button.click(); - - await ionToastDidPresent.next(); - - return { - toast: page.locator('ion-toast'), - container: page.locator('ion-toast .toast-container'), - }; - } - - async screenshot(screenshotModifier: string, el?: Locator) { - const { page } = this; - - const screenshotString = `toast-${screenshotModifier}-${page.getSnapshotSettings()}.png`; - - if (el === undefined) { - await expect(page).toHaveScreenshot(screenshotString); - } else { - await expect(el).toHaveScreenshot(screenshotString); - } - } - - skipRTL(testRef: typeof test, reason = 'This functionality does not have RTL-specific behaviors.') { - const { testInfo } = this; - testRef.skip(testInfo.project.metadata.rtl === true, reason); - } - - skipMode(testRef: typeof test, mode: string, reason: string) { - const { testInfo } = this; - testRef.skip(testInfo.project.metadata.mode === mode, reason); - } -} - -test.describe('toast: rendering', () => { - let toastFixture: ToastFixture; - test.beforeEach(async ({ page }, testInfo) => { - toastFixture = new ToastFixture(page, testInfo); - await toastFixture.goto(); - }); - - test.describe('toast: position', () => { - test.beforeEach(() => { - toastFixture.skipRTL(test); - }); - test('should render toast at the top', async () => { - await toastFixture.openToast('#show-top-toast'); - await toastFixture.screenshot('top'); - }); - test('should render toast at the middle', async () => { - await toastFixture.openToast('#show-middle-toast'); - await toastFixture.screenshot('middle'); - }); - test('should render toast at the bottom', async () => { - await toastFixture.openToast('#show-bottom-toast'); - await toastFixture.screenshot('bottom'); - }); - }); - - test('should set buttons correctly', async () => { - const { container } = await toastFixture.openToast('#custom-action-buttons-toast'); - await toastFixture.screenshot('buttons', container); - }); - - test('should set start/end positioning correctly', async () => { - const { container } = await toastFixture.openToast('#toast-start-and-end'); - await toastFixture.screenshot('start-end', container); - }); - - test('should wrap text correctly', async () => { - toastFixture.skipRTL(test); - const { container } = await toastFixture.openToast('#two-line-toast'); - await toastFixture.screenshot('text', container); - }); - - test('should set color correctly', async () => { - toastFixture.skipRTL(test); - const { container } = await toastFixture.openToast('#color-toast'); - await toastFixture.screenshot('color', container); - }); - - test('should set translucency correctly', async () => { - toastFixture.skipRTL(test); - toastFixture.skipMode(test, 'md', 'Translucency only works on iOS'); - - const { container } = await toastFixture.openToast('#translucent-toast'); - await toastFixture.screenshot('translucent', container); - }); -}); - -test.describe('toast: properties', () => { - let toastFixture: ToastFixture; - test.beforeEach(async ({ page }, testInfo) => { - toastFixture = new ToastFixture(page, testInfo); - - toastFixture.skipMode(test, 'md', 'This functionality has no mode specific logic.'); - toastFixture.skipRTL(test); - - await toastFixture.goto(); - }); - test('should correctly set htmlAttributes', async () => { - const { toast } = await toastFixture.openToast('#show-bottom-toast'); - await expect(toast).toHaveAttribute('data-testid', 'basic-toast'); - }); - - test('should correctly set custom html', async () => { - const { toast } = await toastFixture.openToast('#toast-html'); - await expect(toast.locator('ion-button')).toBeVisible(); - }); - - test('should correctly set custom class', async () => { - const { toast } = await toastFixture.openToast('#custom-class-toast'); - await expect(toast).toHaveClass(/my-custom-class/); - }); -}); - -test.describe('toast: duration config', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - test('should have duration set to 0', async ({ page }) => { - await page.setContent(` - - `); - const toast = page.locator('ion-toast'); - await expect(toast).toHaveJSProperty('duration', 0); - }); - - test('should have duration set to 5000', async ({ page }) => { - await page.setContent(` - - - `); - - const toast = page.locator('ion-toast'); - await expect(toast).toHaveJSProperty('duration', 5000); - }); -}); diff --git a/core/src/components/toast/test/basic/toast.e2e.ts b/core/src/components/toast/test/basic/toast.e2e.ts new file mode 100644 index 0000000000..1bbb898899 --- /dev/null +++ b/core/src/components/toast/test/basic/toast.e2e.ts @@ -0,0 +1,136 @@ +import type { Locator } from '@playwright/test'; +import { expect } from '@playwright/test'; +import type { E2EPage, E2EPageOptions, ScreenshotFn, EventSpy } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +class ToastFixture { + readonly page: E2EPage; + + private ionToastDidPresent!: EventSpy; + + constructor(page: E2EPage) { + this.page = page; + } + + async goto(config: E2EPageOptions) { + const { page } = this; + await page.goto(`/src/components/toast/test/basic`, config); + this.ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + } + + async openToast(selector: string) { + const { page, ionToastDidPresent } = this; + const button = page.locator(selector); + await button.click(); + + await ionToastDidPresent.next(); + + return { + toast: page.locator('ion-toast'), + container: page.locator('ion-toast .toast-container'), + }; + } + + async screenshot(screenshotModifier: string, screenshot: ScreenshotFn, el?: Locator) { + const { page } = this; + + const screenshotString = screenshot(`toast-${screenshotModifier}`); + + if (el === undefined) { + await expect(page).toHaveScreenshot(screenshotString); + } else { + await expect(el).toHaveScreenshot(screenshotString); + } + } +} + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toast: position rendering'), () => { + let toastFixture: ToastFixture; + test.beforeEach(async ({ page }) => { + toastFixture = new ToastFixture(page); + await toastFixture.goto(config); + }); + test('should render toast at the top', async () => { + await toastFixture.openToast('#show-top-toast'); + await toastFixture.screenshot('top', screenshot); + }); + test('should render toast at the middle', async () => { + await toastFixture.openToast('#show-middle-toast'); + await toastFixture.screenshot('middle', screenshot); + }); + test('should render toast at the bottom', async () => { + await toastFixture.openToast('#show-bottom-toast'); + await toastFixture.screenshot('bottom', screenshot); + }); + }); + test.describe(title('toast: color rendering'), () => { + test('should set color correctly', async ({ page }) => { + const toastFixture = new ToastFixture(page); + await toastFixture.goto(config); + const { container } = await toastFixture.openToast('#color-toast'); + await toastFixture.screenshot('color', screenshot, container); + }); + }); + + test.describe(title('toast: text wrapping'), () => { + test('should wrap text correctly', async ({ page }) => { + const toastFixture = new ToastFixture(page); + await toastFixture.goto(config); + const { container } = await toastFixture.openToast('#two-line-toast'); + await toastFixture.screenshot('text', screenshot, container); + }); + }); +}); + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + /** + * Translucency only works on iOS + */ + test.describe(title('toast: translucency'), () => { + test('should set translucency correctly', async ({ page }) => { + const toastFixture = new ToastFixture(page); + await toastFixture.goto(config); + + const { container } = await toastFixture.openToast('#translucent-toast'); + await toastFixture.screenshot('translucent', screenshot, container); + }); + }); + + /** + * This functionality has no mode specific logic. + */ + test.describe(title('toast: properties'), () => { + let toastFixture: ToastFixture; + test.beforeEach(async ({ page }) => { + toastFixture = new ToastFixture(page); + + await toastFixture.goto(config); + }); + + test('should correctly set custom class', async () => { + const { toast } = await toastFixture.openToast('#custom-class-toast'); + await expect(toast).toHaveClass(/my-custom-class/); + }); + }); +}); + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toast: rendering'), () => { + let toastFixture: ToastFixture; + test.beforeEach(async ({ page }) => { + toastFixture = new ToastFixture(page); + await toastFixture.goto(config); + }); + + test('should set buttons correctly', async () => { + const { container } = await toastFixture.openToast('#custom-action-buttons-toast'); + await toastFixture.screenshot('buttons', screenshot, container); + }); + + test('should set start/end positioning correctly', async () => { + const { container } = await toastFixture.openToast('#toast-start-and-end'); + await toastFixture.screenshot('start-end', screenshot, container); + }); + }); +}); diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-bottom-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-bottom-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-buttons-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-buttons-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-middle-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-middle-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-start-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-start-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-text-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-text-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-top-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-top-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/basic/toast.e2e-legacy.ts-snapshots/toast-translucent-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/basic/toast.e2e.ts-snapshots/toast-translucent-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/is-open/toast.e2e-legacy.ts b/core/src/components/toast/test/is-open/toast.e2e-legacy.ts deleted file mode 100644 index 039b62950d..0000000000 --- a/core/src/components/toast/test/is-open/toast.e2e-legacy.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toast: isOpen', () => { - test.beforeEach(async ({ page, skip }) => { - skip.rtl('isOpen does not behave differently in RTL'); - skip.mode('md', 'isOpen does not behave differently in MD'); - await page.goto('/src/components/toast/test/is-open'); - }); - - test('should open the toast', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - const toast = page.locator('ion-toast'); - - await page.click('#default'); - - await ionToastDidPresent.next(); - await expect(toast).toBeVisible(); - }); - - test('should open the toast then close after a timeout', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - const ionToastDidDismiss = await page.spyOnEvent('ionToastDidDismiss'); - const toast = page.locator('ion-toast'); - - await page.click('#timeout'); - - await ionToastDidPresent.next(); - await expect(toast).toBeVisible(); - - await ionToastDidDismiss.next(); - await expect(toast).toBeHidden(); - }); -}); diff --git a/core/src/components/toast/test/is-open/toast.e2e.ts b/core/src/components/toast/test/is-open/toast.e2e.ts new file mode 100644 index 0000000000..fc74b12133 --- /dev/null +++ b/core/src/components/toast/test/is-open/toast.e2e.ts @@ -0,0 +1,37 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toast: isOpen'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/toast/test/is-open', config); + }); + + test('should open the toast', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + const toast = page.locator('ion-toast'); + + await page.click('#default'); + + await ionToastDidPresent.next(); + await expect(toast).toBeVisible(); + }); + + test('should open the toast then close after a timeout', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + const ionToastDidDismiss = await page.spyOnEvent('ionToastDidDismiss'); + const toast = page.locator('ion-toast'); + + await page.click('#timeout'); + + await ionToastDidPresent.next(); + await expect(toast).toBeVisible(); + + await ionToastDidDismiss.next(); + await expect(toast).toBeHidden(); + }); + }); +}); diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts b/core/src/components/toast/test/layout/toast.e2e-legacy.ts deleted file mode 100644 index dbc31913e7..0000000000 --- a/core/src/components/toast/test/layout/toast.e2e-legacy.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toast: stacked layout', () => { - test('should render stacked buttons', async ({ page }) => { - await page.goto('/src/components/toast/test/layout'); - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - - await page.click('#stacked'); - await ionToastDidPresent.next(); - - const toastWrapper = page.locator('ion-toast .toast-wrapper'); - await expect(toastWrapper).toHaveScreenshot(`toast-stacked-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toast/test/layout/toast.e2e.ts b/core/src/components/toast/test/layout/toast.e2e.ts new file mode 100644 index 0000000000..f4fb2667fa --- /dev/null +++ b/core/src/components/toast/test/layout/toast.e2e.ts @@ -0,0 +1,17 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toast: stacked layout'), () => { + test('should render stacked buttons', async ({ page }) => { + await page.goto('/src/components/toast/test/layout', config); + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + + await page.click('#stacked'); + await ionToastDidPresent.next(); + + const toastWrapper = page.locator('ion-toast .toast-wrapper'); + await expect(toastWrapper).toHaveScreenshot(screenshot(`toast-stacked`)); + }); + }); +}); diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Safari-linux.png b/core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/layout/toast.e2e-legacy.ts-snapshots/toast-stacked-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toast/test/layout/toast.e2e.ts-snapshots/toast-stacked-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts b/core/src/components/toast/test/standalone/toast.e2e-legacy.ts deleted file mode 100644 index dafc7032fb..0000000000 --- a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toast: standalone', () => { - test.beforeEach(async ({ page }, testInfo) => { - test.skip(testInfo.project.metadata.rtl === true, 'This test does not check LTR vs RTL layouts'); - await page.goto(`/src/components/toast/test/standalone`); - }); - test('should not have visual regressions', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - - const basicButton = page.locator('#basic-toast'); - await basicButton.click(); - - await ionToastDidPresent.next(); - - await expect(page).toHaveScreenshot(`toast-standalone-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toast/test/standalone/toast.e2e.ts b/core/src/components/toast/test/standalone/toast.e2e.ts new file mode 100644 index 0000000000..0f4bdc0764 --- /dev/null +++ b/core/src/components/toast/test/standalone/toast.e2e.ts @@ -0,0 +1,23 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This test does not check LTR vs RTL layouts + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toast: standalone'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/toast/test/standalone`, config); + }); + test('should not have visual regressions', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + + const basicButton = page.locator('#basic-toast'); + await basicButton.click(); + + await ionToastDidPresent.next(); + + await expect(page).toHaveScreenshot(screenshot(`toast-standalone`)); + }); + }); +}); diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Safari-linux.png b/core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toast/test/standalone/toast.e2e-legacy.ts-snapshots/toast-standalone-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toast/test/standalone/toast.e2e.ts-snapshots/toast-standalone-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toast/test/toast-id.spec.ts b/core/src/components/toast/test/toast-id.spec.ts new file mode 100644 index 0000000000..79364d5691 --- /dev/null +++ b/core/src/components/toast/test/toast-id.spec.ts @@ -0,0 +1,41 @@ +import { newSpecPage } from '@stencil/core/testing'; + +import { Toast } from '../toast'; + +it('toast should be assigned an incrementing id', async () => { + const page = await newSpecPage({ + components: [Toast], + html: ``, + }); + let toast: HTMLIonToastElement; + + toast = page.body.querySelector('ion-toast')!; + + expect(toast).not.toBe(null); + expect(toast.getAttribute('id')).toBe('ion-overlay-1'); + + // Remove the toast from the DOM + toast.remove(); + await page.waitForChanges(); + + // Create a new toast to verify the id is incremented + toast = document.createElement('ion-toast'); + toast.isOpen = true; + page.body.appendChild(toast); + await page.waitForChanges(); + + toast = page.body.querySelector('ion-toast')!; + + expect(toast.getAttribute('id')).toBe('ion-overlay-2'); + + // Presenting the same toast again should reuse the existing id + + toast.isOpen = false; + await page.waitForChanges(); + toast.isOpen = true; + await page.waitForChanges(); + + toast = page.body.querySelector('ion-toast')!; + + expect(toast.getAttribute('id')).toBe('ion-overlay-2'); +}); diff --git a/core/src/components/toast/test/toast.spec.ts b/core/src/components/toast/test/toast.spec.tsx similarity index 74% rename from core/src/components/toast/test/toast.spec.ts rename to core/src/components/toast/test/toast.spec.tsx index 711b08e549..7955acf3d3 100644 --- a/core/src/components/toast/test/toast.spec.ts +++ b/core/src/components/toast/test/toast.spec.tsx @@ -1,6 +1,8 @@ +import { h } from '@stencil/core'; import { newSpecPage } from '@stencil/core/testing'; import { Toast } from '../toast'; import { config } from '../../../global/config'; +import { toastController } from '../../../utils/overlays'; describe('toast: custom html', () => { it('should not allow for custom html by default', async () => { @@ -88,3 +90,42 @@ describe('toast: a11y smoke test', () => { expect(message.getAttribute('aria-hidden')).toBe(null); }); }); + +describe('toast: duration config', () => { + it('should have duration set to 0', async () => { + const page = await newSpecPage({ + components: [Toast], + html: ``, + }); + + const toast = page.body.querySelector('ion-toast'); + + expect(toast.duration).toBe(0); + }); + + it('should have duration set to 5000', async () => { + config.reset({ toastDuration: 5000 }); + + const page = await newSpecPage({ + components: [Toast], + html: ``, + }); + + const toast = page.body.querySelector('ion-toast'); + + expect(toast.duration).toBe(5000); + }); +}); + +describe('toast: htmlAttributes', () => { + it('should correctly inherit attributes on host', async () => { + const page = await newSpecPage({ + components: [Toast], + template: () => , + }); + + const toast = page.body.querySelector('ion-toast'); + + await expect(toast.getAttribute('data-testid')).toBe('basic-toast'); + }); +}); diff --git a/core/src/components/toast/test/trigger/toast.e2e-legacy.ts b/core/src/components/toast/test/trigger/toast.e2e-legacy.ts deleted file mode 100644 index ad389612df..0000000000 --- a/core/src/components/toast/test/trigger/toast.e2e-legacy.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toast: trigger', () => { - test.beforeEach(async ({ page, skip }) => { - skip.rtl('trigger does not behave differently in RTL'); - skip.mode('md'); - await page.goto('/src/components/toast/test/trigger'); - }); - - test('should open the toast', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - const toast = page.locator('#default-toast'); - - await page.click('#default'); - - await ionToastDidPresent.next(); - await expect(toast).toBeVisible(); - }); - - test('should present a previously presented toast', async ({ page }) => { - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - const ionToastDidDismiss = await page.spyOnEvent('ionToastDidDismiss'); - const toast = page.locator('#timeout-toast'); - - await page.click('#timeout'); - - await ionToastDidDismiss.next(); - - await page.click('#timeout'); - - await ionToastDidPresent.next(); - await expect(toast).toBeVisible(); - }); -}); diff --git a/core/src/components/toast/test/trigger/toast.e2e.ts b/core/src/components/toast/test/trigger/toast.e2e.ts new file mode 100644 index 0000000000..5c48581f7a --- /dev/null +++ b/core/src/components/toast/test/trigger/toast.e2e.ts @@ -0,0 +1,38 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toast: trigger'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/components/toast/test/trigger', config); + }); + + test('should open the toast', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + const toast = page.locator('#default-toast'); + + await page.click('#default'); + + await ionToastDidPresent.next(); + await expect(toast).toBeVisible(); + }); + + test('should present a previously presented toast', async ({ page }) => { + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + const ionToastDidDismiss = await page.spyOnEvent('ionToastDidDismiss'); + const toast = page.locator('#timeout-toast'); + + await page.click('#timeout'); + + await ionToastDidDismiss.next(); + + await page.click('#timeout'); + + await ionToastDidPresent.next(); + await expect(toast).toBeVisible(); + }); + }); +}); diff --git a/core/src/components/toast/toast.tsx b/core/src/components/toast/toast.tsx index 0c2a0dbccb..1249d850d8 100644 --- a/core/src/components/toast/toast.tsx +++ b/core/src/components/toast/toast.tsx @@ -11,6 +11,7 @@ import { prepareOverlay, present, safeCall, + setOverlayId } from '@utils/overlays'; import { sanitizeDOMString } from '@utils/sanitization'; import { createColorClasses, getClassMap } from '@utils/theme'; @@ -248,6 +249,10 @@ export class Toast implements ComponentInterface, OverlayInterface { this.triggerController.removeClickListener(); } + componentWillLoad() { + setOverlayId(this.el); + } + /** * Present the toast overlay after it has been created. */ diff --git a/core/src/components/toggle/test/a11y/toggle.e2e-legacy.ts b/core/src/components/toggle/test/a11y/toggle.e2e-legacy.ts deleted file mode 100644 index ef2fb9e8ee..0000000000 --- a/core/src/components/toggle/test/a11y/toggle.e2e-legacy.ts +++ /dev/null @@ -1,17 +0,0 @@ -import AxeBuilder from '@axe-core/playwright'; -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: a11y', () => { - test.beforeEach(async ({ skip }) => { - skip.rtl(); - skip.mode('md'); - }); - - test('should not have accessibility violations', async ({ page }) => { - await page.goto(`/src/components/toggle/test/a11y`); - - const results = await new AxeBuilder({ page }).analyze(); - expect(results.violations).toEqual([]); - }); -}); diff --git a/core/src/components/toggle/test/a11y/toggle.e2e.ts b/core/src/components/toggle/test/a11y/toggle.e2e.ts new file mode 100644 index 0000000000..291dba40d1 --- /dev/null +++ b/core/src/components/toggle/test/a11y/toggle.e2e.ts @@ -0,0 +1,14 @@ +import AxeBuilder from '@axe-core/playwright'; +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toggle: a11y'), () => { + test('should not have accessibility violations', async ({ page }) => { + await page.goto(`/src/components/toggle/test/a11y`, config); + + const results = await new AxeBuilder({ page }).analyze(); + expect(results.violations).toEqual([]); + }); + }); +}); diff --git a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png deleted file mode 100644 index b7dfe77662..0000000000 Binary files a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png deleted file mode 100644 index ab97fc304e..0000000000 Binary files a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 6d157af570..0000000000 Binary files a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 9409f1f5a9..0000000000 Binary files a/core/src/components/toggle/test/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts b/core/src/components/toggle/test/color/toggle.e2e-legacy.ts deleted file mode 100644 index 0a6a810495..0000000000 --- a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: color', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('should apply color when checked', async ({ page }) => { - await page.setContent(` - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot(`toggle-color-checked-${page.getSnapshotSettings()}.png`); - }); - - test('should not apply color when unchecked', async ({ page }) => { - await page.setContent(` - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot(`toggle-color-unchecked-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toggle/test/color/toggle.e2e.ts b/core/src/components/toggle/test/color/toggle.e2e.ts new file mode 100644 index 0000000000..4896778c2f --- /dev/null +++ b/core/src/components/toggle/test/color/toggle.e2e.ts @@ -0,0 +1,30 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: color'), () => { + test('should apply color when checked', async ({ page }) => { + await page.setContent( + ` + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-color-checked`)); + }); + + test('should not apply color when unchecked', async ({ page }) => { + await page.setContent( + ` + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-color-unchecked`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-checked-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/color/toggle.e2e-legacy.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/color/toggle.e2e.ts-snapshots/toggle-color-unchecked-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts deleted file mode 100644 index 90c5476703..0000000000 --- a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: enableOnOffLabels', () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/src/components/toggle/test/enable-on-off-labels`); - }); - - test('should not have visual regressions', async ({ page }) => { - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`toggle-on-off-labels-diff-${page.getSnapshotSettings()}.png`); - }); - - test.describe('dark mode', () => { - test('should not have visual regressions', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); - - await page.click('#popover-trigger'); - await ionPopoverDidPresent.next(); - - await page.click('#dark-mode'); - - await page.evaluate(() => { - const popover = document.querySelector('ion-popover'); - return popover?.dismiss(); - }); - await ionPopoverDidDismiss.next(); - - await page.waitForChanges(); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`toggle-on-off-labels-dark-mode-diff-${page.getSnapshotSettings()}.png`); - }); - }); -}); diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index 938c7d8fff..0000000000 Binary files a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index add3c17f73..0000000000 Binary files a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index d6e3bee0da..0000000000 Binary files a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 337b523e06..0000000000 Binary files a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 390d5953ea..0000000000 Binary files a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts new file mode 100644 index 0000000000..deb7ed34a9 --- /dev/null +++ b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts @@ -0,0 +1,49 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: enableOnOffLabels'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/toggle/test/enable-on-off-labels`, config); + }); + + test('should not have visual regressions', async ({ page }) => { + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`toggle-on-off-labels-diff`)); + }); + }); +}); + +/** + * This behavior does not vary across directions + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: dark mode'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/toggle/test/enable-on-off-labels`, config); + }); + + test('should not have visual regressions', async ({ page }) => { + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); + + await page.click('#popover-trigger'); + await ionPopoverDidPresent.next(); + + await page.click('#dark-mode'); + + await page.evaluate(() => { + const popover = document.querySelector('ion-popover'); + return popover?.dismiss(); + }); + await ionPopoverDidDismiss.next(); + + await page.waitForChanges(); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`toggle-on-off-labels-dark-mode-diff`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts b/core/src/components/toggle/test/item/label.e2e-legacy.ts deleted file mode 100644 index 0b08e8d5d2..0000000000 --- a/core/src/components/toggle/test/item/label.e2e-legacy.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: item', () => { - test('should render correctly in list', async ({ page }) => { - await page.setContent(` - - - Enable Notifications - - - `); - const list = page.locator('ion-list'); - expect(await list.screenshot()).toMatchSnapshot(`toggle-list-${page.getSnapshotSettings()}.png`); - }); - test('should render correctly in inset list', async ({ page }) => { - await page.setContent(` - - - Enable Notifications - - - `); - const list = page.locator('ion-list'); - expect(await list.screenshot()).toMatchSnapshot(`toggle-inset-list-${page.getSnapshotSettings()}.png`); - }); - test('label should have correct contrast when used in an item', async ({ page, skip }) => { - skip.rtl(); - await page.setContent(` - - Enable Notifications - - `); - const item = page.locator('ion-item'); - expect(await item.screenshot()).toMatchSnapshot(`toggle-item-color-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toggle/test/item/label.e2e.ts b/core/src/components/toggle/test/item/label.e2e.ts new file mode 100644 index 0000000000..e3132ef841 --- /dev/null +++ b/core/src/components/toggle/test/item/label.e2e.ts @@ -0,0 +1,52 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: item'), () => { + test('should render correctly in list', async ({ page }) => { + await page.setContent( + ` + + + Enable Notifications + + + `, + config + ); + const list = page.locator('ion-list'); + expect(await list.screenshot()).toMatchSnapshot(screenshot(`toggle-list`)); + }); + test('should render correctly in inset list', async ({ page }) => { + await page.setContent( + ` + + + Enable Notifications + + + `, + config + ); + const list = page.locator('ion-list'); + expect(await list.screenshot()).toMatchSnapshot(screenshot(`toggle-inset-list`)); + }); + }); +}); + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: item color contrast'), () => { + test('label should have correct contrast when used in an item', async ({ page }) => { + await page.setContent( + ` + + Enable Notifications + + `, + config + ); + const item = page.locator('ion-item'); + expect(await item.screenshot()).toMatchSnapshot(screenshot(`toggle-item-color`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-inset-list-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-item-color-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-item-color-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/item/label.e2e-legacy.ts-snapshots/toggle-list-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/item/label.e2e.ts-snapshots/toggle-list-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts b/core/src/components/toggle/test/label/toggle.e2e-legacy.ts deleted file mode 100644 index 2d9eddf2ec..0000000000 --- a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -/** - * By default ion-toggle only takes up - * as much space as it needs. Justification is - * used for when the toggle takes up the full - * line (such as in an ion-item). As a result, - * we set the width of the toggle so we can - * see the justification results. - */ -test.describe('toggle: label', () => { - test.describe('toggle: start placement', () => { - test('should render a start justification with label in the start position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-start-justify-start-${page.getSnapshotSettings()}.png` - ); - }); - test('should render an end justification with label in the start position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-start-justify-end-${page.getSnapshotSettings()}.png` - ); - }); - test('should render a space between justification with label in the start position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-start-justify-space-between-${page.getSnapshotSettings()}.png` - ); - }); - }); - - test.describe('toggle: end placement', () => { - test('should render a start justification with label in the end position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-end-justify-start-${page.getSnapshotSettings()}.png` - ); - }); - test('should render an end justification with label in the end position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-end-justify-end-${page.getSnapshotSettings()}.png` - ); - }); - test('should render a space between justification with label in the end position', async ({ page }) => { - await page.setContent(` - - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-end-justify-space-between-${page.getSnapshotSettings()}.png` - ); - }); - }); - - test.describe('toggle: fixed placement', () => { - test('should render a start justification with label in the fixed position', async ({ page }) => { - await page.setContent(` - - This is a long label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-fixed-justify-start-${page.getSnapshotSettings()}.png` - ); - }); - test('should render an end justification with label in the fixed position', async ({ page }) => { - await page.setContent(` - - This is a long label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-fixed-justify-end-${page.getSnapshotSettings()}.png` - ); - }); - test('should render a space between justification with label in the fixed position', async ({ page }) => { - await page.setContent(` - - This is a long label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot( - `toggle-label-fixed-justify-space-between-${page.getSnapshotSettings()}.png` - ); - }); - }); -}); diff --git a/core/src/components/toggle/test/label/toggle.e2e.ts b/core/src/components/toggle/test/label/toggle.e2e.ts new file mode 100644 index 0000000000..1166477fcf --- /dev/null +++ b/core/src/components/toggle/test/label/toggle.e2e.ts @@ -0,0 +1,129 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * By default ion-toggle only takes up + * as much space as it needs. Justification is + * used for when the toggle takes up the full + * line (such as in an ion-item). As a result, + * we set the width of the toggle so we can + * see the justification results. + */ +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: start placement'), () => { + test('should render a start justification with label in the start position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-start-justify-start`)); + }); + test('should render an end justification with label in the start position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-start-justify-end`)); + }); + test('should render a space between justification with label in the start position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-start-justify-space-between`)); + }); + }); + + test.describe(title('toggle: end placement'), () => { + test('should render a start justification with label in the end position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-end-justify-start`)); + }); + test('should render an end justification with label in the end position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-end-justify-end`)); + }); + test('should render a space between justification with label in the end position', async ({ page }) => { + await page.setContent( + ` + + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-end-justify-space-between`)); + }); + }); + + test.describe(title('toggle: fixed placement'), () => { + test('should render a start justification with label in the fixed position', async ({ page }) => { + await page.setContent( + ` + + This is a long label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-fixed-justify-start`)); + }); + test('should render an end justification with label in the fixed position', async ({ page }) => { + await page.setContent( + ` + + This is a long label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-fixed-justify-end`)); + }); + test('should render a space between justification with label in the fixed position', async ({ page }) => { + await page.setContent( + ` + + This is a long label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-label-fixed-justify-space-between`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-space-between-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-end-justify-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-space-between-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-fixed-justify-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-end-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-space-between-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/label/toggle.e2e-legacy.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/label/toggle.e2e.ts-snapshots/toggle-label-start-justify-start-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts b/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts deleted file mode 100644 index 22bd6f5027..0000000000 --- a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: basic', () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/src/components/toggle/test/legacy/basic`); - }); - - test('should not have visual regressions', async ({ page }) => { - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`toggle-diff-${page.getSnapshotSettings()}.png`); - }); - - test('should have proper class and aria role when checked', async ({ page }) => { - const toggle = page.locator('#orange'); - - await expect(toggle).not.toHaveClass(/toggle-checked/); - await expect(toggle).toHaveAttribute('aria-checked', 'false'); - - await toggle.click(); - await page.waitForChanges(); - - await expect(toggle).toHaveClass(/toggle-checked/); - await expect(toggle).toHaveAttribute('aria-checked', 'true'); - - await toggle.click(); - await page.waitForChanges(); - - await expect(toggle).not.toHaveClass(/toggle-checked/); - await expect(toggle).toHaveAttribute('aria-checked', 'false'); - }); - - test('should fire change event with detail', async ({ page }) => { - const toggle = page.locator('#orange'); - const ionChange = await page.spyOnEvent('ionChange'); - - await toggle.click(); - await page.waitForChanges(); - - expect(ionChange).toHaveReceivedEventDetail({ - checked: true, - value: 'on', - }); - - await toggle.click(); - await page.waitForChanges(); - - expect(ionChange).toHaveReceivedEventDetail({ - checked: false, - value: 'on', - }); - }); - - test('should not fire change event if checked prop is changed directly', async ({ page }) => { - const toggle = page.locator('#orange'); - const ionChange = await page.spyOnEvent('ionChange'); - - await toggle.evaluate((el: HTMLIonToggleElement) => (el.checked = true)); - await page.waitForChanges(); - - expect(ionChange).toHaveReceivedEventTimes(0); - }); - - test('should pass properties down to hidden input', async ({ page }) => { - const toggle = page.locator('#grapeChecked'); - - await expect(toggle).toHaveJSProperty('disabled', true); - await expect(toggle).toHaveJSProperty('value', 'grape'); - await expect(toggle).toHaveJSProperty('name', 'grape'); - - const hiddenInput = page.locator('#grapeChecked input[type=hidden]'); - - await expect(hiddenInput).toBeDisabled(); - await expect(hiddenInput).toHaveJSProperty('value', 'grape'); - await expect(hiddenInput).toHaveJSProperty('name', 'grape'); - - await toggle.evaluate((el: HTMLIonToggleElement) => { - el.disabled = false; - el.checked = false; - el.value = 'new-value'; - el.name = 'new-name'; - }); - - await page.waitForChanges(); - - 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 - const value = await hiddenInput.evaluate((el: HTMLInputElement) => el.value); - expect(value).toBe(''); - }); -}); diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts new file mode 100644 index 0000000000..7d7d921d91 --- /dev/null +++ b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts @@ -0,0 +1,104 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: rendering'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toggle/test/legacy/basic`, config); + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`toggle-diff`)); + }); + }); +}); + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toggle: functionality'), () => { + test.beforeEach(async ({ page }) => { + await page.goto(`/src/components/toggle/test/legacy/basic`, config); + }); + test('should have proper class and aria role when checked', async ({ page }) => { + const toggle = page.locator('#orange'); + + await expect(toggle).not.toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'false'); + + await toggle.click(); + await page.waitForChanges(); + + await expect(toggle).toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'true'); + + await toggle.click(); + await page.waitForChanges(); + + await expect(toggle).not.toHaveClass(/toggle-checked/); + await expect(toggle).toHaveAttribute('aria-checked', 'false'); + }); + + test('should fire change event with detail', async ({ page }) => { + const toggle = page.locator('#orange'); + const ionChange = await page.spyOnEvent('ionChange'); + + await toggle.click(); + await page.waitForChanges(); + + expect(ionChange).toHaveReceivedEventDetail({ + checked: true, + value: 'on', + }); + + await toggle.click(); + await page.waitForChanges(); + + expect(ionChange).toHaveReceivedEventDetail({ + checked: false, + value: 'on', + }); + }); + + test('should not fire change event if checked prop is changed directly', async ({ page }) => { + const toggle = page.locator('#orange'); + const ionChange = await page.spyOnEvent('ionChange'); + + await toggle.evaluate((el: HTMLIonToggleElement) => (el.checked = true)); + await page.waitForChanges(); + + expect(ionChange).toHaveReceivedEventTimes(0); + }); + + test('should pass properties down to hidden input', async ({ page }) => { + const toggle = page.locator('#grapeChecked'); + + await expect(toggle).toHaveJSProperty('disabled', true); + await expect(toggle).toHaveJSProperty('value', 'grape'); + await expect(toggle).toHaveJSProperty('name', 'grape'); + + const hiddenInput = page.locator('#grapeChecked input[type=hidden]'); + + await expect(hiddenInput).toBeDisabled(); + await expect(hiddenInput).toHaveJSProperty('value', 'grape'); + await expect(hiddenInput).toHaveJSProperty('name', 'grape'); + + await toggle.evaluate((el: HTMLIonToggleElement) => { + el.disabled = false; + el.checked = false; + el.value = 'new-value'; + el.name = 'new-name'; + }); + + await page.waitForChanges(); + + 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 + const value = await hiddenInput.evaluate((el: HTMLInputElement) => el.value); + expect(value).toBe(''); + }); + }); +}); diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/basic/toggle.e2e-legacy.ts-snapshots/toggle-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/basic/toggle.e2e.ts-snapshots/toggle-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts deleted file mode 100644 index f176dd54b0..0000000000 --- a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: enableOnOffLabels', () => { - test.beforeEach(async ({ page }) => { - await page.goto(`/src/components/toggle/test/legacy/enable-on-off-labels`); - }); - - test('should not have visual regressions', async ({ page }) => { - await page.setIonViewport(); - - expect(await page.screenshot()).toMatchSnapshot(`toggle-on-off-labels-diff-${page.getSnapshotSettings()}.png`); - }); - - test.describe('dark mode', () => { - test('should not have visual regressions', async ({ page }) => { - const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); - const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); - - await page.click('#popover-trigger'); - await ionPopoverDidPresent.next(); - - await page.click('#dark-mode'); - - await page.evaluate(() => { - const popover = document.querySelector('ion-popover'); - return popover?.dismiss(); - }); - await ionPopoverDidDismiss.next(); - - await page.waitForChanges(); - - await page.setIonViewport(); - - expect(await page.screenshot()).toMatchSnapshot( - `toggle-on-off-labels-dark-mode-diff-${page.getSnapshotSettings()}.png` - ); - }); - }); -}); diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 17d897fdcc..0000000000 Binary files a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts new file mode 100644 index 0000000000..3742b99c00 --- /dev/null +++ b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts @@ -0,0 +1,43 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: enableOnOffLabels'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toggle/test/legacy/enable-on-off-labels`, config); + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(screenshot(`toggle-on-off-labels-diff`)); + }); + }); +}); + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: dark mode'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toggle/test/legacy/enable-on-off-labels`, config); + const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent'); + const ionPopoverDidDismiss = await page.spyOnEvent('ionPopoverDidDismiss'); + + await page.click('#popover-trigger'); + await ionPopoverDidPresent.next(); + + await page.click('#dark-mode'); + + await page.evaluate(() => { + const popover = document.querySelector('ion-popover'); + return popover?.dismiss(); + }); + await ionPopoverDidDismiss.next(); + + await page.waitForChanges(); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(screenshot(`toggle-on-off-labels-dark-mode-diff`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-dark-mode-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e-legacy.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.ts-snapshots/toggle-on-off-labels-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts b/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts deleted file mode 100644 index 8917887364..0000000000 --- a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: sizes', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/toggle/test/legacy/sizes`); - - await page.setIonViewport(); - - expect(await page.screenshot()).toMatchSnapshot(`toggle-sizes-diff-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts new file mode 100644 index 0000000000..2fab58384a --- /dev/null +++ b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: sizes'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toggle/test/legacy/sizes`, config); + + await page.setIonViewport(); + + expect(await page.screenshot()).toMatchSnapshot(screenshot(`toggle-sizes-diff`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/legacy/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/legacy/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts b/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts deleted file mode 100644 index 13410b7a49..0000000000 --- a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: sizes', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/toggle/test/sizes`); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`toggle-sizes-diff-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toggle/test/sizes/toggle.e2e.ts b/core/src/components/toggle/test/sizes/toggle.e2e.ts new file mode 100644 index 0000000000..22b18d4e8d --- /dev/null +++ b/core/src/components/toggle/test/sizes/toggle.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: sizes'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toggle/test/sizes`, config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`toggle-sizes-diff`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/sizes/toggle.e2e-legacy.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/sizes/toggle.e2e.ts-snapshots/toggle-sizes-diff-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts b/core/src/components/toggle/test/states/toggle.e2e-legacy.ts deleted file mode 100644 index d65edc8bdf..0000000000 --- a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toggle: states', () => { - test('should render disabled toggle correctly', async ({ page, skip }) => { - skip.rtl(); - - await page.setContent(` - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot(`toggle-disabled-${page.getSnapshotSettings()}.png`); - }); - - test('should render checked toggle correctly', async ({ page }) => { - await page.setContent(` - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot(`toggle-checked-${page.getSnapshotSettings()}.png`); - }); - - test('should render unchecked toggle correctly', async ({ page }) => { - await page.setContent(` - Label - `); - - const toggle = page.locator('ion-toggle'); - expect(await toggle.screenshot()).toMatchSnapshot(`toggle-unchecked-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toggle/test/states/toggle.e2e.ts b/core/src/components/toggle/test/states/toggle.e2e.ts new file mode 100644 index 0000000000..78e1c6adc8 --- /dev/null +++ b/core/src/components/toggle/test/states/toggle.e2e.ts @@ -0,0 +1,42 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toggle: states'), () => { + test('should render disabled toggle correctly', async ({ page }) => { + await page.setContent( + ` + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-disabled`)); + }); + + test('should render checked toggle correctly', async ({ page }) => { + await page.setContent( + ` + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-checked`)); + }); + + test('should render unchecked toggle correctly', async ({ page }) => { + await page.setContent( + ` + Label + `, + config + ); + + const toggle = page.locator('ion-toggle'); + expect(await toggle.screenshot()).toMatchSnapshot(screenshot(`toggle-unchecked`)); + }); + }); +}); diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-checked-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-checked-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-disabled-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-disabled-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Safari-linux.png b/core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toggle/test/states/toggle.e2e-legacy.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toggle/test/states/toggle.e2e.ts-snapshots/toggle-unchecked-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts b/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts deleted file mode 100644 index 2f1a9c4796..0000000000 --- a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toolbar: basic', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/toolbar/test/basic`); - - // capture both header toolbars at once, but don't include all the white space in the ion-content - const header = page.locator('ion-header'); - await expect(header).toHaveScreenshot(`toolbar-basic-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e.ts b/core/src/components/toolbar/test/basic/toolbar.e2e.ts new file mode 100644 index 0000000000..d830dc0360 --- /dev/null +++ b/core/src/components/toolbar/test/basic/toolbar.e2e.ts @@ -0,0 +1,14 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs().forEach(({ title, screenshot, config }) => { + test.describe(title('toolbar: basic'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toolbar/test/basic`, config); + + // capture both header toolbars at once, but don't include all the white space in the ion-content + const header = page.locator('ion-header'); + await expect(header).toHaveScreenshot(screenshot(`toolbar-basic`)); + }); + }); +}); diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-ios-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Safari-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Safari-linux.png b/core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/basic/toolbar.e2e-legacy.ts-snapshots/toolbar-basic-md-rtl-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/basic/toolbar.e2e.ts-snapshots/toolbar-basic-md-rtl-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts deleted file mode 100644 index 1cbb101b09..0000000000 --- a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('toolbar: colors', () => { - test('should not have visual regressions', async ({ page }) => { - await page.goto(`/src/components/toolbar/test/colors`); - - await page.setIonViewport(); - - await expect(page).toHaveScreenshot(`toolbar-colors-${page.getSnapshotSettings()}.png`); - }); -}); diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index b159d0b30a..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index df82814fb9..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Safari-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 84591750da..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Chrome-linux.png deleted file mode 100644 index a814ff6fce..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Chrome-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Firefox-linux.png deleted file mode 100644 index 8d6a1b6ab6..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Firefox-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Safari-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Safari-linux.png deleted file mode 100644 index 263c274b18..0000000000 Binary files a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-rtl-Mobile-Safari-linux.png and /dev/null differ diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e.ts b/core/src/components/toolbar/test/colors/toolbar.e2e.ts new file mode 100644 index 0000000000..576f794c66 --- /dev/null +++ b/core/src/components/toolbar/test/colors/toolbar.e2e.ts @@ -0,0 +1,17 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across directions. + */ +configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => { + test.describe(title('toolbar: colors'), () => { + test('should not have visual regressions', async ({ page }) => { + await page.goto(`/src/components/toolbar/test/colors`, config); + + await page.setIonViewport(); + + await expect(page).toHaveScreenshot(screenshot(`toolbar-colors`)); + }); + }); +}); diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Safari-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-ios-ltr-Mobile-Safari-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Chrome-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Chrome-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Chrome-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Chrome-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Firefox-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Firefox-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Firefox-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Firefox-linux.png diff --git a/core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Safari-linux.png b/core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Safari-linux.png similarity index 100% rename from core/src/components/toolbar/test/colors/toolbar.e2e-legacy.ts-snapshots/toolbar-colors-md-ltr-Mobile-Safari-linux.png rename to core/src/components/toolbar/test/colors/toolbar.e2e.ts-snapshots/toolbar-colors-md-ltr-Mobile-Safari-linux.png diff --git a/core/src/interface.d.ts b/core/src/interface.d.ts index 4e2c085a63..b7bd05415e 100644 --- a/core/src/interface.d.ts +++ b/core/src/interface.d.ts @@ -9,7 +9,7 @@ export { ActionSheetOptions } from './components/action-sheet/action-sheet-inter export { BreadcrumbCustomEvent } from './components/breadcrumb/breadcrumb-interface'; export { ScrollBaseCustomEvent, ScrollCallback, ScrollCustomEvent } from './components/content/content-interface'; export { CheckboxCustomEvent } from './components/checkbox/checkbox-interface'; -export { DatetimeCustomEvent } from './components/datetime/datetime-interface'; +export { DatetimeCustomEvent, DatetimeHighlightStyle } from './components/datetime/datetime-interface'; export { InfiniteScrollCustomEvent } from './components/infinite-scroll/infinite-scroll-interface'; export { InputCustomEvent } from './components/input/input-interface'; export { CounterFormatter } from './components/item/item-interface'; diff --git a/core/src/utils/animation/test/animationbuilder/animation.e2e-legacy.ts b/core/src/utils/animation/test/animationbuilder/animation.e2e-legacy.ts deleted file mode 100644 index 5e556d8c1d..0000000000 --- a/core/src/utils/animation/test/animationbuilder/animation.e2e-legacy.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { E2EPage } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -test.describe('animation: animationbuilder', async () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - test('backwards-compatibility animation', async ({ page }) => { - await page.goto('/src/utils/animation/test/animationbuilder'); - await testNavigation(page); - }); - - test('ios-transition web', async ({ page, skip }) => { - skip.mode('md'); - - await page.goto('/src/utils/animation/test/animationbuilder'); - await testNavigation(page); - }); - - test('ios-transition css', async ({ page, skip }) => { - skip.mode('md'); - - await page.goto('/src/utils/animation/test/animationbuilder?ionic:_forceCSSAnimations=true'); - await testNavigation(page); - }); -}); - -const testNavigation = async (page: E2EPage) => { - const ionRouteDidChange = await page.spyOnEvent('ionRouteDidChange'); - - await page.click('page-root ion-button.next'); - await ionRouteDidChange.next(); - page.click('page-one ion-button.next'); - await ionRouteDidChange.next(); - page.click('page-two ion-button.next'); - await ionRouteDidChange.next(); - page.click('page-three ion-back-button'); - await ionRouteDidChange.next(); - page.click('page-two ion-back-button'); - await ionRouteDidChange.next(); - page.click('page-one ion-back-button'); - await ionRouteDidChange.next(); -}; diff --git a/core/src/utils/animation/test/animationbuilder/animation.e2e.ts b/core/src/utils/animation/test/animationbuilder/animation.e2e.ts new file mode 100644 index 0000000000..96ea221853 --- /dev/null +++ b/core/src/utils/animation/test/animationbuilder/animation.e2e.ts @@ -0,0 +1,38 @@ +import type { E2EPage } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('animation: animationbuilder'), async () => { + test('backwards-compatibility animation', async ({ page }) => { + await page.goto('/src/utils/animation/test/animationbuilder', config); + await testNavigation(page); + }); + + test('ios-transition web', async ({ page }) => { + await page.goto('/src/utils/animation/test/animationbuilder', config); + await testNavigation(page); + }); + + test('ios-transition css', async ({ page }) => { + await page.goto('/src/utils/animation/test/animationbuilder?ionic:_forceCSSAnimations=true', config); + await testNavigation(page); + }); + }); +}); + +const testNavigation = async (page: E2EPage) => { + const ionRouteDidChange = await page.spyOnEvent('ionRouteDidChange'); + + await page.click('page-root ion-button.next'); + await ionRouteDidChange.next(); + page.click('page-one ion-button.next'); + await ionRouteDidChange.next(); + page.click('page-two ion-button.next'); + await ionRouteDidChange.next(); + page.click('page-three ion-back-button'); + await ionRouteDidChange.next(); + page.click('page-two ion-back-button'); + await ionRouteDidChange.next(); + page.click('page-one ion-back-button'); + await ionRouteDidChange.next(); +}; diff --git a/core/src/utils/animation/test/basic/animation.e2e-legacy.ts b/core/src/utils/animation/test/basic/animation.e2e-legacy.ts deleted file mode 100644 index 41ae95b366..0000000000 --- a/core/src/utils/animation/test/basic/animation.e2e-legacy.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { test } from '@utils/test/playwright'; -import type { E2EPage } from '@utils/test/playwright'; - -test.describe('animation: basic', async () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - - test(`should resolve using web animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/basic'); - await testPage(page); - }); - - test(`should resolve using css animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/basic?ionic:_forceCSSAnimations=true'); - await testPage(page); - }); -}); - -const testPage = async (page: E2EPage) => { - const ionAnimationFinished = await page.spyOnEvent('ionAnimationFinished'); - - await page.click('.play'); - - await ionAnimationFinished.next(); -}; diff --git a/core/src/utils/animation/test/basic/animation.e2e.ts b/core/src/utils/animation/test/basic/animation.e2e.ts new file mode 100644 index 0000000000..959218b3b2 --- /dev/null +++ b/core/src/utils/animation/test/basic/animation.e2e.ts @@ -0,0 +1,24 @@ +import { configs, test } from '@utils/test/playwright'; +import type { E2EPage } from '@utils/test/playwright'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('animation: basic'), async () => { + test(`should resolve using web animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/basic', config); + await testPage(page); + }); + + test(`should resolve using css animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/basic?ionic:_forceCSSAnimations=true', config); + await testPage(page); + }); + }); +}); + +const testPage = async (page: E2EPage) => { + const ionAnimationFinished = await page.spyOnEvent('ionAnimationFinished'); + + await page.click('.play'); + + await ionAnimationFinished.next(); +}; diff --git a/core/src/utils/animation/test/display/animation.e2e-legacy.ts b/core/src/utils/animation/test/display/animation.e2e.ts similarity index 55% rename from core/src/utils/animation/test/display/animation.e2e-legacy.ts rename to core/src/utils/animation/test/display/animation.e2e.ts index d5f2b1bd3b..2f123854aa 100644 --- a/core/src/utils/animation/test/display/animation.e2e-legacy.ts +++ b/core/src/utils/animation/test/display/animation.e2e.ts @@ -1,21 +1,18 @@ import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; import type { E2EPage } from '@utils/test/playwright'; -test.describe('animation: display', async () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('animation: display'), async () => { + test(`should resolve using web animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/display', config); + await testDisplay(page); + }); - test(`should resolve using web animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/display'); - await testDisplay(page); - }); - - test(`should resolve using css animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/display?ionic:_forceCSSAnimations=true'); - await testDisplay(page); + test(`should resolve using css animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/display?ionic:_forceCSSAnimations=true', config); + await testDisplay(page); + }); }); }); diff --git a/core/src/utils/animation/test/hooks/animation.e2e-legacy.ts b/core/src/utils/animation/test/hooks/animation.e2e.ts similarity index 73% rename from core/src/utils/animation/test/hooks/animation.e2e-legacy.ts rename to core/src/utils/animation/test/hooks/animation.e2e.ts index be714b04c0..47c386ef59 100644 --- a/core/src/utils/animation/test/hooks/animation.e2e-legacy.ts +++ b/core/src/utils/animation/test/hooks/animation.e2e.ts @@ -1,21 +1,18 @@ import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; import type { E2EPage } from '@utils/test/playwright'; -test.describe('animation: hooks', async () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('animation: hooks'), async () => { + test(`should fire hooks using web animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/hooks', config); + await testHooks(page); + }); - test(`should fire hooks using web animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/hooks'); - await testHooks(page); - }); - - test(`should fire hooks using css animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/hooks?ionic:_forceCSSAnimations=true'); - await testHooks(page); + test(`should fire hooks using css animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/hooks?ionic:_forceCSSAnimations=true', config); + await testHooks(page); + }); }); }); diff --git a/core/src/utils/animation/test/multiple/animation.e2e-legacy.ts b/core/src/utils/animation/test/multiple/animation.e2e.ts similarity index 60% rename from core/src/utils/animation/test/multiple/animation.e2e-legacy.ts rename to core/src/utils/animation/test/multiple/animation.e2e.ts index a2772e04ee..5db1fbe38b 100644 --- a/core/src/utils/animation/test/multiple/animation.e2e-legacy.ts +++ b/core/src/utils/animation/test/multiple/animation.e2e.ts @@ -1,24 +1,21 @@ import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; import type { E2EPage } from '@utils/test/playwright'; -test.describe('animation: multiple', async () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('animation: multiple'), async () => { + test(`should resolve grouped animations using web animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/multiple', config); + await testMultiple(page); + }); - test(`should resolve grouped animations using web animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/multiple'); - await testMultiple(page); - }); - - /** - * CSS animations will occasionally resolve out of order, so we skip for now - */ - test.skip(`should resolve grouped animations using css animations`, async ({ page }) => { - await page.goto('/src/utils/animation/test/multiple?ionic:_forceCSSAnimations=true'); - await testMultiple(page); + /** + * CSS animations will occasionally resolve out of order, so we skip for now + */ + test.skip(`should resolve grouped animations using css animations`, async ({ page }) => { + await page.goto('/src/utils/animation/test/multiple?ionic:_forceCSSAnimations=true', config); + await testMultiple(page); + }); }); }); diff --git a/core/src/utils/input-shims/hacks/test/scroll-assist.e2e-legacy.ts b/core/src/utils/input-shims/hacks/test/scroll-assist.e2e-legacy.ts deleted file mode 100644 index 693429e758..0000000000 --- a/core/src/utils/input-shims/hacks/test/scroll-assist.e2e-legacy.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { expect } from '@playwright/test'; -import type { Locator } from '@playwright/test'; -import { KeyboardResize } from '@utils/native/keyboard'; -import type { E2EPage } from '@utils/test/playwright'; -import { test } from '@utils/test/playwright'; - -const getScrollPosition = async (contentEl: Locator) => { - return await contentEl.evaluate(async (el: HTMLIonContentElement) => { - const scrollEl = await el.getScrollElement(); - - return scrollEl.scrollTop; - }); -}; - -// TODO FW-3427 -test.describe.skip('scroll-assist', () => { - let scrollAssistFixture: ScrollAssistFixture; - test.beforeEach(async ({ page, skip }) => { - test.slow(); - skip.rtl(); - skip.mode('md', 'Scroll utils are only needed on iOS mode'); - skip.browser('firefox'); - skip.browser('chromium'); - - scrollAssistFixture = new ScrollAssistFixture(page); - }); - - test.describe('scroll-assist: basic functionality', () => { - test.beforeEach(async () => { - await scrollAssistFixture.goto(); - }); - test('should not activate when input is above the keyboard', async () => { - await scrollAssistFixture.expectNotToHaveScrollAssist( - '#input-above-keyboard', - '#input-above-keyboard input:not(.cloned-input)' - ); - }); - - test('should activate when input is below the keyboard', async () => { - await scrollAssistFixture.expectToHaveScrollAssist( - '#input-below-keyboard', - '#input-below-keyboard input:not(.cloned-input)' - ); - }); - - test('should activate even when not explicitly tapping input', async () => { - await scrollAssistFixture.expectToHaveScrollAssist( - '#item-below-keyboard ion-label', - '#input-below-keyboard input:not(.cloned-input)' - ); - }); - }); - test.describe('scroll-assist: scroll-padding', () => { - test.describe('scroll-padding: browser/cordova', () => { - test.beforeEach(async () => { - await scrollAssistFixture.goto(); - }); - test('should add scroll padding for an input at the bottom of the scroll container', async () => { - await scrollAssistFixture.expectToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - }); - - test('should keep scroll padding even when switching between inputs', async () => { - await scrollAssistFixture.expectToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - - await scrollAssistFixture.expectToHaveScrollPadding( - '#textarea-outside-viewport', - '#textarea-outside-viewport textarea:not(.cloned-input)' - ); - }); - }); - test.describe('scroll-padding: webview resizing', () => { - test('should add scroll padding when webview resizing is "none"', async () => { - await scrollAssistFixture.goto(KeyboardResize.None); - - await scrollAssistFixture.expectToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - }); - test('should not add scroll padding when webview resizing is "body"', async () => { - await scrollAssistFixture.goto(KeyboardResize.Body); - - await scrollAssistFixture.expectNotToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - }); - test('should not add scroll padding when webview resizing is "ionic"', async () => { - await scrollAssistFixture.goto(KeyboardResize.Ionic); - - await scrollAssistFixture.expectNotToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - }); - test('should not add scroll padding when webview resizing is "native"', async () => { - await scrollAssistFixture.goto(KeyboardResize.Native); - - await scrollAssistFixture.expectNotToHaveScrollPadding( - '#input-outside-viewport', - '#input-outside-viewport input:not(.cloned-input)' - ); - }); - }); - }); -}); - -class ScrollAssistFixture { - readonly page: E2EPage; - private content!: Locator; - - constructor(page: E2EPage) { - this.page = page; - } - - async goto(resizeMode?: KeyboardResize) { - let url = `/src/utils/input-shims/hacks/test`; - if (resizeMode !== undefined) { - url += `?resizeMode=${resizeMode}`; - } - - await this.page.goto(url); - - this.content = this.page.locator('ion-content'); - } - - private async focusInput(interactiveSelector: string, inputSelector: string) { - const { page } = this; - const interactive = page.locator(interactiveSelector); - const input = page.locator(inputSelector); - - await interactive.click({ force: true }); - await expect(input).toBeFocused(); - await page.waitForChanges(); - } - - private getScrollPosition() { - const { content } = this; - - return getScrollPosition(content); - } - - async expectNotToHaveScrollAssist(interactiveSelector: string, inputSelector: string) { - await expect(await this.getScrollPosition()).toBe(0); - - await this.focusInput(interactiveSelector, inputSelector); - - await expect(await this.getScrollPosition()).toBe(0); - } - - async expectToHaveScrollAssist(interactiveSelector: string, inputSelector: string) { - await expect(await this.getScrollPosition()).toBe(0); - - await this.focusInput(interactiveSelector, inputSelector); - - await expect(await this.getScrollPosition()).not.toBe(0); - } - - async expectToHaveScrollPadding(interactiveSelector: string, inputSelector: string) { - const { content } = this; - - await this.focusInput(interactiveSelector, inputSelector); - - await expect(content).not.toHaveCSS('--keyboard-offset', '0px'); - } - - async expectNotToHaveScrollPadding(interactiveSelector: string, inputSelector: string) { - const { content } = this; - - await this.focusInput(interactiveSelector, inputSelector); - - await expect(content).toHaveCSS('--keyboard-offset', '0px'); - } -} diff --git a/core/src/utils/input-shims/hacks/test/scroll-assist.e2e.ts b/core/src/utils/input-shims/hacks/test/scroll-assist.e2e.ts new file mode 100644 index 0000000000..9edfc45e7d --- /dev/null +++ b/core/src/utils/input-shims/hacks/test/scroll-assist.e2e.ts @@ -0,0 +1,180 @@ +import { expect } from '@playwright/test'; +import type { Locator } from '@playwright/test'; +import { KeyboardResize } from '@utils/native/keyboard'; +import type { E2EPage, E2EPageOptions } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; + +const getScrollPosition = async (contentEl: Locator) => { + return await contentEl.evaluate(async (el: HTMLIonContentElement) => { + const scrollEl = await el.getScrollElement(); + + return scrollEl.scrollTop; + }); +}; + +// TODO FW-3427 +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('scroll-assist'), () => { + let scrollAssistFixture: ScrollAssistFixture; + test.beforeEach(async ({ page, skip }) => { + test.slow(); + skip.browser('firefox'); + skip.browser('chromium'); + + scrollAssistFixture = new ScrollAssistFixture(page); + }); + + test.describe('scroll-assist: basic functionality', () => { + test.beforeEach(async () => { + await scrollAssistFixture.goto(config); + }); + test('should not activate when input is above the keyboard', async () => { + await scrollAssistFixture.expectNotToHaveScrollAssist( + '#input-above-keyboard', + '#input-above-keyboard input:not(.cloned-input)' + ); + }); + + test('should activate when input is below the keyboard', async () => { + await scrollAssistFixture.expectToHaveScrollAssist( + '#input-below-keyboard', + '#input-below-keyboard input:not(.cloned-input)' + ); + }); + + test('should activate even when not explicitly tapping input', async () => { + await scrollAssistFixture.expectToHaveScrollAssist( + '#item-below-keyboard ion-label', + '#input-below-keyboard input:not(.cloned-input)' + ); + }); + }); + test.describe('scroll-assist: scroll-padding', () => { + test.describe('scroll-padding: browser/cordova', () => { + test.beforeEach(async () => { + await scrollAssistFixture.goto(config); + }); + test('should add scroll padding for an input at the bottom of the scroll container', async () => { + await scrollAssistFixture.expectToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + }); + + test('should keep scroll padding even when switching between inputs', async () => { + await scrollAssistFixture.expectToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + + await scrollAssistFixture.expectToHaveScrollPadding( + '#textarea-outside-viewport', + '#textarea-outside-viewport textarea:not(.cloned-input)' + ); + }); + }); + test.describe('scroll-padding: webview resizing', () => { + test('should add scroll padding when webview resizing is "none"', async () => { + await scrollAssistFixture.goto(config, KeyboardResize.None); + + await scrollAssistFixture.expectToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + }); + test('should not add scroll padding when webview resizing is "body"', async () => { + await scrollAssistFixture.goto(config, KeyboardResize.Body); + + await scrollAssistFixture.expectNotToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + }); + test('should not add scroll padding when webview resizing is "ionic"', async () => { + await scrollAssistFixture.goto(config, KeyboardResize.Ionic); + + await scrollAssistFixture.expectNotToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + }); + test('should not add scroll padding when webview resizing is "native"', async () => { + await scrollAssistFixture.goto(config, KeyboardResize.Native); + + await scrollAssistFixture.expectNotToHaveScrollPadding( + '#input-outside-viewport', + '#input-outside-viewport input:not(.cloned-input)' + ); + }); + }); + }); + }); +}); + +class ScrollAssistFixture { + readonly page: E2EPage; + private content!: Locator; + + constructor(page: E2EPage) { + this.page = page; + } + + async goto(config: E2EPageOptions, resizeMode?: KeyboardResize) { + let url = `/src/utils/input-shims/hacks/test`; + if (resizeMode !== undefined) { + url += `?resizeMode=${resizeMode}`; + } + + await this.page.goto(url, config); + + this.content = this.page.locator('ion-content'); + } + + private async focusInput(interactiveSelector: string, inputSelector: string) { + const { page } = this; + const interactive = page.locator(interactiveSelector); + const input = page.locator(inputSelector); + + await interactive.click({ force: true }); + await expect(input).toBeFocused(); + await page.waitForChanges(); + } + + private getScrollPosition() { + const { content } = this; + + return getScrollPosition(content); + } + + async expectNotToHaveScrollAssist(interactiveSelector: string, inputSelector: string) { + await expect(await this.getScrollPosition()).toBe(0); + + await this.focusInput(interactiveSelector, inputSelector); + + await expect(await this.getScrollPosition()).toBe(0); + } + + async expectToHaveScrollAssist(interactiveSelector: string, inputSelector: string) { + await expect(await this.getScrollPosition()).toBe(0); + + await this.focusInput(interactiveSelector, inputSelector); + + await expect(await this.getScrollPosition()).not.toBe(0); + } + + async expectToHaveScrollPadding(interactiveSelector: string, inputSelector: string) { + const { content } = this; + + await this.focusInput(interactiveSelector, inputSelector); + + await expect(content).not.toHaveCSS('--keyboard-offset', '0px'); + } + + async expectNotToHaveScrollPadding(interactiveSelector: string, inputSelector: string) { + const { content } = this; + + await this.focusInput(interactiveSelector, inputSelector); + + await expect(content).toHaveCSS('--keyboard-offset', '0px'); + } +} diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts index 69fb68f3de..3f8c83d59d 100644 --- a/core/src/utils/overlays.ts +++ b/core/src/utils/overlays.ts @@ -22,6 +22,7 @@ import { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button'; import { addEventListener, componentOnReady, focusElement, getElementRoot, removeEventListener } from './helpers'; import { printIonWarning } from './logging'; +let lastOverlayIndex = 0; let lastId = 0; export const activeAnimations = new WeakMap(); @@ -50,15 +51,42 @@ export const pickerController = /*@__PURE__*/ createController('ion-popover'); export const toastController = /*@__PURE__*/ createController('ion-toast'); +/** + * Prepares the overlay element to be presented. + */ export const prepareOverlay = (el: T) => { if (typeof document !== 'undefined') { + /** + * Adds a single instance of event listeners for application behaviors: + * + * - Escape Key behavior to dismiss an overlay + * - Trapping focus within an overlay + * - Back button behavior to dismiss an overlay + * + * This only occurs when the first overlay is created. + */ connectListeners(document); } - const overlayIndex = lastId++; + const overlayIndex = lastOverlayIndex++; + /** + * overlayIndex is used in the overlay components to set a zIndex. + * This ensures that the most recently presented overlay will be + * on top. + */ el.overlayIndex = overlayIndex; +}; + +/** + * Assigns an incrementing id to an overlay element, that does not + * already have an id assigned to it. + * + * Used to track unique instances of an overlay element. + */ +export const setOverlayId = (el: T) => { if (!el.hasAttribute('id')) { - el.id = `ion-overlay-${overlayIndex}`; + el.id = `ion-overlay-${++lastId}`; } + return el.id; }; export const createOverlay = ( @@ -301,8 +329,8 @@ const trapKeyboardFocus = (ev: Event, doc: Document) => { }; const connectListeners = (doc: Document) => { - if (lastId === 0) { - lastId = 1; + if (lastOverlayIndex === 0) { + lastOverlayIndex = 1; doc.addEventListener( 'focus', (ev: FocusEvent) => { diff --git a/core/src/utils/tap-click/test/tap-click.e2e-legacy.ts b/core/src/utils/tap-click/test/tap-click.e2e-legacy.ts deleted file mode 100644 index e027eec7a9..0000000000 --- a/core/src/utils/tap-click/test/tap-click.e2e-legacy.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -// TODO FW-3010 -test.describe.skip('tap click utility', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - skip.mode('ios'); - }); - test('it should apply activated class when clicking element', async ({ page }) => { - await page.setContent(` - - - - `); - - const button = page.locator('button'); - const box = await button.boundingBox()!; - - if (box) { - await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); - await page.mouse.down(); - await page.waitForChanges(); - } - - await expect(button).toHaveClass(/ion-activated/); - }); -}); diff --git a/core/src/utils/tap-click/test/tap-click.e2e.ts b/core/src/utils/tap-click/test/tap-click.e2e.ts new file mode 100644 index 0000000000..1827e27d6a --- /dev/null +++ b/core/src/utils/tap-click/test/tap-click.e2e.ts @@ -0,0 +1,30 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +// TODO FW-3010 + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe.skip(title('tap click utility'), () => { + test('it should apply activated class when clicking element', async ({ page }) => { + await page.setContent( + ` + + + + `, + config + ); + + const button = page.locator('button'); + const box = await button.boundingBox()!; + + if (box) { + await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); + await page.mouse.down(); + await page.waitForChanges(); + } + + await expect(button).toHaveClass(/ion-activated/); + }); + }); +}); diff --git a/core/src/utils/test/framework-delegate/framework-delegate.e2e-legacy.ts b/core/src/utils/test/framework-delegate/framework-delegate.e2e-legacy.ts deleted file mode 100644 index 435f7246d0..0000000000 --- a/core/src/utils/test/framework-delegate/framework-delegate.e2e-legacy.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('framework-delegate', () => { - test.beforeEach(async ({ page, skip }) => { - skip.rtl(); - skip.mode('ios'); - - await page.goto('/src/utils/test/framework-delegate'); - }); - test('should present modal already at ion-app root', async ({ page }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - - await page.click('#button-inline-root'); - - const modal = page.locator('#inline-root'); - await ionModalDidPresent.next(); - await expect(modal).toBeVisible(); - }); - - test('should present modal in content', async ({ page }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - - await page.click('#button-inline-content'); - - const modal = page.locator('#inline-content'); - await ionModalDidPresent.next(); - await expect(modal).toBeVisible(); - }); - - test('should present modal via controller', async ({ page }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - - await page.click('#button-controller'); - - const modal = page.locator('#controller'); - await ionModalDidPresent.next(); - await expect(modal).toBeVisible(); - }); -}); diff --git a/core/src/utils/test/framework-delegate/framework-delegate.e2e.ts b/core/src/utils/test/framework-delegate/framework-delegate.e2e.ts new file mode 100644 index 0000000000..32bc44cd1c --- /dev/null +++ b/core/src/utils/test/framework-delegate/framework-delegate.e2e.ts @@ -0,0 +1,39 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('framework-delegate'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/utils/test/framework-delegate', config); + }); + test('should present modal already at ion-app root', async ({ page }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + + await page.click('#button-inline-root'); + + const modal = page.locator('#inline-root'); + await ionModalDidPresent.next(); + await expect(modal).toBeVisible(); + }); + + test('should present modal in content', async ({ page }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + + await page.click('#button-inline-content'); + + const modal = page.locator('#inline-content'); + await ionModalDidPresent.next(); + await expect(modal).toBeVisible(); + }); + + test('should present modal via controller', async ({ page }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + + await page.click('#button-controller'); + + const modal = page.locator('#controller'); + await ionModalDidPresent.next(); + await expect(modal).toBeVisible(); + }); + }); +}); diff --git a/core/src/utils/test/overlays/overlays.e2e-legacy.ts b/core/src/utils/test/overlays/overlays.e2e-legacy.ts deleted file mode 100644 index 440bdaf897..0000000000 --- a/core/src/utils/test/overlays/overlays.e2e-legacy.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { expect } from '@playwright/test'; -import { test } from '@utils/test/playwright'; - -test.describe('overlays: dismiss', () => { - test.beforeEach(async ({ page, skip }) => { - skip.rtl(); - - await page.goto('/src/utils/test/overlays'); - }); - test('hardware back button: should dismiss a presented overlay', async ({ page }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); - - await page.click('#create-and-present'); - - await ionModalDidPresent.next(); - - await page.click('#modal-simulate'); - - await ionModalDidDismiss.next(); - }); - - test('hardware back button: should dismiss the presented overlay, even though another hidden modal was added last', async ({ - page, - }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); - - await page.click('#create-and-present'); - - await ionModalDidPresent.next(); - - await page.click('#modal-create'); - - const modals = page.locator('ion-modal'); - await expect(await modals.count()).toEqual(2); - - await expect(await modals.nth(0)).not.toHaveClass(/overlay-hidden/); - await expect(await modals.nth(1)).toHaveClass(/overlay-hidden/); - - await page.click('#modal-simulate'); - - await ionModalDidDismiss.next(); - - await expect(await modals.count()).toEqual(1); - await expect(await modals.nth(0)).toHaveClass(/overlay-hidden/); - }); - - test('Esc: should dismiss a presented overlay', async ({ page }) => { - const createAndPresentButton = page.locator('#create-and-present'); - - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); - - await createAndPresentButton.click(); - - await ionModalDidPresent.next(); - - await page.keyboard.press('Escape'); - - await ionModalDidDismiss.next(); - }); - - test('Esc: should dismiss the presented overlay, even though another hidden modal was added last', async ({ - page, - }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); - - await page.click('#create-and-present'); - - await ionModalDidPresent.next(); - - await page.click('#modal-create'); - - const modals = page.locator('ion-modal'); - await expect(await modals.count()).toEqual(2); - - await expect(await modals.nth(0)).not.toHaveClass(/overlay-hidden/); - await expect(await modals.nth(1)).toHaveClass(/overlay-hidden/); - - await page.keyboard.press('Escape'); - - await ionModalDidDismiss.next(); - - await expect(await modals.count()).toEqual(1); - await expect(await modals.nth(0)).toHaveClass(/overlay-hidden/); - }); - - test('overlays: Nested: should dismiss the top overlay', async ({ page }) => { - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); - - await page.click('#create-nested'); - - await ionModalDidPresent.next(); - - await page.click('#dismiss-modal-nested-overlay'); - - await ionModalDidDismiss.next(); - - const modals = page.locator('ion-modal'); - expect(await modals.count()).toEqual(0); - }); -}); - -// TODO FW-3536 -test.describe.skip('overlays: focus', () => { - test.beforeEach(({ skip }) => { - skip.rtl(); - }); - - test('should not select a hidden focusable element', async ({ page, browserName }) => { - await page.setContent(` - - - Show Modal - - - - Visible Button - - - `); - - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const presentButton = page.locator('ion-button#open-modal'); - const visibleButton = page.locator('ion-button#visible'); - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - - await presentButton.click(); - await ionModalDidPresent.next(); - - await page.keyboard.press(tabKey); - await expect(visibleButton).toBeFocused(); - - await page.keyboard.press(tabKey); - await expect(visibleButton).toBeFocused(); - }); - - test('should not select a disabled focusable element', async ({ page, browserName }) => { - await page.setContent(` - Show Modal - - - Button - Active Button - - - `); - - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const presentButton = page.locator('ion-button#open-modal'); - const activeButton = page.locator('ion-button#active'); - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - - await presentButton.click(); - await ionModalDidPresent.next(); - - await page.keyboard.press(tabKey); - await expect(activeButton).toBeFocused(); - - await page.keyboard.press(tabKey); - await expect(activeButton).toBeFocused(); - }); - - test('should select a focusable element with disabled="false"', async ({ page, browserName }) => { - await page.setContent(` - Show Modal - - - Button - Active Button - - - `); - - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - const presentButton = page.locator('ion-button#open-modal'); - const disabledFalseButton = page.locator('ion-button#disabled-false'); - const activeButton = page.locator('ion-button#active'); - const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; - - await presentButton.click(); - await ionModalDidPresent.next(); - - await page.keyboard.press(tabKey); - await expect(disabledFalseButton).toBeFocused(); - - await page.keyboard.press(tabKey); - await expect(activeButton).toBeFocused(); - - // Loop back to beginning of overlay - await page.keyboard.press(tabKey); - await expect(disabledFalseButton).toBeFocused(); - }); - - test('toast should not cause focus trapping', async ({ page }) => { - await page.goto('/src/utils/test/overlays'); - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - - await page.click('#create-and-present-toast'); - await ionToastDidPresent.next(); - - const input = page.locator('#root-input input'); - await input.click(); - - await expect(input).toBeFocused(); - }); - - test('toast should not cause focus trapping even when opened from a focus trapping overlay', async ({ page }) => { - await page.goto('/src/utils/test/overlays'); - - const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - - await page.click('#create-and-present'); - await ionModalDidPresent.next(); - - await page.click('#modal-toast'); - await ionToastDidPresent.next(); - - const modalInput = page.locator('.modal-input input'); - await modalInput.click(); - - await expect(modalInput).toBeFocused(); - }); - - test('focus trapping should only run on the top-most overlay', async ({ page }) => { - await page.goto('/src/utils/test/overlays'); - - const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); - - await page.click('#create-and-present'); - await ionModalDidPresent.next(); - - const modalInputZero = page.locator('.modal-0 .modal-input input'); - await modalInputZero.click(); - - await expect(modalInputZero).toBeFocused(); - - await page.click('#modal-create-and-present'); - await ionModalDidPresent.next(); - - const modalInputOne = page.locator('.modal-1 .modal-input input'); - await modalInputOne.click(); - - await expect(modalInputOne).toBeFocused(); - }); -}); diff --git a/core/src/utils/test/overlays/overlays.e2e.ts b/core/src/utils/test/overlays/overlays.e2e.ts new file mode 100644 index 0000000000..5de399fb41 --- /dev/null +++ b/core/src/utils/test/overlays/overlays.e2e.ts @@ -0,0 +1,262 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across modes/directions. + */ +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('overlays: dismiss'), () => { + test.beforeEach(async ({ page }) => { + await page.goto('/src/utils/test/overlays', config); + }); + test('hardware back button: should dismiss a presented overlay', async ({ page }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); + + await page.click('#create-and-present'); + + await ionModalDidPresent.next(); + + await page.click('#modal-simulate'); + + await ionModalDidDismiss.next(); + }); + + test('hardware back button: should dismiss the presented overlay, even though another hidden modal was added last', async ({ + page, + }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); + + await page.click('#create-and-present'); + + await ionModalDidPresent.next(); + + await page.click('#modal-create'); + + const modals = page.locator('ion-modal'); + await expect(await modals.count()).toEqual(2); + + await expect(await modals.nth(0)).not.toHaveClass(/overlay-hidden/); + await expect(await modals.nth(1)).toHaveClass(/overlay-hidden/); + + await page.click('#modal-simulate'); + + await ionModalDidDismiss.next(); + + await expect(await modals.count()).toEqual(1); + await expect(await modals.nth(0)).toHaveClass(/overlay-hidden/); + }); + + test('Esc: should dismiss a presented overlay', async ({ page }) => { + const createAndPresentButton = page.locator('#create-and-present'); + + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); + + await createAndPresentButton.click(); + + await ionModalDidPresent.next(); + + await page.keyboard.press('Escape'); + + await ionModalDidDismiss.next(); + }); + + test('Esc: should dismiss the presented overlay, even though another hidden modal was added last', async ({ + page, + }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); + + await page.click('#create-and-present'); + + await ionModalDidPresent.next(); + + await page.click('#modal-create'); + + const modals = page.locator('ion-modal'); + await expect(await modals.count()).toEqual(2); + + await expect(await modals.nth(0)).not.toHaveClass(/overlay-hidden/); + await expect(await modals.nth(1)).toHaveClass(/overlay-hidden/); + + await page.keyboard.press('Escape'); + + await ionModalDidDismiss.next(); + + await expect(await modals.count()).toEqual(1); + await expect(await modals.nth(0)).toHaveClass(/overlay-hidden/); + }); + + test('overlays: Nested: should dismiss the top overlay', async ({ page }) => { + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss'); + + await page.click('#create-nested'); + + await ionModalDidPresent.next(); + + await page.click('#dismiss-modal-nested-overlay'); + + await ionModalDidDismiss.next(); + + const modals = page.locator('ion-modal'); + expect(await modals.count()).toEqual(0); + }); + }); + + // TODO FW-3536 + test.describe.skip(title('overlays: focus'), () => { + test('should not select a hidden focusable element', async ({ page, browserName }) => { + await page.setContent( + ` + + + Show Modal + + + + Visible Button + + + `, + config + ); + + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const presentButton = page.locator('ion-button#open-modal'); + const visibleButton = page.locator('ion-button#visible'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + await presentButton.click(); + await ionModalDidPresent.next(); + + await page.keyboard.press(tabKey); + await expect(visibleButton).toBeFocused(); + + await page.keyboard.press(tabKey); + await expect(visibleButton).toBeFocused(); + }); + + test('should not select a disabled focusable element', async ({ page, browserName }) => { + await page.setContent( + ` + Show Modal + + + Button + Active Button + + + `, + config + ); + + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const presentButton = page.locator('ion-button#open-modal'); + const activeButton = page.locator('ion-button#active'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + await presentButton.click(); + await ionModalDidPresent.next(); + + await page.keyboard.press(tabKey); + await expect(activeButton).toBeFocused(); + + await page.keyboard.press(tabKey); + await expect(activeButton).toBeFocused(); + }); + + test('should select a focusable element with disabled="false"', async ({ page, browserName }) => { + await page.setContent( + ` + Show Modal + + + Button + Active Button + + + `, + config + ); + + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + const presentButton = page.locator('ion-button#open-modal'); + const disabledFalseButton = page.locator('ion-button#disabled-false'); + const activeButton = page.locator('ion-button#active'); + const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab'; + + await presentButton.click(); + await ionModalDidPresent.next(); + + await page.keyboard.press(tabKey); + await expect(disabledFalseButton).toBeFocused(); + + await page.keyboard.press(tabKey); + await expect(activeButton).toBeFocused(); + + // Loop back to beginning of overlay + await page.keyboard.press(tabKey); + await expect(disabledFalseButton).toBeFocused(); + }); + + test('toast should not cause focus trapping', async ({ page }) => { + await page.goto('/src/utils/test/overlays', config); + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + + await page.click('#create-and-present-toast'); + await ionToastDidPresent.next(); + + const input = page.locator('#root-input input'); + await input.click(); + + await expect(input).toBeFocused(); + }); + + test('toast should not cause focus trapping even when opened from a focus trapping overlay', async ({ page }) => { + await page.goto('/src/utils/test/overlays', config); + + const ionToastDidPresent = await page.spyOnEvent('ionToastDidPresent'); + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + + await page.click('#create-and-present'); + await ionModalDidPresent.next(); + + await page.click('#modal-toast'); + await ionToastDidPresent.next(); + + const modalInput = page.locator('.modal-input input'); + await modalInput.click(); + + await expect(modalInput).toBeFocused(); + }); + + test('focus trapping should only run on the top-most overlay', async ({ page }) => { + await page.goto('/src/utils/test/overlays', config); + + const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent'); + + await page.click('#create-and-present'); + await ionModalDidPresent.next(); + + const modalInputZero = page.locator('.modal-0 .modal-input input'); + await modalInputZero.click(); + + await expect(modalInputZero).toBeFocused(); + + await page.click('#modal-create-and-present'); + await ionModalDidPresent.next(); + + const modalInputOne = page.locator('.modal-1 .modal-input input'); + await modalInputOne.click(); + + await expect(modalInputOne).toBeFocused(); + }); + }); +});