| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- import EventEmitter from 'events';
 - 
 - import { ONLINE_STATE_CHANGED_EVENT } from './events';
 - 
 - /**
 -  * The network info service implementation for web (Chrome, Firefox and Safari).
 -  */
 - export default class NetworkInfoService extends EventEmitter {
 - 
 -     /**
 -      * Creates new instance...
 -      */
 -     constructor() {
 -         super();
 -         this._onlineStateListener = this._handleOnlineStatusChange.bind(this, /* online */ true);
 -         this._offlineStateListener = this._handleOnlineStatusChange.bind(this, /* offline */ false);
 -     }
 - 
 -     /**
 -      * Callback function to track the online state.
 -      *
 -      * @param {boolean} isOnline - Is the browser online or not.
 -      * @private
 -      * @returns {void}
 -      */
 -     _handleOnlineStatusChange(isOnline) {
 -         this.emit(ONLINE_STATE_CHANGED_EVENT, { isOnline });
 -     }
 - 
 -     /**
 -      * Checks for support.
 -      *
 -      * @returns {boolean}
 -      */
 -     static isSupported() {
 -         return window.addEventListener && typeof navigator.onLine !== 'undefined';
 -     }
 - 
 -     /**
 -      * Starts the service.
 -      *
 -      * @returns {void}
 -      */
 -     start() {
 -         window.addEventListener('online', this._onlineStateListener);
 -         window.addEventListener('offline', this._offlineStateListener);
 -     }
 - 
 -     /**
 -      * Stops the service.
 -      *
 -      * @returns {void}
 -      */
 -     stop() {
 -         window.removeEventListener('online', this._onlineStateListener);
 -         window.removeEventListener('offline', this._offlineStateListener);
 -     }
 - }
 
 
  |