/** * @license Angular v8.1.3 * (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