@flosportsinc/ng-window
Version:
For use in unit testing and Angular Universal applications.
76 lines (71 loc) • 2.16 kB
JavaScript
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const WINDOW = new InjectionToken('fs.wnd');
/** @type {?} */
const WINDOW_IS_DEFINED = new InjectionToken('fs.wnd-def');
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class WindowService {
/**
* @param {?} _window
*/
constructor(_window) {
this._window = _window;
this.window = (/**
* @template T
* @return {?}
*/
() => (/** @type {?} */ (this._window)));
}
}
WindowService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
WindowService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [WINDOW,] }] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// for handling bundlers that might not have access to window object globally.
/**
* @param {?} isWindowDefined
* @return {?}
*/
function winFactory(isWindowDefined) {
return isWindowDefined ? window : {};
}
/**
* @return {?}
*/
function isWindowDefinedFactory() {
return typeof window !== 'undefined';
}
class FloWindowModule {
}
FloWindowModule.decorators = [
{ type: NgModule, args: [{
providers: [
WindowService,
{
provide: WINDOW_IS_DEFINED,
useFactory: isWindowDefinedFactory
},
{
provide: WINDOW,
useFactory: winFactory,
deps: [WINDOW_IS_DEFINED]
}
]
},] }
];
export { FloWindowModule, WINDOW, WINDOW_IS_DEFINED, WindowService, isWindowDefinedFactory, winFactory };
//# sourceMappingURL=flosportsinc-ng-window.js.map