Compare commits
96 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fe32e9ce3 | ||
|
|
78ab10f4bc | ||
|
|
3ecfb9ce43 | ||
|
|
214e83529f | ||
|
|
923dbac768 | ||
|
|
f5de56dd07 | ||
|
|
661b5de825 | ||
|
|
521063bf24 | ||
|
|
c9e4cd002d | ||
|
|
0a04310f11 | ||
|
|
9ba8f0a53f | ||
|
|
f68644065c | ||
|
|
a396e8857b | ||
|
|
1ea0893643 | ||
|
|
6cecdf4145 | ||
|
|
3b99c31bab | ||
|
|
739f5706db | ||
|
|
19c1e25399 | ||
|
|
6e04562b3b | ||
|
|
53af005122 | ||
|
|
342d448767 | ||
|
|
7b476d9189 | ||
|
|
7fef2909e3 | ||
|
|
5f3ed2b3e8 | ||
|
|
e8aa3d92d0 | ||
|
|
95cebe8004 | ||
|
|
7d9bbdd681 | ||
|
|
341f42d59c | ||
|
|
c719b61962 | ||
|
|
6f1cd267c3 | ||
|
|
4bd47bac5c | ||
|
|
8d169f0c17 | ||
|
|
4816ed7eb2 | ||
|
|
45e1204b73 | ||
|
|
cc7ce35c56 | ||
|
|
8e34ba0838 | ||
|
|
be1a5af77e | ||
|
|
e266e08597 | ||
|
|
bf79814500 | ||
|
|
deabaca35d | ||
|
|
befd66010b | ||
|
|
a94510bc00 | ||
|
|
fa01664477 | ||
|
|
5c23dc871f | ||
|
|
712f77836d | ||
|
|
469842c7c5 | ||
|
|
ae861b5081 | ||
|
|
0b55c51ce9 | ||
|
|
d75c70518a | ||
|
|
1a77a92832 | ||
|
|
1ecc5b0bf5 | ||
|
|
b507b13c60 | ||
|
|
221aeffcf1 | ||
|
|
60a88b667c | ||
|
|
2a58a86d7c | ||
|
|
39841019af | ||
|
|
4232449215 | ||
|
|
d21b6cd084 | ||
|
|
e60e700ae0 | ||
|
|
96d08cfc80 | ||
|
|
8d9b0f9484 | ||
|
|
9fac36ab47 | ||
|
|
4e3726e9bb | ||
|
|
244229a369 | ||
|
|
9a611ae4d4 | ||
|
|
9c8e36ceff | ||
|
|
b7858ea993 | ||
|
|
af5bd6e78b | ||
|
|
4786abda3f | ||
|
|
8515879bde | ||
|
|
4a19eeaaf2 | ||
|
|
ce65b0eaa0 | ||
|
|
781a35dd56 | ||
|
|
5c4724d5cb | ||
|
|
4cd34e0a0e | ||
|
|
6c4578c692 | ||
|
|
36dda67872 | ||
|
|
6f914e3b90 | ||
|
|
048ca440ae | ||
|
|
d0f7b8f443 | ||
|
|
fb994fa9a7 | ||
|
|
a83fa402cf | ||
|
|
9532d04608 | ||
|
|
bafd1871ce | ||
|
|
7f3de340a7 | ||
|
|
60dfe41741 | ||
|
|
c983abeb3e | ||
|
|
80022a36ae | ||
|
|
d1602183a7 | ||
|
|
59ed574685 | ||
|
|
4fa8565788 | ||
|
|
544c510ec8 | ||
|
|
e6322ebcff | ||
|
|
4025eafe3b | ||
|
|
4785a7a929 | ||
|
|
7d562e1e03 |
4
.github/workflows/release.yml
vendored
@@ -16,9 +16,7 @@ on:
|
||||
type: choice
|
||||
description: Which npm tag should this be published to?
|
||||
options:
|
||||
- latest
|
||||
- v5-lts
|
||||
- v4-lts
|
||||
- v6-lts
|
||||
|
||||
jobs:
|
||||
release-ionic:
|
||||
|
||||
39
CHANGELOG.md
@@ -3,6 +3,45 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [6.7.2](https://github.com/ionic-team/ionic-framework/compare/v6.7.1...v6.7.2) (2023-04-05)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **item-divider:** set padding-end for md ([#27070](https://github.com/ionic-team/ionic-framework/issues/27070)) ([214e835](https://github.com/ionic-team/ionic-framework/commit/214e83529f7115852c27a37869c8231330fdb8ac))
|
||||
* **picker-column-internal:** hide empty picker items from screenreaders ([#27114](https://github.com/ionic-team/ionic-framework/issues/27114)) ([3ecfb9c](https://github.com/ionic-team/ionic-framework/commit/3ecfb9ce43d9d5cf93f1f2be26a0922a16894362)), closes [#26809](https://github.com/ionic-team/ionic-framework/issues/26809)
|
||||
|
||||
|
||||
|
||||
## [6.0.16](https://github.com/ionic-team/ionic-framework/compare/v6.0.15...v6.0.16) (2022-04-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **angular:** button components now route correctly without reload ([#25071](https://github.com/ionic-team/ionic-framework/issues/25071)) ([fb994fa](https://github.com/ionic-team/ionic-framework/commit/fb994fa9a7721a3575fb8d123be34aea4bf076a4))
|
||||
|
||||
|
||||
|
||||
## [6.0.15](https://github.com/ionic-team/ionic-framework/compare/v6.0.14...v6.0.15) (2022-04-06)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [6.7.1](https://github.com/ionic-team/ionic-framework/compare/v6.7.0...v6.7.1) (2023-03-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **item-sliding:** open method works with items added async ([#27035](https://github.com/ionic-team/ionic-framework/issues/27035)) ([521063b](https://github.com/ionic-team/ionic-framework/commit/521063bf241dc2c55bcd02a92ed8a418cfec6b1e)), closes [#26991](https://github.com/ionic-team/ionic-framework/issues/26991)
|
||||
* **item:** use thumbnail's size when present ([#27014](https://github.com/ionic-team/ionic-framework/issues/27014)) ([6cecdf4](https://github.com/ionic-team/ionic-framework/commit/6cecdf41451a5c7aa908494dfad9fab1496a0c6c)), closes [#22935](https://github.com/ionic-team/ionic-framework/issues/22935)
|
||||
* **radio-group:** radios participate in form submission ([#27018](https://github.com/ionic-team/ionic-framework/issues/27018)) ([3b99c31](https://github.com/ionic-team/ionic-framework/commit/3b99c31bab41bf7fcec340ac7159d3e8fce126c1)), closes [#27016](https://github.com/ionic-team/ionic-framework/issues/27016)
|
||||
* **select:** inherit white-space in select-text to allow text wrapping ([#26973](https://github.com/ionic-team/ionic-framework/issues/26973)) ([19c1e25](https://github.com/ionic-team/ionic-framework/commit/19c1e25399ca18c8e6a8dd39c0131979c0bb01e9)), closes [#19949](https://github.com/ionic-team/ionic-framework/issues/19949)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.7.0](https://github.com/ionic-team/ionic-framework/compare/v6.6.3...v6.7.0) (2023-03-23)
|
||||
|
||||
|
||||
|
||||
10
README.md
@@ -42,7 +42,7 @@
|
||||
<span> · </span>
|
||||
<a href="https://blog.ionicframework.com/">Blog</a>
|
||||
<br />
|
||||
Community:
|
||||
Community:
|
||||
<a href="https://ionic.link/discord">Discord</a>
|
||||
<span> · </span>
|
||||
<a href="https://forum.ionicframework.com/">Forums</a>
|
||||
@@ -77,8 +77,12 @@ Already have an Ionic app? These guides will help you migrate to the latest vers
|
||||
|
||||
### Examples
|
||||
|
||||
The [Ionic Conference App](https://github.com/ionic-team/ionic-conference-app) is a full featured Ionic app.
|
||||
It is the perfect starting point for learning and building your own app.
|
||||
The Ionic Conference App is a full featured Ionic app. It is the perfect starting point for learning and building your own app.
|
||||
|
||||
- [Angular Ionic Conference App](https://github.com/ionic-team/ionic-conference-app)
|
||||
- [React Ionic Conference App](https://github.com/ionic-team/ionic-react-conference-app)
|
||||
<!-- TODO(FW-3811): add this when the vue conference app is updated -->
|
||||
<!-- - [Vue Ionic Conference App](https://github.com/ionic-team/ionic-vue-conference-app) -->
|
||||
|
||||
### Contributing
|
||||
|
||||
|
||||
@@ -3,6 +3,33 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [6.7.2](https://github.com/ionic-team/ionic/compare/v6.7.1...v6.7.2) (2023-04-05)
|
||||
|
||||
|
||||
|
||||
## [6.0.16](https://github.com/ionic-team/ionic/compare/v6.0.15...v6.0.16) (2022-04-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **angular:** button components now route correctly without reload ([#25071](https://github.com/ionic-team/ionic/issues/25071)) ([fb994fa](https://github.com/ionic-team/ionic/commit/fb994fa9a7721a3575fb8d123be34aea4bf076a4))
|
||||
|
||||
|
||||
|
||||
## [6.0.15](https://github.com/ionic-team/ionic/compare/v6.0.14...v6.0.15) (2022-04-06)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [6.7.1](https://github.com/ionic-team/ionic/compare/v6.7.0...v6.7.1) (2023-03-29)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.7.0](https://github.com/ionic-team/ionic/compare/v6.6.3...v6.7.0) (2023-03-23)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular
|
||||
@@ -493,7 +520,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
||||
|
||||
|
||||
|
||||
# [6.1.0](https://github.com/ionic-team/ionic/compare/v6.0.14...v6.1.0) (2022-04-13)
|
||||
# [6.1.0](https://github.com/ionic-team/ionic/compare/v6.0.16...v6.1.0) (2022-04-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
18
angular/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/angular",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/angular",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^6.7.0",
|
||||
"@ionic/core": "^6.7.2",
|
||||
"ionicons": "^6.1.3",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.0.0"
|
||||
@@ -1006,9 +1006,9 @@
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/@ionic/core": {
|
||||
"version": "6.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.6.3.tgz",
|
||||
"integrity": "sha512-jkXxvsnn/aCCi5fBjjkkTL6gMjalAjF71+IGi01b+J29F4SCoqmmKykVM99tEJV8NR5ArBGObUTtCzHaax8NCw==",
|
||||
"version": "6.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.1.tgz",
|
||||
"integrity": "sha512-nUuSFV8gT+Ilb2w37gGlV34tVwpGloQMVbjnoNT/ItrQtckGVjKxEzwt27PFlJxKIT7f3OXIccKoW5l3A5NLMg==",
|
||||
"dependencies": {
|
||||
"@stencil/core": "^2.18.0",
|
||||
"ionicons": "^6.1.3",
|
||||
@@ -7335,9 +7335,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@ionic/core": {
|
||||
"version": "6.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.6.3.tgz",
|
||||
"integrity": "sha512-jkXxvsnn/aCCi5fBjjkkTL6gMjalAjF71+IGi01b+J29F4SCoqmmKykVM99tEJV8NR5ArBGObUTtCzHaax8NCw==",
|
||||
"version": "6.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.1.tgz",
|
||||
"integrity": "sha512-nUuSFV8gT+Ilb2w37gGlV34tVwpGloQMVbjnoNT/ItrQtckGVjKxEzwt27PFlJxKIT7f3OXIccKoW5l3A5NLMg==",
|
||||
"requires": {
|
||||
"@stencil/core": "^2.18.0",
|
||||
"ionicons": "^6.1.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/angular",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"description": "Angular specific wrappers for @ionic/core",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -42,7 +42,7 @@
|
||||
"validate": "npm i && npm run lint && npm run test && npm run build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ionic/core": "^6.7.0",
|
||||
"@ionic/core": "^6.7.2",
|
||||
"ionicons": "^6.1.3",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.0.0"
|
||||
|
||||
@@ -3,6 +3,40 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [6.7.2](https://github.com/ionic-team/ionic/compare/v6.7.1...v6.7.2) (2023-04-05)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **item-divider:** set padding-end for md ([#27070](https://github.com/ionic-team/ionic/issues/27070)) ([214e835](https://github.com/ionic-team/ionic/commit/214e83529f7115852c27a37869c8231330fdb8ac))
|
||||
* **picker-column-internal:** hide empty picker items from screenreaders ([#27114](https://github.com/ionic-team/ionic/issues/27114)) ([3ecfb9c](https://github.com/ionic-team/ionic/commit/3ecfb9ce43d9d5cf93f1f2be26a0922a16894362)), closes [#26809](https://github.com/ionic-team/ionic/issues/26809)
|
||||
|
||||
|
||||
|
||||
## [6.0.16](https://github.com/ionic-team/ionic/compare/v6.0.15...v6.0.16) (2022-04-08)
|
||||
|
||||
|
||||
|
||||
## [6.0.15](https://github.com/ionic-team/ionic/compare/v6.0.14...v6.0.15) (2022-04-06)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [6.7.1](https://github.com/ionic-team/ionic/compare/v6.7.0...v6.7.1) (2023-03-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **item-sliding:** open method works with items added async ([#27035](https://github.com/ionic-team/ionic/issues/27035)) ([521063b](https://github.com/ionic-team/ionic/commit/521063bf241dc2c55bcd02a92ed8a418cfec6b1e)), closes [#26991](https://github.com/ionic-team/ionic/issues/26991)
|
||||
* **item:** use thumbnail's size when present ([#27014](https://github.com/ionic-team/ionic/issues/27014)) ([6cecdf4](https://github.com/ionic-team/ionic/commit/6cecdf41451a5c7aa908494dfad9fab1496a0c6c)), closes [#22935](https://github.com/ionic-team/ionic/issues/22935)
|
||||
* **radio-group:** radios participate in form submission ([#27018](https://github.com/ionic-team/ionic/issues/27018)) ([3b99c31](https://github.com/ionic-team/ionic/commit/3b99c31bab41bf7fcec340ac7159d3e8fce126c1)), closes [#27016](https://github.com/ionic-team/ionic/issues/27016)
|
||||
* **select:** inherit white-space in select-text to allow text wrapping ([#26973](https://github.com/ionic-team/ionic/issues/26973)) ([19c1e25](https://github.com/ionic-team/ionic/commit/19c1e25399ca18c8e6a8dd39c0131979c0bb01e9)), closes [#19949](https://github.com/ionic-team/ionic/issues/19949)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [6.7.0](https://github.com/ionic-team/ionic/compare/v6.6.3...v6.7.0) (2023-03-23)
|
||||
|
||||
|
||||
@@ -781,7 +815,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
||||
|
||||
|
||||
|
||||
# [6.1.0](https://github.com/ionic-team/ionic/compare/v6.0.14...v6.1.0) (2022-04-13)
|
||||
# [6.1.0](https://github.com/ionic-team/ionic/compare/v6.0.16...v6.1.0) (2022-04-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
50
core/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@ionic/core",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/core",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@stencil/core": "^2.18.0",
|
||||
@@ -18,7 +18,7 @@
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
"@ionic/prettier-config": "^2.0.0",
|
||||
"@jest/core": "^27.5.1",
|
||||
"@playwright/test": "^1.31.1",
|
||||
"@playwright/test": "^1.32.1",
|
||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||
"@rollup/plugin-virtual": "^2.0.3",
|
||||
"@stencil/angular-output-target": "^0.4.0",
|
||||
@@ -1503,13 +1503,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.2.tgz",
|
||||
"integrity": "sha512-BYVutxDI4JeZKV1+ups6dt5WiqKhjBtIYowyZIJ3kBDmJgsuPKsqqKNIMFbUePLSCmp2cZu+BDL427RcNKTRYw==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.1.tgz",
|
||||
"integrity": "sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"playwright-core": "1.31.2"
|
||||
"playwright-core": "1.32.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -8155,14 +8155,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.2.tgz",
|
||||
"integrity": "sha512-jpC47n2PKQNtzB7clmBuWh6ftBRS/Bt5EGLigJ9k2QAKcNeYXZkEaDH5gmvb6+AbcE0DO6GnXdbl9ogG6Eh+og==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.1.tgz",
|
||||
"integrity": "sha512-GnEizysWMvoqHC3I9l8+4/ZxeLwLNdJJG76xdKGxzOcIZDcw5RSk/FKrFb5CuA+zcLpjIM2p9eR9Z4CuUDkWXg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"playwright-core": "1.31.2"
|
||||
"playwright-core": "1.32.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -8172,9 +8172,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.2.tgz",
|
||||
"integrity": "sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.1.tgz",
|
||||
"integrity": "sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
@@ -11427,14 +11427,14 @@
|
||||
}
|
||||
},
|
||||
"@playwright/test": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.2.tgz",
|
||||
"integrity": "sha512-BYVutxDI4JeZKV1+ups6dt5WiqKhjBtIYowyZIJ3kBDmJgsuPKsqqKNIMFbUePLSCmp2cZu+BDL427RcNKTRYw==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.1.tgz",
|
||||
"integrity": "sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"fsevents": "2.3.2",
|
||||
"playwright-core": "1.31.2"
|
||||
"playwright-core": "1.32.1"
|
||||
}
|
||||
},
|
||||
"@rollup/plugin-node-resolve": {
|
||||
@@ -16312,19 +16312,19 @@
|
||||
}
|
||||
},
|
||||
"playwright": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.2.tgz",
|
||||
"integrity": "sha512-jpC47n2PKQNtzB7clmBuWh6ftBRS/Bt5EGLigJ9k2QAKcNeYXZkEaDH5gmvb6+AbcE0DO6GnXdbl9ogG6Eh+og==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.1.tgz",
|
||||
"integrity": "sha512-GnEizysWMvoqHC3I9l8+4/ZxeLwLNdJJG76xdKGxzOcIZDcw5RSk/FKrFb5CuA+zcLpjIM2p9eR9Z4CuUDkWXg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {
|
||||
"playwright-core": "1.31.2"
|
||||
"playwright-core": "1.32.1"
|
||||
}
|
||||
},
|
||||
"playwright-core": {
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.2.tgz",
|
||||
"integrity": "sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ==",
|
||||
"version": "1.32.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.1.tgz",
|
||||
"integrity": "sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/core",
|
||||
"version": "6.7.0",
|
||||
"version": "6.7.2",
|
||||
"description": "Base components for Ionic",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -40,7 +40,7 @@
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
"@ionic/prettier-config": "^2.0.0",
|
||||
"@jest/core": "^27.5.1",
|
||||
"@playwright/test": "^1.31.1",
|
||||
"@playwright/test": "^1.32.1",
|
||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||
"@rollup/plugin-virtual": "^2.0.3",
|
||||
"@stencil/angular-output-target": "^0.4.0",
|
||||
|
||||
@@ -185,13 +185,13 @@ export class Alert implements ComponentInterface, OverlayInterface {
|
||||
|
||||
// If hitting arrow down or arrow right, move to the next radio
|
||||
// If we're on the last radio, move to the first radio
|
||||
if (['ArrowDown', 'ArrowRight'].includes(ev.code)) {
|
||||
if (['ArrowDown', 'ArrowRight'].includes(ev.key)) {
|
||||
nextEl = index === radios.length - 1 ? radios[0] : radios[index + 1];
|
||||
}
|
||||
|
||||
// If hitting arrow up or arrow left, move to the previous radio
|
||||
// If we're on the first radio, move to the last radio
|
||||
if (['ArrowUp', 'ArrowLeft'].includes(ev.code)) {
|
||||
if (['ArrowUp', 'ArrowLeft'].includes(ev.key)) {
|
||||
nextEl = index === 0 ? radios[radios.length - 1] : radios[index - 1];
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
@@ -8,6 +8,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime value="2022-02-22T16:30:00" presentation="date-time"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-date-time-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -15,6 +16,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime value="2022-02-22T16:30:00" presentation="time-date"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-time-date-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -22,6 +24,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime value="2022-02-22T16:30:00" presentation="time"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-time-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -29,6 +32,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime value="2022-02-22T16:30:00" presentation="date"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-date-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -46,6 +50,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="date-time"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-cover-date-time-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -53,6 +58,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="time-date"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-cover-time-date-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -60,6 +66,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="time"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-cover-time-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
@@ -67,6 +74,7 @@ test.describe('datetime: display', () => {
|
||||
await page.setContent(`
|
||||
<ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="date"></ion-datetime>
|
||||
`);
|
||||
await page.waitForSelector('.datetime-ready');
|
||||
const datetime = page.locator('ion-datetime');
|
||||
await expect(datetime).toHaveScreenshot(`datetime-display-cover-date-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@@ -1,4 +1,4 @@
|
||||
import { clampDate, getPartsFromCalendarDay, parseAmPm, parseMinParts, parseMaxParts } from '../utils/parse';
|
||||
import { clampDate, getPartsFromCalendarDay, parseAmPm, parseDate, parseMinParts, parseMaxParts } from '../utils/parse';
|
||||
|
||||
describe('getPartsFromCalendarDay()', () => {
|
||||
it('should extract DatetimeParts from a calendar day element', () => {
|
||||
@@ -17,7 +17,54 @@ describe('getPartsFromCalendarDay()', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// TODO FW-2794: parseDate()
|
||||
describe('parseDate()', () => {
|
||||
it('should return undefined when passed undefined', () => {
|
||||
expect(parseDate(undefined)).toStrictEqual(undefined);
|
||||
});
|
||||
|
||||
it('should return undefined when passed null', () => {
|
||||
expect(parseDate(null)).toStrictEqual(undefined);
|
||||
});
|
||||
|
||||
it('should return the correct date object when passed a date', () => {
|
||||
expect(parseDate('2022-12-15T13:47')).toEqual({
|
||||
ampm: 'pm',
|
||||
day: 15,
|
||||
hour: 13,
|
||||
minute: 47,
|
||||
month: 12,
|
||||
tzOffset: 0,
|
||||
year: 2022,
|
||||
});
|
||||
});
|
||||
|
||||
it('should return the correct time zone offset', () => {
|
||||
expect(parseDate('2022-12-15T13:47:30-02:00').tzOffset).toEqual(-120);
|
||||
});
|
||||
|
||||
it('should parse an array of dates', () => {
|
||||
expect(parseDate(['2022-12-15T13:47', '2023-03-23T20:19:33.517Z'])).toEqual([
|
||||
{
|
||||
ampm: 'pm',
|
||||
day: 15,
|
||||
hour: 13,
|
||||
minute: 47,
|
||||
month: 12,
|
||||
tzOffset: 0,
|
||||
year: 2022,
|
||||
},
|
||||
{
|
||||
ampm: 'pm',
|
||||
day: 23,
|
||||
hour: 20,
|
||||
minute: 19,
|
||||
month: 3,
|
||||
tzOffset: 0,
|
||||
year: 2023,
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('clampDate()', () => {
|
||||
const minParts = {
|
||||
|
||||
@@ -96,13 +96,11 @@
|
||||
height: $item-md-avatar-height;
|
||||
}
|
||||
|
||||
|
||||
// Material Design Item Divider Thumbnail
|
||||
// --------------------------------------------------
|
||||
|
||||
::slotted(ion-thumbnail) {
|
||||
width: $item-md-thumbnail-width;
|
||||
height: $item-md-thumbnail-height;
|
||||
--size: #{$item-md-thumbnail-size};
|
||||
}
|
||||
|
||||
// Material Design Item Divider Avatar/Thumbnail
|
||||
|
||||
@@ -23,4 +23,4 @@ $item-divider-md-border-bottom: 1px solid $item-md-border-color !default;
|
||||
$item-divider-md-padding-start: $item-md-padding-start !default;
|
||||
|
||||
/// @prop - Padding end for the divider
|
||||
$item-divider-md-padding-end: 0 !default;
|
||||
$item-divider-md-padding-end: $item-md-padding-end !default;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import { expect } from '@playwright/test';
|
||||
import { test } from '@utils/test/playwright';
|
||||
|
||||
test.describe('item-divider: basic', () => {
|
||||
test('should display an item divider with text', async ({ page }) => {
|
||||
await page.setContent(`
|
||||
<ion-item-divider>
|
||||
<ion-label>Item Divider</ion-label>
|
||||
</ion-item-divider>
|
||||
`);
|
||||
|
||||
const divider = page.locator('ion-item-divider');
|
||||
await expect(divider).toHaveScreenshot(`item-divider-text-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
|
||||
test('should display an item divider with a button in the end slot', async ({ page }) => {
|
||||
await page.setContent(`
|
||||
<ion-item-divider>
|
||||
<ion-label>Item Divider</ion-label>
|
||||
<ion-button slot="end">Button</ion-button>
|
||||
</ion-item-divider>
|
||||
`);
|
||||
|
||||
const divider = page.locator('ion-item-divider');
|
||||
await expect(divider).toHaveScreenshot(`item-divider-button-end-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
|
||||
test('should display an item divider with an icon in the start slot', async ({ page }) => {
|
||||
await page.setContent(`
|
||||
<ion-item-divider>
|
||||
<ion-icon slot="start" name="star"></ion-icon>
|
||||
<ion-label>Item Divider</ion-label>
|
||||
</ion-item-divider>
|
||||
`);
|
||||
|
||||
const divider = page.locator('ion-item-divider');
|
||||
await expect(divider).toHaveScreenshot(`item-divider-icon-start-${page.getSnapshotSettings()}.png`);
|
||||
});
|
||||
});
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -127,7 +127,16 @@ export class ItemSliding implements ComponentInterface {
|
||||
*/
|
||||
@Method()
|
||||
async open(side: Side | undefined) {
|
||||
if (this.item === null) {
|
||||
/**
|
||||
* It is possible for the item to be added to the DOM
|
||||
* after the item-sliding component was created. As a result,
|
||||
* if this.item is null, then we should attempt to
|
||||
* query for the ion-item again.
|
||||
* However, if the item is already defined then
|
||||
* we do not query for it again.
|
||||
*/
|
||||
const item = (this.item = this.item ?? this.el.querySelector('ion-item'));
|
||||
if (item === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
49
core/src/components/item-sliding/test/async/index.html
Normal file
@@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Item Sliding - Async</title>
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"
|
||||
/>
|
||||
<link href="../../../../../css/ionic.bundle.css" rel="stylesheet" />
|
||||
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet" />
|
||||
<script src="../../../../../scripts/testing/scripts.js"></script>
|
||||
<script nomodule src="../../../../../dist/ionic/ionic.js"></script>
|
||||
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ion-app>
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>Item Sliding - Basic</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-item-sliding>
|
||||
<ion-item-options side="end">
|
||||
<ion-item-option>Option</ion-item-option>
|
||||
</ion-item-options>
|
||||
</ion-item-sliding>
|
||||
</ion-list>
|
||||
|
||||
<script>
|
||||
const itemSliding = document.querySelector('ion-item-sliding');
|
||||
setTimeout(() => {
|
||||
const item = document.createElement('ion-item');
|
||||
item.innerText = 'Item Sliding Option';
|
||||
itemSliding.appendChild(item);
|
||||
|
||||
item.onclick = () => {
|
||||
itemSliding.open('end');
|
||||
};
|
||||
}, 250);
|
||||
</script>
|
||||
</ion-content>
|
||||
</ion-app>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,23 @@
|
||||
import { expect } from '@playwright/test';
|
||||
import { test } from '@utils/test/playwright';
|
||||
|
||||
test.describe('item-sliding: async', () => {
|
||||
test('should open even when item is added async', async ({ page, skip }) => {
|
||||
skip.rtl();
|
||||
skip.mode('md');
|
||||
|
||||
await page.goto(`/src/components/item-sliding/test/async`);
|
||||
|
||||
const itemEl = page.locator('ion-item');
|
||||
const itemSlidingEl = page.locator('ion-item-sliding');
|
||||
|
||||
// Wait for item to be added to DOM
|
||||
await page.waitForSelector('ion-item');
|
||||
|
||||
// Click item to open ion-item-sliding
|
||||
await itemEl.click();
|
||||
|
||||
// This class is added when the item sliding component is fully open
|
||||
await expect(itemSlidingEl).toHaveClass(/item-sliding-active-slide/);
|
||||
});
|
||||
});
|
||||
@@ -154,8 +154,7 @@
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
// iOS Item Avatar & Thumbnail
|
||||
// iOS Item Avatar
|
||||
// --------------------------------------------------
|
||||
|
||||
::slotted(ion-avatar) {
|
||||
@@ -163,11 +162,16 @@
|
||||
height: $item-ios-avatar-height;
|
||||
}
|
||||
|
||||
// iOS Item Thumbnail
|
||||
// --------------------------------------------------
|
||||
|
||||
::slotted(ion-thumbnail) {
|
||||
width: $item-ios-thumbnail-width;
|
||||
height: $item-ios-thumbnail-height;
|
||||
--size: #{$item-ios-thumbnail-size};
|
||||
}
|
||||
|
||||
// iOS Item Avatar/Thumbnail
|
||||
// --------------------------------------------------
|
||||
|
||||
::slotted(ion-avatar[slot="end"]),
|
||||
::slotted(ion-thumbnail[slot="end"]) {
|
||||
@include margin(($item-ios-padding-end * 0.5));
|
||||
|
||||
@@ -33,11 +33,8 @@ $item-ios-avatar-width: 36px !default;
|
||||
/// @prop - Height of the avatar in the item
|
||||
$item-ios-avatar-height: $item-ios-avatar-width !default;
|
||||
|
||||
/// @prop - Width of the thumbnail in the item
|
||||
$item-ios-thumbnail-width: 56px !default;
|
||||
|
||||
/// @prop - Height of the thumbnail in the item
|
||||
$item-ios-thumbnail-height: $item-ios-thumbnail-width !default;
|
||||
/// @prop - Size of the thumbnail in the item
|
||||
$item-ios-thumbnail-size: 56px !default;
|
||||
|
||||
/// @prop - Color of the detail arrow icon
|
||||
$item-ios-detail-icon-color: $item-ios-border-color !default;
|
||||
|
||||
@@ -258,7 +258,6 @@
|
||||
@include padding-horizontal($item-md-note-end-slot-padding-start, $item-md-note-end-slot-padding-end);
|
||||
}
|
||||
|
||||
|
||||
// Material Design Item Avatar
|
||||
// --------------------------------------------------
|
||||
|
||||
@@ -267,13 +266,11 @@
|
||||
height: $item-md-avatar-height;
|
||||
}
|
||||
|
||||
|
||||
// Material Design Item Thumbnail
|
||||
// --------------------------------------------------
|
||||
|
||||
::slotted(ion-thumbnail) {
|
||||
width: $item-md-thumbnail-width;
|
||||
height: $item-md-thumbnail-height;
|
||||
--size: #{$item-md-thumbnail-size};
|
||||
}
|
||||
|
||||
// Material Design Item Avatar/Thumbnail
|
||||
|
||||
@@ -18,11 +18,8 @@ $item-md-avatar-width: 40px !default;
|
||||
/// @prop - Height of the avatar in the item
|
||||
$item-md-avatar-height: $item-md-avatar-width !default;
|
||||
|
||||
/// @prop - Width of the thumbnail in the item
|
||||
$item-md-thumbnail-width: 56px !default;
|
||||
|
||||
/// @prop - Height of the thumbnail in the item
|
||||
$item-md-thumbnail-height: $item-md-thumbnail-width !default;
|
||||
/// @prop - Size of the thumbnail in the item
|
||||
$item-md-thumbnail-size: 56px !default;
|
||||
|
||||
/// @prop - Color of the detail arrow icon
|
||||
$item-md-detail-icon-color: $item-md-border-color !default;
|
||||
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |