mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 03:00:58 +08:00
merge release-6.5.7
Release 6.5.7
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@ -3,6 +3,19 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic-framework/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **content:** fullscreen values are recomputed on visible content ([#26847](https://github.com/ionic-team/ionic-framework/issues/26847)) ([6dcd98b](https://github.com/ionic-team/ionic-framework/commit/6dcd98b26ab8fd3bf0092416d613bf051fbdeacf)), closes [#26844](https://github.com/ionic-team/ionic-framework/issues/26844)
|
||||||
|
* **modal:** keyboard listener removed on dismiss ([#26856](https://github.com/ionic-team/ionic-framework/issues/26856)) ([b4bcba3](https://github.com/ionic-team/ionic-framework/commit/b4bcba353386b4d5d8d396e61ece421a15d42ff0))
|
||||||
|
* **overlays:** focus trap refs cleared on dismiss ([#26855](https://github.com/ionic-team/ionic-framework/issues/26855)) ([8d1d0fa](https://github.com/ionic-team/ionic-framework/commit/8d1d0fa0c7a42a3c21a471131ba454774b26c314))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic-framework/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic-framework/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/angular
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/angular
|
**Note:** Version bump only for package @ionic/angular
|
||||||
|
18
angular/package-lock.json
generated
18
angular/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
@ -1006,9 +1006,9 @@
|
|||||||
"license": "BSD-3-Clause"
|
"license": "BSD-3-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -7335,9 +7335,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular",
|
"name": "@ionic/angular",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Angular specific wrappers for @ionic/core",
|
"description": "Angular specific wrappers for @ionic/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"validate": "npm i && npm run lint && npm run test && npm run build"
|
"validate": "npm i && npm run lint && npm run test && npm run build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"jsonc-parser": "^3.0.0",
|
"jsonc-parser": "^3.0.0",
|
||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
|
@ -3,6 +3,19 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **content:** fullscreen values are recomputed on visible content ([#26847](https://github.com/ionic-team/ionic/issues/26847)) ([6dcd98b](https://github.com/ionic-team/ionic/commit/6dcd98b26ab8fd3bf0092416d613bf051fbdeacf)), closes [#26844](https://github.com/ionic-team/ionic/issues/26844)
|
||||||
|
* **modal:** keyboard listener removed on dismiss ([#26856](https://github.com/ionic-team/ionic/issues/26856)) ([b4bcba3](https://github.com/ionic-team/ionic/commit/b4bcba353386b4d5d8d396e61ece421a15d42ff0))
|
||||||
|
* **overlays:** focus trap refs cleared on dismiss ([#26855](https://github.com/ionic-team/ionic/issues/26855)) ([8d1d0fa](https://github.com/ionic-team/ionic/commit/8d1d0fa0c7a42a3c21a471131ba454774b26c314))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
|
|
||||||
|
4
core/package-lock.json
generated
4
core/package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Base components for Ionic",
|
"description": "Base components for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
|
@ -149,6 +149,16 @@ export class Content implements ComponentInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.resizeTimeout = setTimeout(() => {
|
this.resizeTimeout = setTimeout(() => {
|
||||||
|
/**
|
||||||
|
* Resize should only happen
|
||||||
|
* if the content is visible.
|
||||||
|
* When the content is hidden
|
||||||
|
* then offsetParent will be null.
|
||||||
|
*/
|
||||||
|
if (this.el.offsetParent === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.resize();
|
this.resize();
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
@ -108,45 +108,42 @@ test.describe('datetime: presentation', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: FW-3018
|
test.describe('datetime: presentation: time', () => {
|
||||||
test.skip('datetime: presentation: time', () => {
|
test.beforeEach(async ({ skip }) => {
|
||||||
let timePickerFixture: TimePickerFixture;
|
skip.rtl();
|
||||||
|
skip.mode('md');
|
||||||
test.beforeEach(async ({ page }) => {
|
|
||||||
timePickerFixture = new TimePickerFixture(page);
|
|
||||||
await timePickerFixture.goto();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('changing value from AM to AM should update the text', async () => {
|
test('changing value from AM to AM should update the text', async ({ page }) => {
|
||||||
await timePickerFixture.setValue('04:20:00');
|
const timePickerFixture = new TimePickerFixture(page);
|
||||||
await timePickerFixture.expectTime('4', '20', 'AM');
|
await timePickerFixture.goto('04:20:00');
|
||||||
|
|
||||||
await timePickerFixture.setValue('11:03:00');
|
await timePickerFixture.setValue('11:03:00');
|
||||||
await timePickerFixture.expectTime('11', '03', 'AM');
|
await timePickerFixture.expectTime(11, 3, 'am');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('changing value from AM to PM should update the text', async () => {
|
test('changing value from AM to PM should update the text', async ({ page }) => {
|
||||||
await timePickerFixture.setValue('05:30:00');
|
const timePickerFixture = new TimePickerFixture(page);
|
||||||
await timePickerFixture.expectTime('5', '30', 'AM');
|
await timePickerFixture.goto('05:30:00');
|
||||||
|
|
||||||
await timePickerFixture.setValue('16:40:00');
|
await timePickerFixture.setValue('16:40:00');
|
||||||
await timePickerFixture.expectTime('4', '40', 'PM');
|
await timePickerFixture.expectTime(16, 40, 'pm');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('changing the value from PM to AM should update the text', async () => {
|
test('changing the value from PM to AM should update the text', async ({ page }) => {
|
||||||
await timePickerFixture.setValue('16:40:00');
|
const timePickerFixture = new TimePickerFixture(page);
|
||||||
await timePickerFixture.expectTime('4', '40', 'PM');
|
await timePickerFixture.goto('16:40:00');
|
||||||
|
|
||||||
await timePickerFixture.setValue('04:20:00');
|
await timePickerFixture.setValue('04:20:00');
|
||||||
await timePickerFixture.expectTime('4', '20', 'AM');
|
await timePickerFixture.expectTime(4, 20, 'am');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('changing the value from PM to PM should update the text', async () => {
|
test('changing the value from PM to PM should update the text', async ({ page }) => {
|
||||||
await timePickerFixture.setValue('16:40:00');
|
const timePickerFixture = new TimePickerFixture(page);
|
||||||
await timePickerFixture.expectTime('4', '40', 'PM');
|
await timePickerFixture.goto('16:40:00');
|
||||||
|
|
||||||
await timePickerFixture.setValue('19:32:00');
|
await timePickerFixture.setValue('19:32:00');
|
||||||
await timePickerFixture.expectTime('7', '32', 'PM');
|
await timePickerFixture.expectTime(19, 32, 'pm');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -159,35 +156,27 @@ class TimePickerFixture {
|
|||||||
this.page = page;
|
this.page = page;
|
||||||
}
|
}
|
||||||
|
|
||||||
async goto() {
|
async goto(value: string) {
|
||||||
await this.page.setContent(`
|
await this.page.setContent(`
|
||||||
<ion-datetime presentation="time" value="2022-03-10T13:00:00"></ion-datetime>
|
<ion-datetime presentation="time" value="${value}"></ion-datetime>
|
||||||
`);
|
`);
|
||||||
await this.page.waitForSelector('.datetime-ready');
|
await this.page.waitForSelector('.datetime-ready');
|
||||||
this.timePicker = this.page.locator('ion-datetime');
|
this.timePicker = this.page.locator('ion-datetime');
|
||||||
}
|
}
|
||||||
|
|
||||||
async setValue(value: string) {
|
async setValue(value: string) {
|
||||||
const ionChange = await this.page.spyOnEvent('ionChange');
|
|
||||||
await this.timePicker.evaluate((el: HTMLIonDatetimeElement, newValue: string) => {
|
await this.timePicker.evaluate((el: HTMLIonDatetimeElement, newValue: string) => {
|
||||||
el.value = newValue;
|
el.value = newValue;
|
||||||
}, value);
|
}, value);
|
||||||
|
|
||||||
await ionChange.next();
|
await this.page.waitForChanges();
|
||||||
|
|
||||||
// Changing the value can take longer than the default 100ms to repaint
|
|
||||||
await this.page.waitForChanges(300);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async expectTime(hour: string, minute: string, ampm: string) {
|
async expectTime(hour: number, minute: number, ampm: string) {
|
||||||
expect(
|
const pickerColumns = this.timePicker.locator('ion-picker-column-internal');
|
||||||
await this.timePicker.locator('ion-picker-column-internal:nth-child(1) .picker-item-active').textContent()
|
|
||||||
).toBe(hour);
|
await expect(pickerColumns.nth(0)).toHaveJSProperty('value', hour);
|
||||||
expect(
|
await expect(pickerColumns.nth(1)).toHaveJSProperty('value', minute);
|
||||||
await this.timePicker.locator('ion-picker-column-internal:nth-child(2) .picker-item-active').textContent()
|
await expect(pickerColumns.nth(2)).toHaveJSProperty('value', ampm);
|
||||||
).toBe(minute);
|
|
||||||
expect(
|
|
||||||
await this.timePicker.locator('ion-picker-column-internal:nth-child(3) .picker-item-active').textContent()
|
|
||||||
).toBe(ampm);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -333,7 +333,7 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
|||||||
if (this.gesture) {
|
if (this.gesture) {
|
||||||
this.gesture.enable(enable);
|
this.gesture.enable(enable);
|
||||||
} else if (enable) {
|
} else if (enable) {
|
||||||
await this.initSwipeToClose();
|
this.initSwipeToClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -532,6 +532,38 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
|||||||
backdropBreakpoint: this.backdropBreakpoint,
|
backdropBreakpoint: this.backdropBreakpoint,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* tslint:disable-next-line */
|
||||||
|
if (typeof window !== 'undefined') {
|
||||||
|
/**
|
||||||
|
* This needs to be setup before any
|
||||||
|
* non-transition async work so it can be dereferenced
|
||||||
|
* in the dismiss method. The dismiss method
|
||||||
|
* only waits for the entering transition
|
||||||
|
* to finish. It does not wait for all of the `present`
|
||||||
|
* method to resolve.
|
||||||
|
*/
|
||||||
|
this.keyboardOpenCallback = () => {
|
||||||
|
if (this.gesture) {
|
||||||
|
/**
|
||||||
|
* When the native keyboard is opened and the webview
|
||||||
|
* is resized, the gesture implementation will become unresponsive
|
||||||
|
* and enter a free-scroll mode.
|
||||||
|
*
|
||||||
|
* When the keyboard is opened, we disable the gesture for
|
||||||
|
* a single frame and re-enable once the contents have repositioned
|
||||||
|
* from the keyboard placement.
|
||||||
|
*/
|
||||||
|
this.gesture.enable(false);
|
||||||
|
raf(() => {
|
||||||
|
if (this.gesture) {
|
||||||
|
this.gesture.enable(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO (FW-937) - In the next major release of Ionic, all card modals
|
* TODO (FW-937) - In the next major release of Ionic, all card modals
|
||||||
* will be swipeable by default. canDismiss will be used to determine if the
|
* will be swipeable by default. canDismiss will be used to determine if the
|
||||||
@ -559,31 +591,7 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
|||||||
if (this.isSheetModal) {
|
if (this.isSheetModal) {
|
||||||
this.initSheetGesture();
|
this.initSheetGesture();
|
||||||
} else if (hasCardModal) {
|
} else if (hasCardModal) {
|
||||||
await this.initSwipeToClose();
|
this.initSwipeToClose();
|
||||||
}
|
|
||||||
|
|
||||||
/* tslint:disable-next-line */
|
|
||||||
if (typeof window !== 'undefined') {
|
|
||||||
this.keyboardOpenCallback = () => {
|
|
||||||
if (this.gesture) {
|
|
||||||
/**
|
|
||||||
* When the native keyboard is opened and the webview
|
|
||||||
* is resized, the gesture implementation will become unresponsive
|
|
||||||
* and enter a free-scroll mode.
|
|
||||||
*
|
|
||||||
* When the keyboard is opened, we disable the gesture for
|
|
||||||
* a single frame and re-enable once the contents have repositioned
|
|
||||||
* from the keyboard placement.
|
|
||||||
*/
|
|
||||||
this.gesture.enable(false);
|
|
||||||
raf(() => {
|
|
||||||
if (this.gesture) {
|
|
||||||
this.gesture.enable(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.currentTransition = undefined;
|
this.currentTransition = undefined;
|
||||||
@ -725,6 +733,7 @@ export class Modal implements ComponentInterface, OverlayInterface {
|
|||||||
/* tslint:disable-next-line */
|
/* tslint:disable-next-line */
|
||||||
if (typeof window !== 'undefined' && this.keyboardOpenCallback) {
|
if (typeof window !== 'undefined' && this.keyboardOpenCallback) {
|
||||||
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
||||||
|
this.keyboardOpenCallback = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { expect } from '@playwright/test';
|
import { expect } from '@playwright/test';
|
||||||
import type { E2EPage } from '@utils/test/playwright';
|
|
||||||
import { test } from '@utils/test/playwright';
|
import { test } from '@utils/test/playwright';
|
||||||
|
|
||||||
import { openPopover, screenshotPopover } from '../test.utils';
|
import { openPopover, screenshotPopover } from '../test.utils';
|
||||||
@ -38,145 +37,93 @@ test.describe('popover: focus trap', async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('should focus the first ion-item on ArrowDown', async ({ page }) => {
|
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 openPopover(page, 'basic-popover');
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowDown');
|
||||||
await expectActiveElementTextToEqual(page, 'Item 0');
|
await expect(item0).toBeFocused();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should trap focus', async ({ page, browserName }) => {
|
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 openPopover(page, 'basic-popover');
|
||||||
|
|
||||||
await page.keyboard.press('Tab');
|
await page.keyboard.press(tabKey);
|
||||||
|
await expect(items.nth(0)).toBeFocused();
|
||||||
|
|
||||||
await expectActiveElementTextToEqual(page, 'Item 0');
|
await page.keyboard.press(`Shift+${tabKey}`);
|
||||||
|
await expect(items.nth(3)).toBeFocused();
|
||||||
|
|
||||||
await page.keyboard.down('Shift');
|
await page.keyboard.press(tabKey);
|
||||||
if (browserName === 'webkit') {
|
await expect(items.nth(0)).toBeFocused();
|
||||||
await page.keyboard.down('Alt');
|
|
||||||
}
|
|
||||||
await page.keyboard.press('Tab');
|
|
||||||
await page.keyboard.up('Shift');
|
|
||||||
if (browserName === 'webkit') {
|
|
||||||
await page.keyboard.up('Alt');
|
|
||||||
}
|
|
||||||
|
|
||||||
await expectActiveElementTextToEqual(page, 'Item 3');
|
|
||||||
|
|
||||||
await page.keyboard.press('Tab');
|
|
||||||
|
|
||||||
await expectActiveElementTextToEqual(page, 'Item 0');
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowDown');
|
||||||
|
await expect(items.nth(1)).toBeFocused();
|
||||||
await expectActiveElementTextToEqual(page, 'Item 1');
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowDown');
|
||||||
|
await expect(items.nth(2)).toBeFocused();
|
||||||
await expectActiveElementTextToEqual(page, 'Item 2');
|
|
||||||
|
|
||||||
await page.keyboard.press('Home');
|
await page.keyboard.press('Home');
|
||||||
|
await expect(items.nth(0)).toBeFocused();
|
||||||
await expectActiveElementTextToEqual(page, 'Item 0');
|
|
||||||
|
|
||||||
await page.keyboard.press('End');
|
await page.keyboard.press('End');
|
||||||
|
await expect(items.nth(3)).toBeFocused();
|
||||||
await expectActiveElementTextToEqual(page, 'Item 3');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should not override keyboard interactions for textarea elements', async ({ page, browserName }) => {
|
test('should not override keyboard interactions for textarea elements', async ({ page, browserName }) => {
|
||||||
await openPopover(page, 'popover-with-textarea');
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
||||||
await page.waitForFunction(() => document.activeElement?.tagName === 'ION-POPOVER');
|
const popover = page.locator('ion-popover');
|
||||||
|
const innerNativeTextarea = page.locator('ion-textarea textarea');
|
||||||
|
const vanillaTextarea = page.locator('ion-textarea + textarea');
|
||||||
|
|
||||||
await page.keyboard.press('Tab');
|
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
|
// for Firefox, ion-textarea is focused first
|
||||||
// need to tab again to get to native input
|
// need to tab again to get to native input
|
||||||
if (browserName === 'firefox') {
|
if (browserName === 'firefox') {
|
||||||
await page.keyboard.press('Tab');
|
await page.keyboard.press(tabKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeElementTagName = await page.evaluate(() => document.activeElement!.tagName);
|
await expect(innerNativeTextarea).toBeFocused();
|
||||||
let scrollTop = null;
|
|
||||||
let selectionStart = null;
|
|
||||||
let previousSelectionStart = null;
|
|
||||||
|
|
||||||
// This is the native textarea within ion-textarea
|
|
||||||
expect(activeElementTagName).toBe('TEXTAREA');
|
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
|
||||||
expect(selectionStart).toBe(0);
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowDown');
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
await expect(innerNativeTextarea).toBeFocused();
|
||||||
expect(selectionStart).toBeGreaterThan(0);
|
|
||||||
previousSelectionStart = selectionStart;
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowUp');
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
await expect(innerNativeTextarea).toBeFocused();
|
||||||
expect(selectionStart).toBeGreaterThan(previousSelectionStart!);
|
|
||||||
|
|
||||||
await page.keyboard.press('Tab');
|
await page.keyboard.press(tabKey);
|
||||||
// Checking within HTML textarea
|
// Checking within HTML textarea
|
||||||
|
|
||||||
// Reset tracking variables as the focus element has changed
|
await expect(vanillaTextarea).toBeFocused();
|
||||||
scrollTop = null;
|
|
||||||
selectionStart = null;
|
|
||||||
previousSelectionStart = null;
|
|
||||||
|
|
||||||
activeElementTagName = await page.evaluate(() => document.activeElement!.tagName);
|
|
||||||
expect(activeElementTagName).toBe('TEXTAREA');
|
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
|
||||||
expect(selectionStart).toBe(0);
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowDown');
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
await expect(vanillaTextarea).toBeFocused();
|
||||||
expect(selectionStart).toBeGreaterThan(0);
|
|
||||||
previousSelectionStart = selectionStart;
|
|
||||||
|
|
||||||
await page.keyboard.press('ArrowDown');
|
await page.keyboard.press('ArrowUp');
|
||||||
|
|
||||||
selectionStart = await getActiveElementSelectionStart(page);
|
await expect(vanillaTextarea).toBeFocused();
|
||||||
expect(selectionStart).toBeGreaterThan(previousSelectionStart!);
|
|
||||||
|
|
||||||
await page.keyboard.press('Home');
|
await page.keyboard.press('Home');
|
||||||
|
|
||||||
scrollTop = await getActiveElementScrollTop(page);
|
await expect(vanillaTextarea).toBeFocused();
|
||||||
expect(scrollTop).toBeGreaterThan(0);
|
|
||||||
|
|
||||||
const previousScrollTop = scrollTop;
|
|
||||||
|
|
||||||
await page.keyboard.press('End');
|
await page.keyboard.press('End');
|
||||||
|
|
||||||
scrollTop = await getActiveElementScrollTop(page);
|
await expect(vanillaTextarea).toBeFocused();
|
||||||
expect(scrollTop).toBeGreaterThanOrEqual(previousScrollTop);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO(FW-1424): convert these to Playwright assertions where possible
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Focusing happens async inside of popover so we need
|
|
||||||
* to wait for the requestAnimationFrame to fire.
|
|
||||||
*/
|
|
||||||
const expectActiveElementTextToEqual = async (page: E2EPage, textValue: string) => {
|
|
||||||
await page.evaluate((text) => document.activeElement!.textContent === text, textValue);
|
|
||||||
};
|
|
||||||
|
|
||||||
const getActiveElementSelectionStart = (page: E2EPage) => {
|
|
||||||
return page.evaluate(() =>
|
|
||||||
document.activeElement instanceof HTMLTextAreaElement ? document.activeElement.selectionStart : null
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const getActiveElementScrollTop = (page: E2EPage) => {
|
|
||||||
return page.evaluate(() => {
|
|
||||||
// Returns the closest ion-textarea or active element
|
|
||||||
const target = document.activeElement!.closest('ion-textarea') ?? document.activeElement;
|
|
||||||
return target!.scrollTop;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
@ -8,7 +8,7 @@ export interface OverlayEventDetail<T = any> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface OverlayInterface {
|
export interface OverlayInterface {
|
||||||
el: HTMLElement;
|
el: HTMLIonOverlayElement;
|
||||||
animated: boolean;
|
animated: boolean;
|
||||||
keyboardClose: boolean;
|
keyboardClose: boolean;
|
||||||
overlayIndex: number;
|
overlayIndex: number;
|
||||||
|
@ -522,6 +522,14 @@ export const dismiss = async <OverlayDismissOptions>(
|
|||||||
*/
|
*/
|
||||||
overlay.el.classList.add('overlay-hidden');
|
overlay.el.classList.add('overlay-hidden');
|
||||||
overlay.el.style.removeProperty('pointer-events');
|
overlay.el.style.removeProperty('pointer-events');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear any focus trapping references
|
||||||
|
* when the overlay is dismissed.
|
||||||
|
*/
|
||||||
|
if (overlay.el.lastFocus !== undefined) {
|
||||||
|
overlay.el.lastFocus = undefined;
|
||||||
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,8 @@ test.describe('overlays: dismiss', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test.describe('overlays: focus', () => {
|
// TODO FW-3536
|
||||||
|
test.describe.skip('overlays: focus', () => {
|
||||||
test.beforeEach(({ skip }) => {
|
test.beforeEach(({ skip }) => {
|
||||||
skip.rtl();
|
skip.rtl();
|
||||||
});
|
});
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic-docs/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/docs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic-docs/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic-docs/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/docs
|
**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",
|
"name": "@ionic/docs",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/docs",
|
"name": "@ionic/docs",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Pre-packaged API documentation for the Ionic docs.",
|
"description": "Pre-packaged API documentation for the Ionic docs.",
|
||||||
"main": "core.json",
|
"main": "core.json",
|
||||||
"types": "core.d.ts",
|
"types": "core.d.ts",
|
||||||
|
@ -5,5 +5,5 @@
|
|||||||
"angular",
|
"angular",
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"version": "6.5.6"
|
"version": "6.5.7"
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/angular-server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/angular-server
|
**Note:** Version bump only for package @ionic/angular-server
|
||||||
|
18
packages/angular-server/package-lock.json
generated
18
packages/angular-server/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6"
|
"@ionic/core": "^6.5.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-eslint/eslint-plugin": "^12.6.1",
|
"@angular-eslint/eslint-plugin": "^12.6.1",
|
||||||
@ -742,9 +742,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -7201,9 +7201,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/angular-server",
|
"name": "@ionic/angular-server",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Angular SSR Module for Ionic",
|
"description": "Angular SSR Module for Ionic",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -69,6 +69,6 @@
|
|||||||
},
|
},
|
||||||
"prettier": "@ionic/prettier-config",
|
"prettier": "@ionic/prettier-config",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6"
|
"@ionic/core": "^6.5.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/react-router
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/react-router
|
**Note:** Version bump only for package @ionic/react-router
|
||||||
|
34
packages/react-router/package-lock.json
generated
34
packages/react-router/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/react": "^6.5.6",
|
"@ionic/react": "^6.5.7",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -205,9 +205,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -381,11 +381,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/react": {
|
"node_modules/@ionic/react": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.7.tgz",
|
||||||
"integrity": "sha512-EyoBpYSgavDp4zYhpRBmf7xLlc3ZqeeHjmmtoM//1cUXfq4MVkFf67A7wPXTKjXrGQarQNN0Lz2mYfh+UwMbzw==",
|
"integrity": "sha512-R/soREv+DK0EOVEaYWVCIo/kr+NPhzy6L84NSFHeW4tYDlKchKS+fw65DlKZXZVHoKKC5TKwfR6H9lv5W9Lm9Q==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "6.5.6",
|
"@ionic/core": "6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
@ -3630,9 +3630,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -3736,11 +3736,11 @@
|
|||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@ionic/react": {
|
"@ionic/react": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.5.7.tgz",
|
||||||
"integrity": "sha512-EyoBpYSgavDp4zYhpRBmf7xLlc3ZqeeHjmmtoM//1cUXfq4MVkFf67A7wPXTKjXrGQarQNN0Lz2mYfh+UwMbzw==",
|
"integrity": "sha512-R/soREv+DK0EOVEaYWVCIo/kr+NPhzy6L84NSFHeW4tYDlKchKS+fw65DlKZXZVHoKKC5TKwfR6H9lv5W9Lm9Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ionic/core": "6.5.6",
|
"@ionic/core": "6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react-router",
|
"name": "@ionic/react-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "React Router wrapper for @ionic/react",
|
"description": "React Router wrapper for @ionic/react",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -38,7 +38,7 @@
|
|||||||
"dist/"
|
"dist/"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/react": "^6.5.6",
|
"@ionic/react": "^6.5.7",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/react
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/react
|
**Note:** Version bump only for package @ionic/react
|
||||||
|
18
packages/react/package-lock.json
generated
18
packages/react/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react",
|
"name": "@ionic/react",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/react",
|
"name": "@ionic/react",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
@ -697,9 +697,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -11765,9 +11765,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/react",
|
"name": "@ionic/react",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "React specific wrapper for @ionic/core",
|
"description": "React specific wrapper for @ionic/core",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ionic",
|
"ionic",
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"css/"
|
"css/"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
"tslib": "*"
|
"tslib": "*"
|
||||||
},
|
},
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/vue-router
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/vue-router
|
**Note:** Version bump only for package @ionic/vue-router
|
||||||
|
34
packages/vue-router/package-lock.json
generated
34
packages/vue-router/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/vue": "^6.5.6"
|
"@ionic/vue": "^6.5.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ionic/eslint-config": "^0.3.0",
|
"@ionic/eslint-config": "^0.3.0",
|
||||||
@ -660,9 +660,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -851,11 +851,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/vue": {
|
"node_modules/@ionic/vue": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.7.tgz",
|
||||||
"integrity": "sha512-AY66JhWIgflkW4QaNx7BcV2LnZ5nruUR6P/NpLyYVRuUz0XpW3QOam0PZu9HlNsHR3NJvwMsaRejdjB63BSTKw==",
|
"integrity": "sha512-njds6SfJrudo/yC684WVdxXj8qlaXMF5ktRJX/6cXX3pUtyJ7MwPrb4k94bfcSzu1nSgK4NdiyFXlo1G980WqQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "6.5.6",
|
"@ionic/core": "6.5.7",
|
||||||
"ionicons": "^6.1.3"
|
"ionicons": "^6.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -7665,9 +7665,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -7780,11 +7780,11 @@
|
|||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@ionic/vue": {
|
"@ionic/vue": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.5.7.tgz",
|
||||||
"integrity": "sha512-AY66JhWIgflkW4QaNx7BcV2LnZ5nruUR6P/NpLyYVRuUz0XpW3QOam0PZu9HlNsHR3NJvwMsaRejdjB63BSTKw==",
|
"integrity": "sha512-njds6SfJrudo/yC684WVdxXj8qlaXMF5ktRJX/6cXX3pUtyJ7MwPrb4k94bfcSzu1nSgK4NdiyFXlo1G980WqQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@ionic/core": "6.5.6",
|
"@ionic/core": "6.5.7",
|
||||||
"ionicons": "^6.1.3"
|
"ionicons": "^6.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue-router",
|
"name": "@ionic/vue-router",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Vue Router integration for @ionic/vue",
|
"description": "Vue Router integration for @ionic/vue",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test.spec": "jest",
|
"test.spec": "jest",
|
||||||
@ -46,7 +46,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/ionic-team/ionic#readme",
|
"homepage": "https://github.com/ionic-team/ionic#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/vue": "^6.5.6"
|
"@ionic/vue": "^6.5.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@ionic/eslint-config": "^0.3.0",
|
"@ionic/eslint-config": "^0.3.0",
|
||||||
|
@ -3,6 +3,14 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [6.5.7](https://github.com/ionic-team/ionic/compare/v6.5.6...v6.5.7) (2023-03-01)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @ionic/vue
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
## [6.5.6](https://github.com/ionic-team/ionic/compare/v6.5.5...v6.5.6) (2023-02-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @ionic/vue
|
**Note:** Version bump only for package @ionic/vue
|
||||||
|
18
packages/vue/package-lock.json
generated
18
packages/vue/package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3"
|
"ionicons": "^6.1.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -208,9 +208,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ionic/core": {
|
"node_modules/@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
@ -3776,9 +3776,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@ionic/core": {
|
"@ionic/core": {
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.6.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.5.7.tgz",
|
||||||
"integrity": "sha512-Bi87GXW+pgeXijDWD/sLKLq9yQOxzQLg9+U5V684fZZoORv4KnV9Qosjq3LmRm+vH7VuQeU0OZ8ZU3OuDAlrDA==",
|
"integrity": "sha512-nEgB47Mwj5/LyKeN+r8vcSxoG66aWrODbS63Bp6BT5pb9QzMm2p9ZYe3160YwYxtj5Ax2jhDvkqpykkJWZT+KA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@stencil/core": "^2.18.0",
|
"@stencil/core": "^2.18.0",
|
||||||
"ionicons": "^6.1.3",
|
"ionicons": "^6.1.3",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/vue",
|
"name": "@ionic/vue",
|
||||||
"version": "6.5.6",
|
"version": "6.5.7",
|
||||||
"description": "Vue specific wrapper for @ionic/core",
|
"description": "Vue specific wrapper for @ionic/core",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"eslint": "eslint src",
|
"eslint": "eslint src",
|
||||||
@ -68,7 +68,7 @@
|
|||||||
"vue-router": "^4.0.16"
|
"vue-router": "^4.0.16"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ionic/core": "^6.5.6",
|
"@ionic/core": "^6.5.7",
|
||||||
"ionicons": "^6.1.3"
|
"ionicons": "^6.1.3"
|
||||||
},
|
},
|
||||||
"vetur": {
|
"vetur": {
|
||||||
|
Reference in New Issue
Block a user