UNPKG

@microsoft/sp-webpart-base

Version:

SharePoint Framework support for building web parts

65 lines 2.85 kB
// 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