UNPKG

@microsoft/sp-webpart-base

Version:

SharePoint Framework support for building web parts

2 lines 17.7 kB
"use strict";(self["webpackJsonp_974a7777-0990-4136-8fa6-95d80114c2e0_1.19.0"]=self["webpackJsonp_974a7777-0990-4136-8fa6-95d80114c2e0_1.19.0"]||[]).push([[725],{295:(e,t,n)=>{n.r(t),n.d(t,{default:()=>O});var a=n(878),i=n(377),r=n(61),o=n(37),s=n(348),c=n(866),d=n(481),l=n(672),u=n(258);n(230).loadStyles('.o_c_7caff1a1{position:relative;top:0;transition:width 367ms cubic-bezier(.1,.9,.2,1);-webkit-transition:width 367ms cubic-bezier(.1,.9,.2,1);width:340px;z-index:999}[id^=spIFramePropertyPaneContainer].p_c_7caff1a1{background-color:"[theme:bodyBackground, default: #ffffff]";bottom:0}[dir=ltr] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{right:0}[dir=rtl] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{left:0}[dir=ltr] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-left-width:1px}[dir=rtl] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-right-width:1px}[dir=ltr] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-left-style:solid}[dir=rtl] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-right-style:solid}[dir=ltr] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-left-color:"[theme:neutralLight, default: #edebe9]"}[dir=rtl] [id^=spIFramePropertyPaneContainer].p_c_7caff1a1{border-right-color:"[theme:neutralLight, default: #edebe9]"}[id^=spIFramePropertyPaneContainer].p_c_7caff1a1 button{display:block}[id^=spIFramePropertyPaneContainer].q_c_7caff1a1{transition:width 367ms cubic-bezier(.1,.9,.2,1);-webkit-transition:width 367ms cubic-bezier(.1,.9,.2,1);width:0}[dir=ltr] [id^=spPageChromeAppDiv].r_c_7caff1a1{right:340px}[dir=rtl] [id^=spPageChromeAppDiv].r_c_7caff1a1{left:340px}.s_c_7caff1a1{border:0;height:100%;height:-webkit-fill;height:-moz-fill;width:100%}.t_c_7caff1a1{border:none;float:left;height:100%;width:100%}',!0);const f="p_c_7caff1a1",p="q_c_7caff1a1",m="r_c_7caff1a1",_="s_c_7caff1a1";var h;!function(e){e.List="list",e.Id="id",e.WebPartInstanceId="webPartInstanceId",e.NewWebPartInstanceId="newWebPartInstanceId",e.ParentWindowOrigin="parentWindowOrigin",e.ComponentId="componentId",e.HostedInCanvas="hostedInCanvas",e.HostedInTeams="hostedInTeams",e.OpenPropertyPane="openPropertyPane",e.OpenDetailsPropertyPane="openDetailsPropertyPane"}(h||(h={}));var b=n(553),g="webpart",v="isolatedACEWebPart",y=function(){function e(e,t,n){this._controller=e,this.origin=n.origin,this.url=n.url,this.webPartData=n.webPartData,this.webPartElementId=n.webPartElementId,this.displayMode=n.displayMode,this.addedFromPersistedData=n.addedFromPersistedData,this.theme=n.theme,this.instanceId=n.webPartData.instanceId,this.isDisposed=!1,this._themeProvider=t.consume(c.ThemeProvider.serviceKey),this._onThemeChanged.bind(this),this._themeProvider.themeChangedEvent.add(this,this._onThemeChanged)}return Object.defineProperty(e.prototype,"componentId",{get:function(){return this.webPartElementId},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._themeProvider.themeChangedEvent.remove(this,this._onThemeChanged),this.isDisposed=!0},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),e.prototype._onThemeChanged=function(e){e.theme&&this._controller.setTheme(e.theme,this.instanceId)},e}(),S=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._type=g,t}return(0,b.__extends)(t,e),t}(y),D=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._type=v,t}return(0,b.__extends)(t,e),t}(y),I=n(612),x=i._LogSource.create("IframedWebPartController"),C="dom-isolated-property-pane";const O=function(){function e(e){this._iframeSrcUrl=void 0,this._iframedWebparts=new Map,this._host=e,this._ppIframeElement=void 0,this._iframeContextMap=new Map,this._updateWebPartData=this._updateWebPartData.bind(this),this._updateWebPartDisplayMode=this._updateWebPartDisplayMode.bind(this),this._iframeEventListener=this._iframeEventListener.bind(this),window.addEventListener("message",this._iframeEventListener)}return e.prototype.deleteWebPart=function(e){this._iframeContextMap.delete(e),a.Validate.isNonemptyString(e,"instanceId");var t=this._iframedWebparts.get(e),n=document.getElementById(C);if(n&&n.contentWindow){var i={instanceId:e,action:u.D.DeleteWebPart};n.contentWindow.postMessage(i,t.url)}this.requestPropertyPaneAction("Close"),t.dispose(),this._iframedWebparts.delete(e)},e.prototype.getAllInstanceIds=function(){var e=[];return this._iframedWebparts.forEach(function(t,n){e.push(n)}),e},e.prototype.notifyContainerResize=function(e){},e.prototype.startDirtyBitTimer=function(e){},e.prototype.loadWebPart=function(e,t,n,i){this._iframeContextMap.set(n.instanceId,n),this._iframeSrcUrl=this._generateIframeSrcUrl(e,t,n),a.Validate.isNotNullOrUndefined(n.webPartData,"webPartData");var r={origin:e,url:this._iframeSrcUrl,webPartData:n.webPartData,webPartElementId:"".concat("dom-isolated-webpart","-").concat(n.instanceId),displayMode:n.displayMode,addedFromPersistedData:!!n.addedFromPersistedData,theme:void 0};if(!this._iframedWebparts.has(n.instanceId))if(n.addedFromPersistedData||(r.webPartData.dataVersion="1.0",r.webPartData.instanceId=n.instanceId),!(0,l.UK)()&&i)this._iframedWebparts.set(n.instanceId,new D(this,n.serviceScope||this._host.serviceScope,r));else if(this._iframedWebparts.set(n.instanceId,new S(this,n.serviceScope||this._host.serviceScope,r)),o._SPLoaderFlights._isSafariIsolationEnabled()){var s=document.createElement("iframe");s.id=r.webPartElementId,s.src=this._addFilteredQueryParamsFromHostPage(r.url),s.classList.add(_),s.scrolling="no",s.title=r.webPartData.title,a._BrowserUtilities.isUsingSecureBroker()||((0,l.Y$)()||o._IframeLoadRedirector.instance,s.onload=function(){return o._IframeLoadRedirector.instance.confirmLoadOrRedirect(s.src)}),(0,l.dT)()||(s.tabIndex=0);var c=document.createElement("div");c.appendChild(s),n.domElement.appendChild(c)}else n.domElement.innerHTML="<div>\n <iframe\n id=".concat(r.webPartElementId,"\n src=").concat(this._addFilteredQueryParamsFromHostPage(r.url),"\n class=").concat(_,'\n scrolling="no"\n ').concat((0,l.dT)()?"":'tabindex="0"','\n title="').concat(r.webPartData.title,'"\n ></iframe>\n </div>')},e.prototype.assignIsolatedACEWP=function(e,t){if(this._iframedWebparts.has(e)){var n=this._iframedWebparts.get(e);n.type===v&&(n.webPart=t)}},e.prototype.requestPropertyPaneAction=function(e,t){switch(a.Validate.isNotNullOrUndefined(e,"propertyPaneState"),e){case"Open":case"OpenDetails":a.Validate.isNonemptyString(t,"instanceId"),((0,l.IO)()||this._iframedPropertyPaneWebPartInstanceId===t)&&this._ppIframeElement||this._createPropertyPaneElement(t,"OpenDetails"===e),this._showPropertyPane(t,e);break;case"Close":this._ppIframeElement&&this._hidePropertyPane(t);break;case"Toggle":a.Validate.isNonemptyString(t,"instanceId"),this._iframedPropertyPaneContainer&&this._iframedPropertyPaneContainer.classList.contains(f)?this._hidePropertyPane(t):(((0,l.IO)()||this._iframedPropertyPaneWebPartInstanceId===t)&&this._iframedPropertyPaneContainer||this._createPropertyPaneElement(t),this._showPropertyPane(t,"Open"));break;case"Refresh":a.Validate.isNonemptyString(t,"instanceId"),this._refreshPropertyPane(t)}},e.prototype.serialize=function(e){return a.Validate.isNonemptyString(e,"instanceId"),this._iframedWebparts.get(e).webPartData},e.prototype.setDisplayMode=function(e,t){a.Validate.isNotNullOrUndefined(e,"displayMode"),a.Validate.isNonemptyString(t,"instanceId");var n={instanceId:t,action:u.D.SetDisplayMode,displayMode:e},i=this._iframedWebparts.get(t);i.displayMode=e;var r=this._getCurrentIframeWebPartContentWindow(i.webPartElementId);r&&r.postMessage(n,i.url)},e.prototype.setTheme=function(e,t){var n=this._iframedWebparts.get(t);if(!n.theme||!(0,s.isEqual)(n.theme,e)){var a={instanceId:t,action:u.D.SetTheme,theme:e};n.theme=e;var i=this._getCurrentIframeWebPartContentWindow(n.webPartElementId);i&&i.postMessage(a,n.url)}},e.prototype._generateIframeSrcUrl=function(e,t,n){var i,r,o,s=a._BrowserUtilities.isTeamsHosted(),c=s&&a._BrowserUtilities.isUsingSecureBroker();if(c){var d=new URL(e);o=d.pathname,d.pathname.endsWith("/")||(o+="/"),o+="/_layouts/15/webpart.aspx?"}else o="".concat(e,"/_layouts/15/webpart.aspx?");return n.addedFromPersistedData?(o+="".concat(h.List,"=%7B"),o+=(null===(i=n.isolatedItemContext)||void 0===i?void 0:i.list)||t.list.id,o+="%7D&".concat(h.Id,"="),o+=(null===(r=n.isolatedItemContext)||void 0===r?void 0:r.id)||t.listItem.id,o+="&".concat(h.WebPartInstanceId,"="),o+=n.instanceId):(o+="".concat(h.NewWebPartInstanceId,"="),o+=n.instanceId),o+="&".concat(h.ParentWindowOrigin,"="),o+=window.location.origin,o+="&".concat(h.ComponentId,"="),o+=n.manifest.id,o+="&".concat(h.HostedInCanvas),s&&(o+="&".concat(h.HostedInTeams),c&&(o+="&".concat(a._BROKER_IN_USE_KEY,"=true"),o="".concat(e,"/_layouts/15/brokerlogon.aspx?").concat(a._BROKER_IN_USE_KEY,"=true&")+"dest="+encodeURIComponent(o))),o},e.prototype._createPropertyPaneElement=function(e,t){this._pageContentElement||(this._pageContentElement=document.getElementById("spPageChromeAppDiv")),this._iframedPropertyPaneContainer||(this._iframedPropertyPaneContainer=document.createElement("div"),this._iframedPropertyPaneContainer.id="spIFramePropertyPaneContainer",this._iframedPropertyPaneContainer.className="o_c_7caff1a1");var n=this._iframedWebparts.get(e);(0,l.IO)()||(this._iframedPropertyPaneWebPartInstanceId=e),this._iframeSrcUrl=n.url,this._iframeSrcUrl+="&".concat(t?h.OpenDetailsPropertyPane:h.OpenPropertyPane,"=true"),this._iframedPropertyPaneContainer.innerHTML="\n <iframe\n id=".concat(C,"\n src=").concat(this._addFilteredQueryParamsFromHostPage(this._iframeSrcUrl),"\n class=").concat("t_c_7caff1a1","\n title=").concat(a.Text.format(I._w,n.webPartData.title),"\n ></iframe>"),this._pageContentElement.parentElement.appendChild(this._iframedPropertyPaneContainer),this._ppIframeElement=document.getElementById(C)},e.prototype._iframeEventListener=function(e){var t,n,i=this;if(this._iframedWebparts.has(e.data.instanceId)){var o=this._iframedWebparts.get(e.data.instanceId);if(new URL(e.origin).origin.toLowerCase()===e.origin.toLowerCase()){var s=e.data;switch(a.Validate.isNotNullOrUndefined(s.action,"action"),s.action){case u.D.RequestDisplayMode:this._updateWebPartDisplayMode(s.instanceId);break;case u.D.GetOboToken:var c=s.oboRequest,l=c.application,f=c.claims,p=r._AadTokenProviders.configurable;(l===r._AadConstants.PRE_AUTHORIZED_APP_PRINCIPAL_ID?p._oboFirstPartyTokenCallback(f):p._oboThirdPartyTokenCallback(l,f)).then(function(e){i._setOboToken(s.instanceId,e)}).catch(function(){i._setOboToken(s.instanceId,void 0)});break;case u.D.SetDimensions:var m=document.getElementById(o.webPartElementId);if(a.Validate.isNotNullOrUndefined(m,"iframedWebPartElement"),(0,d.H)()){var _=s.height,h=s.instanceId,b=s.isFullScreen,g=s.width;if(b){var v=m.getBoundingClientRect();m.style.cssText="bottom: 0; left: 0; position: fixed; top: 0; z-index: 99999",m.parentElement&&(this._isHostDashboardWebPart(h)?m.parentElement.style.height="".concat(v.height+3,"px"):m.parentElement.style.width="".concat(v.width,"px"));var y=this._getCurrentIframeWebPartContentWindow(o.webPartElementId);y&&y.postMessage({instanceId:s.instanceId,clientRect:v},o.url)}else null===(t=m.parentElement)||void 0===t||t.style.removeProperty("width"),null===(n=m.parentElement)||void 0===n||n.style.removeProperty("height"),m.style.removeProperty("position"),m.style.removeProperty("top"),m.style.removeProperty("left"),m.style.removeProperty("bottom"),_&&(m.style.height="".concat(_,"px")),g&&!this._isHostDashboardWebPart(h)&&(m.style.width="".concat(g,"px"))}else a.Validate.isNotNullOrUndefined(s.height,"height"),m.style.height="".concat(s.height,"px");break;case u.D.UpdateWebPartData:a.Validate.isNotNullOrUndefined(s.webPartData,"webPartData"),this._updateWebPartData(s.instanceId,s.webPartData,u.D.UpdateWebPartData);break;case u.D.UpdatePropertyPaneData:a.Validate.isNotNullOrUndefined(s.webPartData,"webPartData"),this._updateWebPartData(s.instanceId,s.webPartData,u.D.UpdatePropertyPaneData);break;case u.D.UpdatePropertyPaneLifeCycle:"Closed"===s.propertyPaneLifeCycleEvent&&this._hidePropertyPane(e.data.instanceId);break;case u.D.WebPartRenderedInPropertyPaneIframe:var S={instanceId:e.data.instanceId,action:u.D.RequestPropertyPaneAction,propertyPaneAction:"Refresh",webPartData:o.webPartData};this._ppIframeElement.contentWindow.postMessage(S,o.url);break;case u.D.UpdateWebpartLifeCycle:this._updateParentHost(s);break;case u.D.RequestTheme:this._updateThemeInfo(s.instanceId);break;case u.D.RequestPropertyPaneAction:this.requestPropertyPaneAction(s.propertyPaneAction,s.instanceId);break;case u.D.UpdateAudiences:this._updateAudiences(s.instanceId,s.audiences||[])}}}},e.prototype._updateThemeInfo=function(e){var t=this._tryGetTheme(e);t&&this.setTheme(t,e)},e.prototype._tryGetTheme=function(e){var t,n;return null===(n=null===(t=this._iframeContextMap.get(e))||void 0===t?void 0:t.serviceScope)||void 0===n?void 0:n.consume(c.ThemeProvider.serviceKey).tryGetTheme()},e.prototype._updateParentHost=function(e){var t=e.instanceId,n=e.parentHostLifeCycle,a=this._iframeContextMap.get(t),i=n,r=i.lifeCycleMethod,o=i.error;switch(r){case"onBeforeWebPartLoad":this._host.onBeforeWebPartLoad(a);break;case"onAfterWebPartLoad":this._host.onAfterWebPartLoad(a);break;case"onBeforeWebPartInitialize":if(l.XP.isTeamsContextKSActivated()){this._host.onBeforeWebPartInitializeOld(a);break}this._host.onBeforeWebPartInitialize(a);break;case"onAfterWebPartInitialize":this._host.onAfterWebPartInitialize(a);break;case"onBeforeWebPartRender":this._host.onBeforeWebPartRender(a);break;case"onAfterWebPartRender":this._host.onAfterWebPartRender(a);break;case"onAfterWebPartLoadFailed":o&&this._host.onAfterWebPartLoadFailed(a,o);break;case"onAfterWebPartInitializeFailed":o&&this._host.onAfterWebPartInitializeFailed(a,o);break;case"onAfterWebPartRenderFailed":o&&this._host.onAfterWebPartRenderFailed(a,o)}},e.prototype._updateWebPartDisplayMode=function(e){var t=this._iframedWebparts.get(e),n={instanceId:e,displayMode:t.displayMode,action:u.D.SetDisplayMode},a=this._getCurrentIframeWebPartContentWindow(t.webPartElementId);a&&a.postMessage(n,t.url)},e.prototype._updateWebPartData=function(e,t,n){var a,r=this._iframedWebparts.get(e);if(!s.isEqual(t,r.webPartData)){if(r.webPartData=t,this._iframedWebparts.set(e,r),this._host.setDirty(e),!(0,l.UK)()&&r.type===v)return void(null===(a=r.webPart)||void 0===a||a.updateACEData(e,t));var o={instanceId:e,webPartData:t,action:u.D.SetWebPartData};switch(n){case u.D.UpdatePropertyPaneData:var c=document.getElementById(C);c&&c.contentWindow&&c.contentWindow.postMessage(o,r.url);break;case u.D.UpdateWebPartData:var d=this._getCurrentIframeWebPartContentWindow(r.webPartElementId);d&&d.postMessage(o,r.url);break;default:i._TraceLogger.logError(x,new Error('Invalid parameter "action"'))}}},e.prototype._updateAudiences=function(e,t){var n,a;null===(a=(n=this._host).onAudiencesChanged)||void 0===a||a.call(n,e,t)},e.prototype._refreshPropertyPane=function(e){if(this._iframedPropertyPaneContainer&&e){var t={instanceId:e,action:u.D.RequestPropertyPaneAction,propertyPaneAction:"Refresh"},n=this._iframedWebparts.get(e);this._ppIframeElement&&this._ppIframeElement.contentWindow&&this._ppIframeElement.contentWindow.postMessage(t,n.url)}},e.prototype._hidePropertyPane=function(e){if(this._iframedPropertyPaneContainer){if(e){var t={instanceId:e,action:u.D.RequestPropertyPaneAction,propertyPaneAction:"Close"},n=this._iframedWebparts.get(e);this._ppIframeElement&&this._ppIframeElement.contentWindow&&this._ppIframeElement.contentWindow.postMessage(t,n.url)}this._iframedPropertyPaneContainer.classList.remove(f),this._iframedPropertyPaneContainer.classList.add(p),this._pageContentElement.classList.remove(m)}},e.prototype._showPropertyPane=function(e,t){var n=this,a=t||"Open";if("Open"===a||"OpenDetails"===a){if(e&&this._iframedWebparts.has(e)){var i=this._iframedWebparts.get(e),r="OpenDetails"===a,o=new URL(this._ppIframeElement.src);r?(o.searchParams.delete("openPropertyPane"),o.searchParams.set("openDetailsPropertyPane","true")):(o.searchParams.delete("openDetailsPropertyPane"),o.searchParams.set("openPropertyPane","true")),this._ppIframeElement.src=o.toString();var s={instanceId:e,action:u.D.RequestPropertyPaneAction,propertyPaneAction:a};this._ppIframeElement&&this._ppIframeElement.contentWindow&&this._ppIframeElement.contentDocument&&(this._ppIframeElement.contentDocument.onload=function(){n._ppIframeElement.contentWindow.postMessage(s,i.url)}.bind(this))}this._iframedPropertyPaneContainer.classList.add(f),this._iframedPropertyPaneContainer.classList.remove(p),this._pageContentElement.classList.add(m)}},e.prototype._setOboToken=function(e,t){var n={instanceId:e,oboToken:t,action:u.D.SetOboToken},a=this._iframedWebparts.get(e),i=this._getCurrentIframeWebPartContentWindow(a.webPartElementId);i&&i.postMessage(n,a.url)},e.prototype._addFilteredQueryParamsFromHostPage=function(e){for(var t=Object.keys(h).map(function(e){return h[e]}),n=new URL(window.location.href).searchParams,a=0,i=t;a<i.length;a++){var r=i[a];n.has(r)&&n.delete(r)}return"".concat(e,"&").concat(n.toString())},e.prototype._getCurrentIframeWebPartContentWindow=function(e){var t=document.getElementById(e);return null==t?void 0:t.contentWindow},e.prototype._isHostDashboardWebPart=function(e){var t;return"DashboardWebPart"===(null===(t=this._iframeContextMap.get(e).domElement.parentElement)||void 0===t?void 0:t.dataset.spFeatureTag)},e}()} }]);