@microsoft/mgt
Version:
The Microsoft Graph Toolkit
79 lines • 2.67 kB
JavaScript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
import { EventDispatcher } from './providers/EventDispatcher';
/**
* Provides implementation for acquiring the necessary access token for calling the Microsoft Graph APIs.
*
* @export
* @class Providers
*/
export class Providers {
/**
* returns the value of provider used globally. All components use this property to get a reference to the provider.
*
* @static
* @type {IProvider}
* @memberof Providers
*/
static get globalProvider() {
return this._globalProvider;
}
static set globalProvider(provider) {
if (provider !== this._globalProvider) {
if (this._globalProvider) {
this._globalProvider.removeStateChangedHandler(this.handleProviderStateChanged);
}
if (provider) {
provider.onStateChanged(this.handleProviderStateChanged);
}
this._globalProvider = provider;
this._eventDispatcher.fire(ProvidersChangedState.ProviderChanged);
}
}
/**
* Fires event when Provider changes state
*
* @static
* @param {EventHandler<ProvidersChangedState>} event
* @memberof Providers
*/
static onProviderUpdated(event) {
this._eventDispatcher.add(event);
}
/**
* Remove event handler
*
* @static
* @param {EventHandler<ProvidersChangedState>} event
* @memberof Providers
*/
static removeProviderUpdatedListener(event) {
this._eventDispatcher.remove(event);
}
static handleProviderStateChanged() {
Providers._eventDispatcher.fire(ProvidersChangedState.ProviderStateChanged);
}
}
Providers._eventDispatcher = new EventDispatcher();
/**
* on Provider Change State
*
* @export
* @enum {number}
*/
export var ProvidersChangedState;
(function (ProvidersChangedState) {
/**
* ProviderChanged = 0
*/
ProvidersChangedState[ProvidersChangedState["ProviderChanged"] = 0] = "ProviderChanged";
/**
* ProviderStateChanged = 1
*/
ProvidersChangedState[ProvidersChangedState["ProviderStateChanged"] = 1] = "ProviderStateChanged";
})(ProvidersChangedState || (ProvidersChangedState = {}));
//# sourceMappingURL=Providers.js.map