@microsoft/sp-webpart-base
Version:
SharePoint Framework support for building web parts
65 lines • 2.85 kB
JavaScript
// Copyright (c) Microsoft. All rights reserved.
import { __extends } from "tslib";
// This file contains code for the ClientSideWebPartMaintenanceModeManager.
import { Environment } from '@microsoft/sp-core-library';
import { SPComponentLoader } from '@microsoft/sp-loader';
import ClassicPageUtils from './classicPages/ClassicPageUtils';
import ClientSideWebPartManager from './ClientSideWebPartManager';
var SP_MAINTENANCE_MODE_MANIFEST_ID = '88019639-8c06-4ba6-8545-03a1f38f8393';
/**
* The ClientSideWebPartMaintenanceModeManager is the web part manager instance used
* when the web parts are rendered in maintenance mode.
*
* @internal
*/
var ClientSideWebPartMaintenanceModeManager = /** @class */ (function (_super) {
__extends(ClientSideWebPartMaintenanceModeManager, _super);
/**
* See ClientSideWebPartManager
*/
function ClientSideWebPartMaintenanceModeManager(host) {
var _this = _super.call(this, host) || this;
_this._wpMaintenanceModeData = new Map();
return _this;
}
/**
* See ClientSideWebPartManager
*/
ClientSideWebPartMaintenanceModeManager.prototype.loadWebPart = function (context) {
this._loadWebPartInMaintenanceMode(context);
this._wpMaintenanceModeData.set(context.instanceId, context.webPartData);
return Promise.resolve();
};
/**
* See ClientSideWebPartManager
*/
ClientSideWebPartMaintenanceModeManager.prototype.serialize = function (instanceId) {
return this._wpMaintenanceModeData;
};
/**
* See ClientSideWebPartManager
*/
ClientSideWebPartMaintenanceModeManager.prototype.dispose = function (instanceId) {
if (instanceId) {
this._wpMaintenanceModeData.delete(instanceId);
}
else {
this._wpMaintenanceModeData = new Map();
}
};
ClientSideWebPartMaintenanceModeManager.prototype._loadWebPartInMaintenanceMode = function (context) {
// Create a disembodied context without an actual web part
// (It is our responsibility to finish the service scope.)
var webPartContext = this._getWebPartContext(context);
webPartContext.serviceScope.finish();
SPComponentLoader.loadComponentById(SP_MAINTENANCE_MODE_MANIFEST_ID)
.then(function (uiComponentModule) {
return uiComponentModule.MaintenanceModeRenderer.render(webPartContext, context.webPartData);
})
.then(function () { return ClassicPageUtils.disableAutomaticPostbacks(context.domElement, Environment.type); })
.catch(function (e) { return e; });
};
return ClientSideWebPartMaintenanceModeManager;
}(ClientSideWebPartManager));
export default ClientSideWebPartMaintenanceModeManager;
//# sourceMappingURL=ClientSideWebPartMaintenanceModeManager.js.map