mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d350a1719f | ||
|
|
b571881d6e | ||
|
|
1f0c8049a3 |
11
CHANGELOG.md
11
CHANGELOG.md
@@ -3,6 +3,17 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **react:** onDoubleClick fires on components ([#27611](https://github.com/ionic-team/ionic-framework/issues/27611)) ([3e191df](https://github.com/ionic-team/ionic-framework/commit/3e191df3dd43dcdd5a5f717166d4db9834340a2b)), closes [#21320](https://github.com/ionic-team/ionic-framework/issues/21320)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular
|
||||
|
||||
6
angular/package-lock.json
generated
6
angular/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/angular",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/angular",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.3.0"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/angular",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Angular specific wrappers for @ionic/core",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -47,7 +47,7 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0",
|
||||
"jsonc-parser": "^3.0.0",
|
||||
"tslib": "^2.3.0"
|
||||
|
||||
@@ -3,6 +3,17 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **react:** onDoubleClick fires on components ([#27611](https://github.com/ionic-team/ionic-framework/issues/27611)) ([3e191df](https://github.com/ionic-team/ionic-framework/commit/3e191df3dd43dcdd5a5f717166d4db9834340a2b)), closes [#21320](https://github.com/ionic-team/ionic-framework/issues/21320)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
|
||||
|
||||
52
core/package-lock.json
generated
52
core/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@ionic/core",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/core",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@stencil/core": "^3.3.1",
|
||||
@@ -14,11 +14,11 @@
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@axe-core/playwright": "^4.7.2",
|
||||
"@axe-core/playwright": "^4.7.3",
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
"@ionic/prettier-config": "^2.0.0",
|
||||
"@jest/core": "^27.5.1",
|
||||
"@playwright/test": "^1.34.3",
|
||||
"@playwright/test": "^1.35.0",
|
||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||
"@rollup/plugin-virtual": "^2.0.3",
|
||||
"@stencil/angular-output-target": "^0.7.1",
|
||||
@@ -53,9 +53,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@axe-core/playwright": {
|
||||
"version": "4.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.7.2.tgz",
|
||||
"integrity": "sha512-k5f6KGVkPsZ7wR56XnRZYS4b1Wd8wkVTpjqeScFYZMTJxKVv3FGKoBqQVBoCphWtP0oMWQc41zQgHO6gaYTcQw==",
|
||||
"version": "4.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.7.3.tgz",
|
||||
"integrity": "sha512-v2PRgAyGvop7bamrTpNJtc5b1R7giAPnMzZXrS/VDZBCY5+uwVYtCNgDvBsqp5P1QMZxUMoBN+CERJUTMjFN0A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"axe-core": "^4.7.0"
|
||||
@@ -1501,19 +1501,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz",
|
||||
"integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==",
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.0.tgz",
|
||||
"integrity": "sha512-6qXdd5edCBynOwsz1YcNfgX8tNWeuS9fxy5o59D0rvHXxRtjXRebB4gE4vFVfEMXl/z8zTnAzfOs7aQDEs8G4Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"playwright-core": "1.34.3"
|
||||
"playwright-core": "1.35.0"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
"node": ">=16"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "2.3.2"
|
||||
@@ -8150,15 +8150,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz",
|
||||
"integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==",
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.0.tgz",
|
||||
"integrity": "sha512-muMXyPmIx/2DPrCHOD1H1ePT01o7OdKxKj2ebmCAYvqhUy+Y1bpal7B0rdoxros7YrXI294JT/DWw2LqyiqTPA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
@@ -10335,9 +10335,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@axe-core/playwright": {
|
||||
"version": "4.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.7.2.tgz",
|
||||
"integrity": "sha512-k5f6KGVkPsZ7wR56XnRZYS4b1Wd8wkVTpjqeScFYZMTJxKVv3FGKoBqQVBoCphWtP0oMWQc41zQgHO6gaYTcQw==",
|
||||
"version": "4.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.7.3.tgz",
|
||||
"integrity": "sha512-v2PRgAyGvop7bamrTpNJtc5b1R7giAPnMzZXrS/VDZBCY5+uwVYtCNgDvBsqp5P1QMZxUMoBN+CERJUTMjFN0A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"axe-core": "^4.7.0"
|
||||
@@ -11381,14 +11381,14 @@
|
||||
}
|
||||
},
|
||||
"@playwright/test": {
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.34.3.tgz",
|
||||
"integrity": "sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==",
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.35.0.tgz",
|
||||
"integrity": "sha512-6qXdd5edCBynOwsz1YcNfgX8tNWeuS9fxy5o59D0rvHXxRtjXRebB4gE4vFVfEMXl/z8zTnAzfOs7aQDEs8G4Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"fsevents": "2.3.2",
|
||||
"playwright-core": "1.34.3"
|
||||
"playwright-core": "1.35.0"
|
||||
}
|
||||
},
|
||||
"@rollup/plugin-node-resolve": {
|
||||
@@ -16258,9 +16258,9 @@
|
||||
}
|
||||
},
|
||||
"playwright-core": {
|
||||
"version": "1.34.3",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.34.3.tgz",
|
||||
"integrity": "sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==",
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.35.0.tgz",
|
||||
"integrity": "sha512-muMXyPmIx/2DPrCHOD1H1ePT01o7OdKxKj2ebmCAYvqhUy+Y1bpal7B0rdoxros7YrXI294JT/DWw2LqyiqTPA==",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/core",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Base components for Ionic",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -36,11 +36,11 @@
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@axe-core/playwright": "^4.7.2",
|
||||
"@axe-core/playwright": "^4.7.3",
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
"@ionic/prettier-config": "^2.0.0",
|
||||
"@jest/core": "^27.5.1",
|
||||
"@playwright/test": "^1.34.3",
|
||||
"@playwright/test": "^1.35.0",
|
||||
"@rollup/plugin-node-resolve": "^8.4.0",
|
||||
"@rollup/plugin-virtual": "^2.0.3",
|
||||
"@stencil/angular-output-target": "^0.7.1",
|
||||
|
||||
@@ -11,13 +11,6 @@
|
||||
<link href="../../../../../scripts/testing/styles.css" rel="stylesheet" />
|
||||
<script src="../../../../../scripts/testing/scripts.js"></script>
|
||||
<script type="module" src="../../../../../dist/ionic/ionic.esm.js"></script>
|
||||
|
||||
<script type="module">
|
||||
import * as motion from 'https://esm.run/motion';
|
||||
|
||||
window.motionOne = motion;
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -30,47 +23,25 @@
|
||||
|
||||
<ion-content class="ion-padding">
|
||||
<ion-button id="default">Open Alert</ion-button>
|
||||
<ion-button id="timeout">Open Alert, Close After 500ms</ion-button>
|
||||
|
||||
<ion-alert id="custom-alert" trigger="default" header="Alert" message="Hello World!"></ion-alert>
|
||||
<ion-alert id="default-alert" trigger="default" header="Alert" message="Hello World!"></ion-alert>
|
||||
<ion-alert id="timeout-alert" trigger="timeout" header="Alert" message="Hello World!"></ion-alert>
|
||||
</ion-content>
|
||||
</ion-app>
|
||||
|
||||
<script>
|
||||
const customAlert = document.querySelector('#custom-alert');
|
||||
const defaultAlert = document.querySelector('#default-alert');
|
||||
const timeoutAlert = document.querySelector('#timeout-alert');
|
||||
|
||||
customAlert.enterAnimation = async (el, opts, done) => {
|
||||
const { animate } = window.motionOne;
|
||||
const backdropAni = animate('#custom-alert ion-backdrop', {
|
||||
opacity: 'var(--backdrop-opacity)'
|
||||
});
|
||||
defaultAlert.buttons = ['OK'];
|
||||
timeoutAlert.buttons = ['OK'];
|
||||
|
||||
const wrapperAni = animate('#custom-alert .alert-wrapper', {
|
||||
opacity: 1,
|
||||
transform: ['scale(1.5)', 'scale(1)']
|
||||
})
|
||||
|
||||
await Promise.all([wrapperAni.finished, backdropAni.finished]);
|
||||
|
||||
done();
|
||||
}
|
||||
|
||||
customAlert.leaveAnimation = async (el, opts, done) => {
|
||||
const { animate } = window.motionOne;
|
||||
const backdropAni = animate('#custom-alert ion-backdrop', {
|
||||
opacity: 0
|
||||
});
|
||||
|
||||
const wrapperAni = animate('#custom-alert .alert-wrapper', {
|
||||
opacity: 0,
|
||||
transform: 'scale(0.5)'
|
||||
})
|
||||
|
||||
await Promise.all([wrapperAni.finished, backdropAni.finished]);
|
||||
|
||||
done();
|
||||
}
|
||||
|
||||
customAlert.buttons = ['OK'];
|
||||
timeoutAlert.addEventListener('didPresent', () => {
|
||||
setTimeout(() => {
|
||||
timeoutAlert.dismiss();
|
||||
}, 500);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -17,8 +17,7 @@ const createLeaveAnimation = () => {
|
||||
/**
|
||||
* iOS Modal Leave Animation
|
||||
*/
|
||||
export const iosLeaveAnimation = (baseEl: HTMLElement, opts: ModalAnimationOptions): Animation => {
|
||||
const duration = 500;
|
||||
export const iosLeaveAnimation = (baseEl: HTMLElement, opts: ModalAnimationOptions, duration = 500): Animation => {
|
||||
const { presentingEl, currentBreakpoint } = opts;
|
||||
const root = getElementRoot(baseEl);
|
||||
const { wrapperAnimation, backdropAnimation } =
|
||||
|
||||
@@ -479,9 +479,7 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
||||
presentingEl: presentingElement,
|
||||
currentBreakpoint: this.initialBreakpoint,
|
||||
backdropBreakpoint: this.backdropBreakpoint,
|
||||
backdropElement: this.backdropEl,
|
||||
wrapperElement: this.wrapperEl
|
||||
} as any);
|
||||
});
|
||||
|
||||
/* tslint:disable-next-line */
|
||||
if (typeof window !== 'undefined') {
|
||||
@@ -704,9 +702,7 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
||||
presentingEl: presentingElement,
|
||||
currentBreakpoint: this.currentBreakpoint ?? this.initialBreakpoint,
|
||||
backdropBreakpoint: this.backdropBreakpoint,
|
||||
backdropElement: this.backdropEl,
|
||||
wrapperElement: this.wrapperEl
|
||||
} as any
|
||||
}
|
||||
);
|
||||
|
||||
const dismissed = await this.currentTransition;
|
||||
|
||||
@@ -33,11 +33,6 @@
|
||||
margin-left: 5px;
|
||||
}
|
||||
</style>
|
||||
<script type="module">
|
||||
import * as motion from 'https://esm.run/motion';
|
||||
|
||||
window.motionOne = motion;
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<ion-app>
|
||||
@@ -52,50 +47,12 @@
|
||||
<div class="grid-item">
|
||||
<h2>Click</h2>
|
||||
<ion-button id="left-click-trigger">Trigger</ion-button>
|
||||
<ion-modal id="custom-modal" trigger="left-click-trigger">
|
||||
<ion-modal class="left-click-modal" trigger="left-click-trigger">
|
||||
<ion-content class="ion-padding"> Modal Content </ion-content>
|
||||
</ion-modal>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-app>
|
||||
|
||||
<script>
|
||||
const customModal = document.querySelector('#custom-modal');
|
||||
|
||||
customModal.enterAnimation = async (el, opts, done) => {
|
||||
const { backdropElement, wrapperElement } = opts;
|
||||
const { animate } = window.motionOne;
|
||||
const backdropAni = animate(backdropElement, {
|
||||
opacity: 'var(--backdrop-opacity)'
|
||||
});
|
||||
|
||||
const wrapperAni = animate(wrapperElement, {
|
||||
opacity: 1,
|
||||
transform: ['scale(1.5)', 'scale(1)']
|
||||
})
|
||||
|
||||
await Promise.all([wrapperAni.finished, backdropAni.finished]);
|
||||
|
||||
done();
|
||||
}
|
||||
|
||||
customModal.leaveAnimation = async (el, opts, done) => {
|
||||
const { backdropElement, wrapperElement } = opts;
|
||||
const { animate } = window.motionOne;
|
||||
const backdropAni = animate(backdropElement, {
|
||||
opacity: 0
|
||||
});
|
||||
|
||||
const wrapperAni = animate(wrapperElement, {
|
||||
opacity: 0,
|
||||
transform: 'scale(0.5)'
|
||||
})
|
||||
|
||||
await Promise.all([wrapperAni.finished, backdropAni.finished]);
|
||||
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,11 +12,6 @@
|
||||
<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>
|
||||
<script type="module">
|
||||
import * as motion from 'https://esm.run/motion';
|
||||
|
||||
window.motionOne = motion;
|
||||
</script>
|
||||
<script>
|
||||
class PageOne extends HTMLElement {
|
||||
connectedCallback() {
|
||||
@@ -132,26 +127,5 @@
|
||||
|
||||
<script>
|
||||
document.querySelector('ion-route[component=page-three]').componentProps = { param: 'route' };
|
||||
|
||||
const routerOutlet = document.querySelector('ion-router-outlet');
|
||||
|
||||
routerOutlet.animation = async (el, opts, done) => {
|
||||
const { enteringEl, leavingEl, direction } = opts;
|
||||
const { animate, spring } = window.motionOne;
|
||||
const enteringAni = animate(enteringEl, {
|
||||
opacity: [1, 1],
|
||||
x: ['100%', '0%']
|
||||
}, { easing: spring() });
|
||||
|
||||
const leavingAni = animate(leavingEl, {
|
||||
opacity: [1, 1],
|
||||
easing: spring(),
|
||||
x: '-100%'
|
||||
}, { easing: spring() })
|
||||
|
||||
await Promise.all([enteringAni.finished, leavingAni.finished]);
|
||||
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
||||
@@ -264,4 +264,4 @@ export type AnimationPlayTo = 'start' | 'end';
|
||||
export type AnimationDirection = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';
|
||||
export type AnimationFill = 'auto' | 'none' | 'forwards' | 'backwards' | 'both';
|
||||
|
||||
export type AnimationBuilder = (baseEl: any, opts?: any, done?: () => void) => Animation;
|
||||
export type AnimationBuilder = (baseEl: any, opts?: any) => Animation;
|
||||
|
||||
@@ -583,35 +583,26 @@ const overlayAnimation = async (
|
||||
baseEl.classList.remove('overlay-hidden');
|
||||
|
||||
const aniRoot = overlay.el;
|
||||
const animation = animationBuilder(aniRoot, opts);
|
||||
|
||||
let resolvePromise;
|
||||
let promise = new Promise((resolve) => {
|
||||
resolvePromise = () => { resolve(true) };
|
||||
})
|
||||
|
||||
const animation = animationBuilder(aniRoot, opts, resolvePromise);
|
||||
if (animation.beforeAddWrite === undefined) {
|
||||
await promise;
|
||||
} else {
|
||||
if (!overlay.animated || !config.getBoolean('animated', true)) {
|
||||
animation.duration(0);
|
||||
}
|
||||
|
||||
if (overlay.keyboardClose) {
|
||||
animation.beforeAddWrite(() => {
|
||||
const activeElement = baseEl.ownerDocument!.activeElement as HTMLElement;
|
||||
if (activeElement?.matches('input,ion-input, ion-textarea')) {
|
||||
activeElement.blur();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const activeAni = activeAnimations.get(overlay) || [];
|
||||
activeAnimations.set(overlay, [...activeAni, animation]);
|
||||
|
||||
await animation.play();
|
||||
if (!overlay.animated || !config.getBoolean('animated', true)) {
|
||||
animation.duration(0);
|
||||
}
|
||||
|
||||
if (overlay.keyboardClose) {
|
||||
animation.beforeAddWrite(() => {
|
||||
const activeElement = baseEl.ownerDocument!.activeElement as HTMLElement;
|
||||
if (activeElement?.matches('input,ion-input, ion-textarea')) {
|
||||
activeElement.blur();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const activeAni = activeAnimations.get(overlay) || [];
|
||||
activeAnimations.set(overlay, [...activeAni, animation]);
|
||||
|
||||
await animation.play();
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ export const transition = (opts: TransitionOptions): Promise<TransitionResult> =
|
||||
beforeTransition(opts);
|
||||
runTransition(opts).then(
|
||||
(result) => {
|
||||
if (result.animation && result.animation.destroy) {
|
||||
if (result.animation) {
|
||||
result.animation.destroy();
|
||||
}
|
||||
afterTransition(opts);
|
||||
@@ -102,9 +102,11 @@ const getAnimationBuilder = async (opts: TransitionOptions): Promise<AnimationBu
|
||||
const animation = async (animationBuilder: AnimationBuilder, opts: TransitionOptions): Promise<TransitionResult> => {
|
||||
await waitForReady(opts, true);
|
||||
|
||||
const trans = animationBuilder(opts.baseEl, opts);
|
||||
|
||||
fireWillEvents(opts.enteringEl, opts.leavingEl);
|
||||
|
||||
const { animation, didComplete } = await playTransition(animationBuilder, opts);
|
||||
const didComplete = await playTransition(trans, opts);
|
||||
|
||||
if (opts.progressCallback) {
|
||||
opts.progressCallback(undefined);
|
||||
@@ -116,7 +118,7 @@ const animation = async (animationBuilder: AnimationBuilder, opts: TransitionOpt
|
||||
|
||||
return {
|
||||
hasCompleted: didComplete,
|
||||
animation,
|
||||
animation: trans,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -153,42 +155,27 @@ const notifyViewReady = async (
|
||||
}
|
||||
};
|
||||
|
||||
const playTransition = async (animationBuilder: AnimationBuilder, opts: TransitionOptions): Promise<{ animation: Animation, didComplete: boolean}> => {
|
||||
const playTransition = (trans: Animation, opts: TransitionOptions): Promise<boolean> => {
|
||||
const progressCallback = opts.progressCallback;
|
||||
|
||||
let resolvePromise;
|
||||
let promise: Promise<boolean> = new Promise((resolve) => {
|
||||
resolvePromise = () => { resolve(true) };
|
||||
})
|
||||
const promise = new Promise<boolean>((resolve) => {
|
||||
trans.onFinish((currentStep: any) => resolve(currentStep === 1));
|
||||
});
|
||||
|
||||
const animation = animationBuilder(opts.baseEl, opts, resolvePromise);
|
||||
|
||||
let didComplete = false;
|
||||
if (animation.beforeAddWrite === undefined) {
|
||||
didComplete = await promise;
|
||||
// cool, let's do this, start the transition
|
||||
if (progressCallback) {
|
||||
// this is a swipe to go back, just get the transition progress ready
|
||||
// kick off the swipe animation start
|
||||
trans.progressStart(true);
|
||||
progressCallback(trans);
|
||||
} else {
|
||||
const progressCallback = opts.progressCallback;
|
||||
|
||||
promise = new Promise<boolean>((resolve) => {
|
||||
animation.onFinish((currentStep: any) => resolve(currentStep === 1));
|
||||
});
|
||||
|
||||
// cool, let's do this, start the transition
|
||||
if (progressCallback) {
|
||||
// this is a swipe to go back, just get the transition progress ready
|
||||
// kick off the swipe animation start
|
||||
animation.progressStart(true);
|
||||
progressCallback(animation);
|
||||
} else {
|
||||
// only the top level transition should actually start "play"
|
||||
// kick it off and let it play through
|
||||
// ******** DOM WRITE ****************
|
||||
animation.play();
|
||||
didComplete = await promise;
|
||||
}
|
||||
// only the top level transition should actually start "play"
|
||||
// kick it off and let it play through
|
||||
// ******** DOM WRITE ****************
|
||||
trans.play();
|
||||
}
|
||||
|
||||
// create a callback for when the animation is done
|
||||
return { didComplete, animation };
|
||||
return promise;
|
||||
};
|
||||
|
||||
const fireWillEvents = (enteringEl: HTMLElement | undefined, leavingEl: HTMLElement | undefined) => {
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/docs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/docs
|
||||
|
||||
4
docs/package-lock.json
generated
4
docs/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@ionic/docs",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/docs",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/docs",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Pre-packaged API documentation for the Ionic docs.",
|
||||
"main": "core.json",
|
||||
"types": "core.d.ts",
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"angular",
|
||||
"packages/*"
|
||||
],
|
||||
"version": "7.0.12"
|
||||
"version": "7.0.13"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular-server
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/angular-server
|
||||
|
||||
6
packages/angular-server/package-lock.json
generated
6
packages/angular-server/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/angular-server",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/angular-server",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12"
|
||||
"@ionic/core": "^7.0.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-eslint/eslint-plugin": "^14.0.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/angular-server",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Angular SSR Module for Ionic",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -61,6 +61,6 @@
|
||||
},
|
||||
"prettier": "@ionic/prettier-config",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12"
|
||||
"@ionic/core": "^7.0.13"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/react-router
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/react-router
|
||||
|
||||
6
packages/react-router/package-lock.json
generated
6
packages/react-router/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/react-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/react-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/react": "^7.0.12",
|
||||
"@ionic/react": "^7.0.13",
|
||||
"tslib": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/react-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "React Router wrapper for @ionic/react",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -37,7 +37,7 @@
|
||||
"dist/"
|
||||
],
|
||||
"dependencies": {
|
||||
"@ionic/react": "^7.0.12",
|
||||
"@ionic/react": "^7.0.13",
|
||||
"tslib": "*"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -3,6 +3,17 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **react:** onDoubleClick fires on components ([#27611](https://github.com/ionic-team/ionic-framework/issues/27611)) ([3e191df](https://github.com/ionic-team/ionic-framework/commit/3e191df3dd43dcdd5a5f717166d4db9834340a2b)), closes [#21320](https://github.com/ionic-team/ionic-framework/issues/21320)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/react
|
||||
|
||||
6
packages/react/package-lock.json
generated
6
packages/react/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/react",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/react",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0",
|
||||
"tslib": "*"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/react",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "React specific wrapper for @ionic/core",
|
||||
"keywords": [
|
||||
"ionic",
|
||||
@@ -41,7 +41,7 @@
|
||||
"css/"
|
||||
],
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0",
|
||||
"tslib": "*"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/vue-router
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/vue-router
|
||||
|
||||
6
packages/vue-router/package-lock.json
generated
6
packages/vue-router/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/vue-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/vue-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/vue": "^7.0.12"
|
||||
"@ionic/vue": "^7.0.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/vue-router",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Vue Router integration for @ionic/vue",
|
||||
"scripts": {
|
||||
"test.spec": "jest",
|
||||
@@ -45,7 +45,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/ionic-team/ionic#readme",
|
||||
"dependencies": {
|
||||
"@ionic/vue": "^7.0.12"
|
||||
"@ionic/vue": "^7.0.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ionic/eslint-config": "^0.3.0",
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [7.0.13](https://github.com/ionic-team/ionic-framework/compare/v7.0.12...v7.0.13) (2023-06-14)
|
||||
|
||||
**Note:** Version bump only for package @ionic/vue
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [7.0.12](https://github.com/ionic-team/ionic-framework/compare/v7.0.11...v7.0.12) (2023-06-08)
|
||||
|
||||
**Note:** Version bump only for package @ionic/vue
|
||||
|
||||
6
packages/vue/package-lock.json
generated
6
packages/vue/package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@ionic/vue",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@ionic/vue",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/vue",
|
||||
"version": "7.0.12",
|
||||
"version": "7.0.13",
|
||||
"description": "Vue specific wrapper for @ionic/core",
|
||||
"scripts": {
|
||||
"eslint": "eslint src",
|
||||
@@ -66,7 +66,7 @@
|
||||
"vue-router": "^4.0.16"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ionic/core": "^7.0.12",
|
||||
"@ionic/core": "^7.0.13",
|
||||
"ionicons": "^7.0.0"
|
||||
},
|
||||
"vetur": {
|
||||
|
||||
Reference in New Issue
Block a user