blob: 00cb17b93a06905189b4879a8cebce24a9d80402 [file] [log] [blame]
/**
* @license Angular v8.1.1
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/
import { NgZone, ɵglobal, createPlatformFactory, platformCore, NgModule, APP_ID, PLATFORM_INITIALIZER } from '@angular/core';
import { ɵgetDOM, BrowserModule, ɵELEMENT_PROBE_PROVIDERS, ɵBrowserDomAdapter } from '@angular/platform-browser';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class BrowserDetection {
/**
* @private
* @return {?}
*/
get _ua() {
if (typeof this._overrideUa === 'string') {
return this._overrideUa;
}
return ɵgetDOM() ? ɵgetDOM().getUserAgent() : '';
}
/**
* @return {?}
*/
static setup() { }
/**
* @param {?} ua
*/
constructor(ua) { this._overrideUa = ua; }
/**
* @return {?}
*/
get isFirefox() { return this._ua.indexOf('Firefox') > -1; }
/**
* @return {?}
*/
get isAndroid() {
return this._ua.indexOf('Mozilla/5.0') > -1 && this._ua.indexOf('Android') > -1 &&
this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Chrome') == -1 &&
this._ua.indexOf('IEMobile') == -1;
}
/**
* @return {?}
*/
get isEdge() { return this._ua.indexOf('Edge') > -1; }
/**
* @return {?}
*/
get isIE() { return this._ua.indexOf('Trident') > -1; }
/**
* @return {?}
*/
get isWebkit() {
return this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Edge') == -1 &&
this._ua.indexOf('IEMobile') == -1;
}
/**
* @return {?}
*/
get isIOS7() {
return (this._ua.indexOf('iPhone OS 7') > -1 || this._ua.indexOf('iPad OS 7') > -1) &&
this._ua.indexOf('IEMobile') == -1;
}
/**
* @return {?}
*/
get isSlow() { return this.isAndroid || this.isIE || this.isIOS7; }
// The Intl API is only natively supported in Chrome, Firefox, IE11 and Edge.
// This detector is needed in tests to make the difference between:
// 1) IE11/Edge: they have a native Intl API, but with some discrepancies
// 2) IE9/IE10: they use the polyfill, and so no discrepancies
/**
* @return {?}
*/
get supportsNativeIntlApi() {
return !!((/** @type {?} */ global))).Intl && ((/** @type {?} */ global))).Intl !== ((/** @type {?} */ global))).IntlPolyfill;
}
/**
* @return {?}
*/
get isChromeDesktop() {
return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Mobile Safari') == -1 &&
this._ua.indexOf('Edge') == -1;
}
// "Old Chrome" means Chrome 3X, where there are some discrepancies in the Intl API.
// Android 4.4 and 5.X have such browsers by default (respectively 30 and 39).
/**
* @return {?}
*/
get isOldChrome() {
return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Chrome/3') > -1 &&
this._ua.indexOf('Edge') == -1;
}
/**
* @return {?}
*/
get supportsCustomElements() { return (typeof ((/** @type {?} */ global))).customElements !== 'undefined'); }
/**
* @return {?}
*/
get supportsDeprecatedCustomCustomElementsV0() {
return (typeof ((/** @type {?} */ (document))).registerElement !== 'undefined');
}
/**
* @return {?}
*/
get supportsRegExUnicodeFlag() { return RegExp.prototype.hasOwnProperty('unicode'); }
/**
* @return {?}
*/
get supportsShadowDom() {
/** @type {?} */
const testEl = document.createElement('div');
return (typeof testEl.attachShadow !== 'undefined');
}
/**
* @return {?}
*/
get supportsDeprecatedShadowDomV0() {
/** @type {?} */
const testEl = (/** @type {?} */ (document.createElement('div')));
return (typeof testEl.createShadowRoot !== 'undefined');
}
}
BrowserDetection.setup();
/**
* @return {?}
*/
function createNgZone() {
return new NgZone({ enableLongStackTrace: true });
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @return {?}
*/
function initBrowserTests() {
ɵBrowserDomAdapter.makeCurrent();
BrowserDetection.setup();
}
/** @type {?} */
const _TEST_BROWSER_PLATFORM_PROVIDERS = [{ provide: PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true }];
/**
* Platform for testing
*
* \@publicApi
* @type {?}
*/
const platformBrowserTesting = createPlatformFactory(platformCore, 'browserTesting', _TEST_BROWSER_PLATFORM_PROVIDERS);
const ɵ0 = createNgZone;
/**
* NgModule for testing.
*
* \@publicApi
*/
class BrowserTestingModule {
}
BrowserTestingModule.decorators = [
{ type: NgModule, args: [{
exports: [BrowserModule],
providers: [
{ provide: APP_ID, useValue: 'a' },
ɵELEMENT_PROBE_PROVIDERS,
{ provide: NgZone, useFactory: ɵ0 },
]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { createNgZone as ɵangular_packages_platform_browser_testing_testing_a, platformBrowserTesting, BrowserTestingModule };
//# sourceMappingURL=testing.js.map