merge release-4.9.1

Release 4.9.1
This commit is contained in:
Liam DeBeasi
2019-09-16 15:03:49 -04:00
committed by GitHub
7 changed files with 48 additions and 9 deletions

View File

@ -1,3 +1,12 @@
## [4.9.1](https://github.com/ionic-team/ionic/compare/v4.9.0...v4.9.1) (2019-09-16)
### Bug Fixes
* **platform:** properly detect iPads running iPadOS ([#19258](https://github.com/ionic-team/ionic/issues/19258)) ([4a90096](https://github.com/ionic-team/ionic/commit/4a90096))
# [4.9.0 Fluorine](https://github.com/ionic-team/ionic/compare/v4.8.1...v4.9.0) (2019-09-04) # [4.9.0 Fluorine](https://github.com/ionic-team/ionic/compare/v4.8.1...v4.9.0) (2019-09-04)

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/angular", "name": "@ionic/angular",
"version": "4.9.0", "version": "4.9.1",
"description": "Angular specific wrappers for @ionic/core", "description": "Angular specific wrappers for @ionic/core",
"keywords": [ "keywords": [
"ionic", "ionic",
@ -49,7 +49,7 @@
"css/" "css/"
], ],
"dependencies": { "dependencies": {
"@ionic/core": "4.9.0", "@ionic/core": "4.9.1",
"tslib": "^1.9.3" "tslib": "^1.9.3"
}, },
"peerDependencies": { "peerDependencies": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/core", "name": "@ionic/core",
"version": "4.9.0", "version": "4.9.1",
"description": "Base components for Ionic", "description": "Base components for Ionic",
"keywords": [ "keywords": [
"ionic", "ionic",

View File

@ -33,14 +33,25 @@ const detectPlatforms = (win: Window) =>
const isMobileWeb = (win: Window): boolean => const isMobileWeb = (win: Window): boolean =>
isMobile(win) && !isHybrid(win); isMobile(win) && !isHybrid(win);
const isIpad = (win: Window) => const isIpad = (win: Window) => {
testUserAgent(win, /iPad/i); // iOS 12 and below
if (testUserAgent(win, /iPad/i)) {
return true;
}
// iOS 13+
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
return true;
}
return false;
};
const isIphone = (win: Window) => const isIphone = (win: Window) =>
testUserAgent(win, /iPhone/i); testUserAgent(win, /iPhone/i);
const isIOS = (win: Window) => const isIOS = (win: Window) =>
testUserAgent(win, /iPad|iPhone|iPod/i); testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
const isAndroid = (win: Window) => const isAndroid = (win: Window) =>
testUserAgent(win, /android|sink/i); testUserAgent(win, /android|sink/i);

View File

@ -63,10 +63,11 @@ describe('Platform Tests', () => {
expect(isPlatform(win, 'desktop')).toEqual(true); expect(isPlatform(win, 'desktop')).toEqual(true);
}); });
it('should return true for "android" and "tablet" on an android tablet', () => { it('should return true for "android" and "tablet" and false for "ios" on an android tablet', () => {
const win = configureBrowser(PlatformConfiguration.AndroidTablet); const win = configureBrowser(PlatformConfiguration.AndroidTablet);
expect(isPlatform(win, 'android')).toEqual(true); expect(isPlatform(win, 'android')).toEqual(true);
expect(isPlatform(win, 'tablet')).toEqual(true); expect(isPlatform(win, 'tablet')).toEqual(true);
expect(isPlatform(win, 'ios')).toEqual(false);
}); });
it('should return true for "cordova" and "hybrid" in a Cordova app', () => { it('should return true for "cordova" and "hybrid" in a Cordova app', () => {
@ -95,10 +96,11 @@ describe('Platform Tests', () => {
expect(isPlatform(win, 'desktop')).toEqual(false); expect(isPlatform(win, 'desktop')).toEqual(false);
}); });
it('should return false for "android" and "tablet" on desktop Safari', () => { it('should return false for "android", "tablet", and "ipad" on desktop Safari', () => {
const win = configureBrowser(PlatformConfiguration.DesktopSafari); const win = configureBrowser(PlatformConfiguration.DesktopSafari);
expect(isPlatform(win, 'android')).toEqual(false); expect(isPlatform(win, 'android')).toEqual(false);
expect(isPlatform(win, 'tablet')).toEqual(false); expect(isPlatform(win, 'tablet')).toEqual(false);
expect(isPlatform(win, 'ipad')).toEqual(false);
}); });
it('should return false for "android" and "tablet" and false for "desktop" on iPhone', () => { it('should return false for "android" and "tablet" and false for "desktop" on iPhone', () => {
@ -120,5 +122,14 @@ describe('Platform Tests', () => {
expect(isPlatform(win, 'pwa')).toEqual(true); expect(isPlatform(win, 'pwa')).toEqual(true);
expect(isPlatform(win, 'cordova')).toEqual(false); expect(isPlatform(win, 'cordova')).toEqual(false);
}); });
it('should return true for "ios", "ipad", and "tablet" and false for "iphone" and "android"', () => {
const win = configureBrowser(PlatformConfiguration.iPadOS);
expect(isPlatform(win, 'ios')).toEqual(true);
expect(isPlatform(win, 'ipad')).toEqual(true);
expect(isPlatform(win, 'tablet')).toEqual(true);
expect(isPlatform(win, 'iphone')).toEqual(false);
expect(isPlatform(win, 'android')).toEqual(false);
});
}) })
}); });

View File

@ -85,5 +85,13 @@ export const PlatformConfiguration = {
innerWidth: 360, innerWidth: 360,
innerHeight: 740, innerHeight: 740,
matchMedia: mockMatchMedia(['(any-pointer:coarse)']) matchMedia: mockMatchMedia(['(any-pointer:coarse)'])
},
iPadOS: {
navigator: {
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15'
},
innerWidth: 1024,
innerHeight: 1292,
matchMedia: mockMatchMedia(['(any-pointer:coarse)'])
} }
}; };

View File

@ -1,6 +1,6 @@
{ {
"name": "@ionic/docs", "name": "@ionic/docs",
"version": "4.9.0", "version": "4.9.1",
"description": "Pre-packaged API documentation for the Ionic docs.", "description": "Pre-packaged API documentation for the Ionic docs.",
"main": "core.json", "main": "core.json",
"files": [ "files": [