@spfx-extensions/package 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.npmignore +16 -16
  2. package/.nvmrc +1 -1
  3. package/LICENSE +674 -674
  4. package/README.md +166 -166
  5. package/config/config-scripts/rename-solution.mjs +22 -0
  6. package/config/config-scripts/update-version.mjs +23 -0
  7. package/config/config-scripts/webpack-patch.mjs +134 -0
  8. package/config/config.json +27 -27
  9. package/config/deploy-azure-storage.json +6 -6
  10. package/config/heft.json +58 -0
  11. package/config/package-solution.json +3 -3
  12. package/config/rig.json +7 -0
  13. package/config/sass.json +3 -2
  14. package/config/serve.json +18 -18
  15. package/config/typescript.json +7 -0
  16. package/config/webpack-patch.json +6 -0
  17. package/config/write-manifests.json +3 -3
  18. package/dist/8d1029da-85e6-48cc-aaaf-37a5bbc0b9be.manifest.json +3 -3
  19. package/dist/d6ca1fc2-0591-4c6d-8a25-cae3262c017b.manifest.json +6 -6
  20. package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/ClientSideInstance.xml +8 -8
  21. package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/Extension_8d1029da-85e6-48cc-aaaf-37a5bbc0b9be.xml +1 -1
  22. package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/WebPart_d6ca1fc2-0591-4c6d-8a25-cae3262c017b.xml +1 -1
  23. package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/elements.xml +8 -8
  24. package/dist/debug/AppManifest.xml +1 -1
  25. package/dist/debug/ClientSideAssets/spfx-extension-application-customizer_a3a347c8bd029396ec50.js +2 -0
  26. package/dist/debug/ClientSideAssets/spfx-extensionloader-web-part_3b393b3ec530c336b801.js +2 -0
  27. package/dist/debug/ClientSideAssets/spfx-extensions-classiccustomaction.js +1 -0
  28. package/dist/debug/ClientSideAssets/spfx-extensions-classicwrapper.js +1 -0
  29. package/dist/debug/ClientSideAssets/spfx-extensions-core.js +1 -0
  30. package/dist/debug/ClientSideAssets/spfx-extensions-coreconfigurator.js +175 -0
  31. package/dist/debug/ClientSideAssets/spfx-extensions-loader_6e8eb68a4b27d7c6f742.js +2 -0
  32. package/dist/debug/ClientSideAssets.xml +1 -1
  33. package/dist/debug/ClientSideAssets.xml.config.xml +1 -1
  34. package/dist/debug/_rels/AppManifest.xml.rels +1 -1
  35. package/dist/debug/_rels/ClientSideAssets.xml.rels +1 -1
  36. package/dist/debug/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml +1 -1
  37. package/dist/debug/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml.config.xml +1 -1
  38. package/dist/deploy/sp-fx-extensions.sppkg +0 -0
  39. package/dist/spfx-extension-application-customizer_a3a347c8bd029396ec50.js +2 -0
  40. package/dist/spfx-extensionloader-web-part_3b393b3ec530c336b801.js +2 -0
  41. package/dist/spfx-extensions-classiccustomaction.js +1 -0
  42. package/dist/spfx-extensions-classicwrapper.js +1 -0
  43. package/dist/spfx-extensions-core.js +1 -0
  44. package/dist/spfx-extensions-coreconfigurator.js +175 -0
  45. package/dist/spfx-extensions-loader_6e8eb68a4b27d7c6f742.js +2 -0
  46. package/gulpfile.js +80 -196
  47. package/package.json +68 -63
  48. package/sharepoint/assets/ClientSideInstance.xml +8 -8
  49. package/sharepoint/assets/elements.xml +8 -8
  50. package/src/@types/globals.d.ts +17 -14
  51. package/src/extensions/spfxExtension/SpfxExtensionApplicationCustomizer.manifest.json +17 -17
  52. package/src/extensions/spfxExtension/SpfxExtensionApplicationCustomizer.ts +70 -70
  53. package/src/extensions/spfxExtension/loc/en-us.js +4 -4
  54. package/src/extensions/spfxExtension/loc/myStrings.d.ts +8 -8
  55. package/src/index.ts +1 -1
  56. package/src/services/initCoreService.ts +68 -60
  57. package/src/utilities/constants.ts +3 -3
  58. package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.manifest.json +34 -34
  59. package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.module.scss +185 -185
  60. package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.ts +767 -767
  61. package/src/webparts/spfxExtensionloader/ai.json +38 -0
  62. package/src/webparts/spfxExtensionloader/loc/en-us.js +15 -15
  63. package/src/webparts/spfxExtensionloader/loc/mystrings.d.ts +19 -19
  64. package/tsconfig.json +25 -25
  65. package/dist/debug/ClientSideAssets/spfx-extension-application-customizer_4ec7a7e885824c810f4a.js +0 -2
  66. package/dist/debug/ClientSideAssets/spfx-extension-core.js +0 -1
  67. package/dist/debug/ClientSideAssets/spfx-extension-coreconfigurator.js +0 -175
  68. package/dist/debug/ClientSideAssets/spfx-extension-loader_a8e9e98c65f5ffdfbd2f.js +0 -2
  69. package/dist/debug/ClientSideAssets/spfx-extension-wrapper.js +0 -1
  70. package/dist/debug/ClientSideAssets/spfx-extensionloader-web-part_02ffe17119fb99560692.js +0 -3
  71. package/dist/spfx-extension-application-customizer_4ec7a7e885824c810f4a.js +0 -2
  72. package/dist/spfx-extension-core.js +0 -1
  73. package/dist/spfx-extension-coreconfigurator.js +0 -175
  74. package/dist/spfx-extension-loader_a8e9e98c65f5ffdfbd2f.js +0 -2
  75. package/dist/spfx-extension-wrapper.js +0 -1
  76. package/dist/spfx-extensionloader-web-part_02ffe17119fb99560692.js +0 -3
  77. package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.module.scss.ts +0 -24
  78. /package/dist/debug/ClientSideAssets/{3be36e80-4431-4b52-99c5-0a339b4e696e_color.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_color.png} +0 -0
  79. /package/dist/debug/ClientSideAssets/{3be36e80-4431-4b52-99c5-0a339b4e696e_outline.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_outline.png} +0 -0
  80. /package/teams/{3be36e80-4431-4b52-99c5-0a339b4e696e_color.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_color.png} +0 -0
  81. /package/teams/{3be36e80-4431-4b52-99c5-0a339b4e696e_outline.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_outline.png} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c=self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c||[]).push([[573],{455:(e,t,n)=>{n.r(t),n.d(t,{initCore:()=>m,registerPlaceHolderProvider:()=>p});var a=n(367),{getPrototypeOf:i,defineProperty:r,getOwnPropertyNames:o}=(Object.create,Object);Object.prototype.hasOwnProperty;const s=n.p+"spfx-extensions-core.js?v=60c587768fe3d8f0d829",c=n.p+"spfx-extensions-coreconfigurator.js?v=2a0fad3198648bc40d23",d=n.p+"spfx-extensions-classicwrapper.js?v=9127f9ef9d0b6b964c3c",l=n.p+"spfx-extensions-classiccustomaction.js?v=9154b65bbd0d97bfd92a";let u=!1;async function f(){return Promise.resolve({coreUrl:s,configuratorUrl:c,wrapperUrl:d,customActionUrl:l})}function p(e,t){u||(u=!0,window.__SPFxExtensions.Utils.placeHolderResolver({placeHolderProvider:e,eventObserver:t}))}async function m(e){if(window.__SPFxExtensions?.__CoreInitializationPromise)return window.__SPFxExtensions.Utils&&!window.__SPFxExtensions.Utils.initializedThroughSPFX&&(window.__SPFxExtensions.Utils.environmentType=e,window.__SPFxExtensions.Utils.initializedThroughSPFX=!0),window.__SPFxExtensions.__CoreInitializationPromise;const{promise:t,resolve:n}=Promise.withResolvers();window.__SPFxExtensions={__CoreInitializationPromise:t,__CoreInitializationResolver:n},console.info(a.Lf,"Initializing Core from SPFx Built:","2026-03-18T23:29:32.165Z"),await async function(e,t){if(window.__SPFxExtensions.__CorePromise)return window.__SPFxExtensions.__CorePromise;!function(e){if(!window.__SPFxExtensions.__CorePromise){let{promise:e,resolve:t}=Promise.withResolvers();window.__SPFxExtensions.__CorePromise=e,window.__SPFxExtensions.__CorePromiseResolver=t}if(!window.__SPFxExtensions.Utils){let{promise:t,resolve:n}=Promise.withResolvers(),{promise:a,resolve:i}=Promise.withResolvers();window.__SPFxExtensions.Utils={environmentType:e,initializedThroughSPFX:true,placeHolderProviderPromise:t,placeHolderResolver:n,appManifestPromises:[],spAppInitializationPromise:a,spAppInitializationPromiseResolver:i,fluentIconsInitialized:!1,ConfiguratorPageUrl:"/sites/appcatalog/SPFxExtensionsData/SitePages/SPFxExtensionsConfigurator.aspx"}}}(t);let n=await async function(e){let t=Number(localStorage.getItem("SPFXEXT")),n={core:"",configuratorUrl:""};if(t>0){let e=Date.now();return n.core=`https://localhost:${t}/spfx-extensions-core.js?v=${e}`,n.configuratorUrl=`https://localhost:${t}/spfx-extensions-coreconfigurator.js?v=${e}`,n}let{coreUrl:a,configuratorUrl:i}=await e();if(!a)throw Error("[SPFxExtensions/Core] Unable to resolve SPFx Core location");if(!i)throw Error("[SPFxExtensions/Core] Unable to resolve SPFx Core Configurator location");return n.core=a,n.configuratorUrl=i,n}(e);window.__SPFxExtensions.__ConfiguratorUrl=n.configuratorUrl,console.info("[SPFxExtensions/Core]","Loading SPFxExtensions Core from",n);let a=document.createElement("script");return a.src=n.core,a.type="module",a.addEventListener("error",e=>{console.error("[SPFxExtensions/Core]","Catastrophic failure, cannot load SPFxExtensions Core from",n,e)}),document.head.appendChild(a),window.__SPFxExtensions.__CorePromise}(f,e),window.__SPFxExtensions.__CoreInitializationResolver()}}
2
+ }]);
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="Client Side Assets" Description="A feature that help deploy client side component assets to SharePoint Online." Id="ea43da30-f9c4-41bf-bbbc-f55571556038" Version="1.0.0.0" Scope="Web" Hidden="FALSE"></Feature>
1
+ <?xml version="1.0" encoding="utf-8"?><Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="Client Side Assets" Description="A feature that help deploy client side component assets to SharePoint Online." Id="cf22dd58-e2f7-430c-8991-6d5762621e61" Version="1.0.0.0" Scope="Web" Hidden="FALSE"></Feature>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><AppPartConfig xmlns="http://schemas.microsoft.com/sharepoint/2012/app/partconfiguration"><Id>022ad73b-dc90-48cb-bf11-35a7b22354ac</Id></AppPartConfig>
1
+ <?xml version="1.0" encoding="utf-8"?><AppPartConfig xmlns="http://schemas.microsoft.com/sharepoint/2012/app/partconfiguration"><Id>05ee05ca-e06a-4080-bbba-6237ca93fcc7</Id></AppPartConfig>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/manifest-feature" Target="/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml" Id="r15"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/manifest-clientsideasset" Target="/ClientSideAssets.xml" Id="r16"></Relationship></Relationships>
1
+ <?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/manifest-feature" Target="/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml" Id="r16"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/manifest-clientsideasset" Target="/ClientSideAssets.xml" Id="r17"></Relationship></Relationships>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/partconfiguration" Target="/ClientSideAssets.xml.config.xml" Id="r6"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-application-customizer_4ec7a7e885824c810f4a.js" Id="r7"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-core.js" Id="r8"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-coreconfigurator.js" Id="r9"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-loader_a8e9e98c65f5ffdfbd2f.js" Id="r10"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-wrapper.js" Id="r11"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensionloader-web-part_02ffe17119fb99560692.js" Id="r12"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/3be36e80-4431-4b52-99c5-0a339b4e696e_color.png" Id="r13"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/3be36e80-4431-4b52-99c5-0a339b4e696e_outline.png" Id="r14"></Relationship></Relationships>
1
+ <?xml version="1.0" encoding="utf-8"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/partconfiguration" Target="/ClientSideAssets.xml.config.xml" Id="r6"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extension-application-customizer_a3a347c8bd029396ec50.js" Id="r7"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensionloader-web-part_3b393b3ec530c336b801.js" Id="r8"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensions-classiccustomaction.js" Id="r9"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensions-classicwrapper.js" Id="r10"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensions-core.js" Id="r11"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensions-coreconfigurator.js" Id="r12"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/spfx-extensions-loader_6e8eb68a4b27d7c6f742.js" Id="r13"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/d6ca1fc2-0591-4c6d-8a25-cae3262c017b_color.png" Id="r14"></Relationship><Relationship Type="http://schemas.microsoft.com/sharepoint/2012/app/relationships/clientsideasset" Target="/ClientSideAssets/d6ca1fc2-0591-4c6d-8a25-cae3262c017b_outline.png" Id="r15"></Relationship></Relationships>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="Application Extension - Deployment of custom action" Description="Deploys a custom action with ClientSideComponentId association" Id="83e13c11-682e-4eaa-9ae0-74617ca28f96" Version="1.6.1.0" Scope="Web" Hidden="FALSE"></Feature>
1
+ <?xml version="1.0" encoding="utf-8"?><Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="Application Extension - Deployment of custom action" Description="Deploys a custom action with ClientSideComponentId association" Id="83e13c11-682e-4eaa-9ae0-74617ca28f96" Version="1.6.3.0" Scope="Web" Hidden="FALSE"></Feature>
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="utf-8"?><AppPartConfig xmlns="http://schemas.microsoft.com/sharepoint/2012/app/partconfiguration"><Id>7f9af281-704d-47c5-9a34-0741a008f627</Id></AppPartConfig>
1
+ <?xml version="1.0" encoding="utf-8"?><AppPartConfig xmlns="http://schemas.microsoft.com/sharepoint/2012/app/partconfiguration"><Id>0fff8096-5f47-48bd-8828-41e4b5eb5df7</Id></AppPartConfig>
Binary file
@@ -0,0 +1,2 @@
1
+ (()=>{var e=document.currentScript;define("8d1029da-85e6-48cc-aaaf-37a5bbc0b9be_1.6.3",["@microsoft/sp-application-base"],t=>(()=>{"use strict";var n,a,i,r={367:(e,t,n)=>{n.d(t,{Lf:()=>a});const a="[SPFxExtensions]"}
2
+ ,841:e=>{e.exports=t}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,s),n.exports}s.m=r,s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,n)=>(s.f[n](e,t),t),[])),s.u=e=>"spfx-extensions-loader_6e8eb68a4b27d7c6f742.js",s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},a="ae216b2de8bd1132c7f194bc5845cc9c:",s.l=(e,t,i,r)=>{if(n[e])n[e].push(t);else{var o,c;if(void 0!==i)for(var d=document.getElementsByTagName("script"),l=0;l<d.length;l++){var u=d[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==a+i){o=u;break}}o||(c=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,s.nc&&o.setAttribute("nonce",s.nc),o.setAttribute("data-webpack",a+i),o.src=e,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous")),n[e]=[t];var f=(t,a)=>{o.onerror=o.onload=null,clearTimeout(p);var i=n[e];if(delete n[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach(e=>e(a)),t)return t(a)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=f.bind(null,o.onerror),o.onload=f.bind(null,o.onload),c&&document.head.appendChild(o)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i=e?e.src:"",s.p=i.slice(0,i.lastIndexOf("/")+1),(()=>{var e={39:0};s.f.j=(t,n)=>{var a=s.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var i=new Promise((n,i)=>a=e[t]=[n,i]);n.push(a[2]=i);var r=s.p+s.u(t),o=new Error;s.l(r,n=>{if(s.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",o.name="ChunkLoadError",o.type=i,o.request=r,a[1](o)}},"chunk-"+t,t)}};var t=(t,n)=>{var a,i,[r,o,c]=n,d=0;if(r.some(t=>0!==e[t])){for(a in o)s.o(o,a)&&(s.m[a]=o[a]);c&&c(s)}for(t&&t(n);d<r.length;d++)i=r[d],s.o(e,i)&&e[i]&&e[i][0](),e[i]=0},n=self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c=self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var c={};return(()=>{s.r(c),s.d(c,{default:()=>n});var e=s(841),t=s(367);class n extends e.BaseApplicationCustomizer{corePromise=new Promise(e=>{s.e(573).then(s.bind(s,455)).then(({initCore:n,registerPlaceHolderProvider:a})=>{n("SharePoint").then(()=>{a(this.context.placeholderProvider,this),e(!0)}).catch(e=>{console.error(t.Lf,"Error while initializing core from application customizer",e)})}).catch(e=>{console.error(t.Lf,"Error while importing core from application customizer",e)})});async onInit(){await this.corePromise}waitAndNotifyPlaceholderChanged(e){this.corePromise.then(()=>{window.__SPFxExtensions.Apps.forEach(t=>{t.instances.forEach(t=>{t.executeListeners("onPlaceholdersChanged",e)})})}).catch(()=>{})}onPlaceholdersChanged(e){this.waitAndNotifyPlaceholderChanged(e)}onDispose(){window.__SPFxExtensions?.Apps?.forEach(e=>{e.instances.forEach(e=>{e.executeListeners("onAppCustomizerDisposed",void 0)})})}}})(),c})())})();
@@ -0,0 +1,2 @@
1
+ (()=>{var e=document.currentScript;define(["@microsoft/sp-core-library","@microsoft/sp-property-pane","@microsoft/sp-webpart-base","@microsoft/sp-component-base"],(t,n,a,i)=>(()=>{"use strict";var r,o,s,c={367:(e,t,n)=>{n.d(t,{Bc:()=>r,Lf:()=>o,Ne:()=>a,oz:()=>i});const a="Select one of these web parts for this column.",i="Edit page and select webpart.",r="Webpart that loads an app of your choice.",o="[SPFxExtensions]"}
2
+ ,962:e=>{e.exports=i},676:e=>{e.exports=t},877:e=>{e.exports=n},642:e=>{e.exports=a}},d={};function l(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return c[e](n,n.exports,l),n.exports}l.m=c,l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((t,n)=>(l.f[n](e,t),t),[])),l.u=e=>"spfx-extensions-loader_6e8eb68a4b27d7c6f742.js",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="ae216b2de8bd1132c7f194bc5845cc9c:",l.l=(e,t,n,a)=>{if(r[e])r[e].push(t);else{var i,s;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+n){i=u;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",o+n),i.src=e,0!==i.src.indexOf(window.location.origin+"/")&&(i.crossOrigin="anonymous")),r[e]=[t];var f=(t,n)=>{i.onerror=i.onload=null,clearTimeout(p);var a=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(n)),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),s&&document.head.appendChild(i)}},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s=e?e.src:"",l.p=s.slice(0,s.lastIndexOf("/")+1),(()=>{var e={650:0};l.f.j=(t,n)=>{var a=l.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var i=new Promise((n,i)=>a=e[t]=[n,i]);n.push(a[2]=i);var r=l.p+l.u(t),o=new Error;l.l(r,n=>{if(l.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var i=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+r+")",o.name="ChunkLoadError",o.type=i,o.request=r,a[1](o)}},"chunk-"+t,t)}};var t=(t,n)=>{var a,i,[r,o,s]=n,c=0;if(r.some(t=>0!==e[t])){for(a in o)l.o(o,a)&&(l.m[a]=o[a]);s&&s(l)}for(t&&t(n);c<r.length;c++)i=r[c],l.o(e,i)&&e[i]&&e[i][0](),e[i]=0},n=self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c=self.webpackJsonp_ae216b2de8bd1132c7f194bc5845cc9c||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var u={};return(()=>{l.r(u),l.d(u,{default:()=>v});var e,t,n,a=l(676),i=l(877),r=l(642),o=l(367),s=l(962),c=function(){return c=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},c.apply(this,arguments)},d="undefined"==typeof window?l.g:window,f=d&&d.CSPSettings&&d.CSPSettings.nonce,p=((n=d.__themeState__||{theme:void 0,lastStyleElement:void 0,registeredStyles:[]}).runState||(n=c(c({},n),{perf:{count:0,duration:0},runState:{flushTimer:0,mode:0,buffer:[]}})),n.registeredThemableStyles||(n=c(c({},n),{registeredThemableStyles:[]})),d.__themeState__=n,n),m=/[\'\"]\[theme:\s*(\w+)\s*(?:\,\s*default:\s*([\\"\']?[\.\,\(\)\#\-\s\w]*[\.\,\(\)\#\-\w][\"\']?))?\s*\][\'\"]/g,_=function(){return"undefined"!=typeof performance&&performance.now?performance.now():Date.now()};function h(e){var t=_();e();var n=_();p.perf.duration+=n-t}function b(e,t){p.loadStyles?p.loadStyles(g(e).styleString,e):function(e){if("undefined"!=typeof document){var t=document.getElementsByTagName("head")[0],n=document.createElement("style"),a=g(e),i=a.styleString,r=a.themable;n.setAttribute("data-load-themed-styles","true"),f&&n.setAttribute("nonce",f),n.appendChild(document.createTextNode(i)),p.perf.count++,t.appendChild(n);var o=document.createEvent("HTMLEvents");o.initEvent("styleinsert",!0,!1),o.args={newStyle:n},document.dispatchEvent(o);var s={styleElement:n,themableStyle:e};r?p.registeredThemableStyles.push(s):p.registeredStyles.push(s)}}(e)}function g(e){var t=p.theme,n=!1;return{styleString:(e||[]).map(function(e){var a=e.theme;if(a){n=!0;var i=t?t[a]:void 0,r=e.defaultValue||"inherit";return t&&!i&&console,i||r}return e.rawString}).join(""),themable:n}}e='.spfxExtensionloader_845cef2a{color:"[theme:bodyText, default: #323130]";color:var(--bodyText);overflow:hidden;padding:1em}.spfxExtensionloader_845cef2a.teams_845cef2a{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}.welcome_845cef2a{text-align:center}.welcomeImage_845cef2a{max-width:420px;width:100%}.links_845cef2a a{color:"[theme:link, default:#03787c]";color:var(--link);text-decoration:none}.links_845cef2a a:hover{color:"[theme:linkHovered, default: #014446]";color:var(--linkHovered);text-decoration:underline}.SPFxExtensionApp_845cef2a .loader_845cef2a{animation:rotation_845cef2a 1s linear infinite;border:2px solid #003755;border-bottom-color:#009fda;border-radius:50%;box-sizing:border-box;display:inline-block;height:28px;width:28px}@keyframes rotation_845cef2a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.SPFxExtensionApp_845cef2a .buttonLoader_845cef2a{align-items:center;border:none;display:flex;height:80px;justify-content:center;width:120px}.SPFxExtensionApp_845cef2a .shimmerShine_845cef2a{-webkit-animation-duration:1s;-webkit-animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;-webkit-animation-name:placeholderShimmer_845cef2a;-webkit-animation-timing-function:linear;background:#f6f7f8;background-image:linear-gradient(90deg,#f6f7f8 0,#edeef1 20%,#f6f7f8 40%,#f6f7f8);background-repeat:no-repeat;background-size:200px 80px;border:none;display:block;height:80px;position:relative;width:120px}@keyframes placeholderShimmer_845cef2a{0%{background-position:-80px 0}to{background-position:120px 0}}.SPFxExtensionApp_845cef2a .applicationListSection_845cef2a{display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center;min-height:320px;text-align:center}.SPFxExtensionApp_845cef2a .header_845cef2a{color:#242424;font-weight:600;letter-spacing:1px;line-height:32px;padding:0 12px}.SPFxExtensionApp_845cef2a .icon_845cef2a{font-size:28px;font-style:normal;height:28px;line-height:28px;min-width:28px;width:28px}.SPFxExtensionApp_845cef2a .icon_845cef2a>img,.SPFxExtensionApp_845cef2a .icon_845cef2a>svg{height:auto;width:100%}.SPFxExtensionApp_845cef2a .iconFont_845cef2a{background-color:#f6f7f8}.SPFxExtensionApp_845cef2a .appButtonsContainer_845cef2a{align-items:center;display:flex;flex-wrap:wrap;height:100%;justify-content:center}.SPFxExtensionApp_845cef2a .appButtonsWrapper_845cef2a{-ms-flex-pack:start;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:flex-start;width:100%}.SPFxExtensionApp_845cef2a .appButton_845cef2a{align-items:center;background-color:unset;border:none;display:flex;flex-direction:column;height:80px;padding-top:14px;width:120px}.SPFxExtensionApp_845cef2a .appButton_845cef2a:hover{background-color:#c8e3fa}',void 0===(t=!0)&&(t=!1),h(function(){var n=Array.isArray(e)?e:function(e){var t=[];if(e){for(var n=0,a=void 0;a=m.exec(e);){var i=a.index;i>n&&t.push({rawString:e.substring(n,i)}),t.push({theme:a[1],defaultValue:a[2]}),n=m.lastIndex}t.push({rawString:e.substring(n)})}return t}(e),a=p.runState,i=a.mode,r=a.buffer,o=a.flushTimer;t||1===i?(r.push(n),o||(p.runState.flushTimer=setTimeout(function(){p.runState.flushTimer=0,h(function(){var e=p.runState.buffer.slice();p.runState.buffer=[];var t=[].concat.apply([],e);t.length>0&&b(t)})},0))):b(n)});class v extends r.BaseClientSideWebPart{configuratorUrl="/sites/appcatalog/SPFxExtensionsData/SitePages/SPFxExtensionsConfigurator.aspx";coreInitPromise=new Promise(e=>{l.e(573).then(l.bind(l,455)).then(({initCore:t})=>{t(a.Environment.type===a.EnvironmentType.SharePoint?"SharePoint":"ClassicSharePoint").then(()=>{this.configuratorUrl=window.__SPFxExtensions.Utils.ConfiguratorPageUrl,e(!0)}).catch(e=>{console.error(o.Lf,"Initializing SPFxExtensions Core from WebPart failed",e)})}).catch(e=>{console.error(o.Lf,"Importing SPFxExtensions Core from WebPart failed",e)})});SPFxExtensionInstance;allApps=[];dropDownProps={options:[],selectedKey:"",disabled:!0};appDescription="";hideAppSelectorWhenAppLoaded=!1;hideConfiguratorButton=!1;configDomElement;themeProvider;serviceScope;appButtonElements=[];webpartSectionElement=document.createElement("section");webpartSectionTitle=document.createElement("header");appButtonsWrapper=document.createElement("div");appButtonsContainer=document.createElement("div");appAddedListenerRegistration;webPartContext;webPartComponentId;webPartInstanceId;webPartWidth;async onInit(){this.themeProvider=this.context.serviceScope.consume(s.ThemeProvider.serviceKey),this.serviceScope=this.context.serviceScope,this.webPartContext=this.context,this.webPartInstanceId=this.instanceId,this.webPartComponentId=this.componentId,this.webPartWidth=this.width,await this.coreInitPromise}openPropertyPane(){this.context.propertyPane.open()}closePropertyPane(){this.context.propertyPane.close()}isPropertyPaneOpen(){return this.context.propertyPane.isPropertyPaneOpen()}saveConfigValue(e,t=!0){this.properties.SPFxExtensionAppConfiguration=e,t&&this.SPFxExtensionInstance?.executeListeners("onConfigurationChange",e)}getConfigValue(e){if(e){let t=this.properties[e];return void 0===t&&(t=this.properties.SPFxExtensionAppConfiguration),t}return this.properties.SPFxExtensionAppConfiguration}getSearchData(){return{searchableText:this.properties.searchableText,searchableHtml:this.properties.searchableHtml}}setSearchData(e){this.properties.searchableText=e.searchableText,this.properties.searchableHtml=e.searchableHtml}getTopActions(){return this.properties.topActions??[]}setTopActions(e){this.properties.topActions=e??[]}getThemeProvider(){return this.themeProvider}getConfigDomElement(){return this.configDomElement}getContext(){return this.webPartContext}getServiceScope(){return this.serviceScope}async mountApp(e){this.domElement.innerHTML="";try{const t={domElement:this.domElement,webpart:this,openPropertyPane:()=>{this.openPropertyPane()},closePropertyPane:()=>{this.closePropertyPane()},isPropertyPaneOpen:()=>this.isPropertyPaneOpen(),saveConfigValue:(e,t=!0)=>{this.saveConfigValue(e,t)},getConfigValue:e=>this.getConfigValue(e),getSearchableData:()=>this.getSearchData(),setSearchableData:e=>{this.setSearchData(e)},setTopActions:e=>{this.setTopActions(e)},getTopActions:()=>this.getTopActions(),getThemeProvider:()=>this.getThemeProvider(),getConfigDomElement:()=>this.getConfigDomElement(),getContext:()=>this.getContext(),getServiceScope:()=>this.getServiceScope()};if(this.SPFxExtensionInstance=await window.__SPFxExtensions.InstantiateApp(e,t),!this.SPFxExtensionInstance)return void console.warn(o.Lf,"App instance is undefined, cannot mount app",e);const n=window.__SPFxExtensions.Apps.find(t=>t.id===e);n&&(this.appDescription=n.description)}catch(t){return console.error(o.Lf,"Error while mounting appid",e,t),new Error(`${t}`)}}unmountApp(){this.SPFxExtensionInstance&&this.SPFxExtensionInstance.unmount?.(),this.SPFxExtensionInstance=void 0,this.domElement.innerHTML=""}generateIconElement(e){const t=document.createElement("i");if(t.classList.add("icon_845cef2a"),!e)return t.innerHTML='<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="28" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg"><path d="M20.84 2.66a2.25 2.25 0 0 0-3.18 0L13.5 6.8v-.56c0-1.24-1-2.25-2.25-2.25h-7C3.01 4 2 5.01 2 6.25v18c0 .97.78 1.75 1.75 1.75h18c1.24 0 2.25-1 2.25-2.25v-7c0-1.24-1-2.25-2.25-2.25h-.56l4.16-4.15c.88-.88.88-2.3 0-3.19l-4.5-4.5ZM17.31 14.5H13.5v-3.8l3.8 3.8Zm1.41-10.78c.3-.3.77-.3 1.06 0l4.5 4.5c.3.3.3.77 0 1.06l-4.5 4.51c-.3.3-.77.3-1.06 0l-4.5-4.5a.75.75 0 0 1 0-1.07l4.5-4.5ZM12 6.25v8.25H3.5V6.25c0-.41.34-.75.75-.75h7c.41 0 .75.34.75.75Zm-8.5 17.5V16H12v8.5H4.25a.75.75 0 0 1-.75-.75Zm10-7.75h8.25c.41 0 .75.34.75.75v7c0 .42-.34.75-.75.75H13.5V16Z" fill="currentColor"></path></svg>',t;if("font"===e.iconType&&e.fontFamily&&(t.style.fontFamily=e.fontFamily,t.classList.add("iconFont_845cef2a")),"url"===e.iconType){const n=document.createElement("img");n.src=e.iconData,n.alt="",t.appendChild(n)}return"svg"===e.iconType&&(t.innerHTML=e.iconData),t}createAndAppendAppButtons(e){const t=document.createElement("button");t.title=o.Bc,t.ariaLabel=o.Bc,t.className="appButton_845cef2a";const n=this.generateIconElement(e.icon);t.append(n,e.name),t.title=e.name,t.addEventListener("click",t=>{t.stopPropagation(),t.preventDefault(),this.properties.selectedApp=e.id,this.webpartSectionElement.remove(),this.dropDownProps.selectedKey=e.id,this.context.propertyPane.refresh(),this.mountApp(e.id).catch(()=>{})}),this.appButtonsContainer.appendChild(t),this.appButtonElements.push(t)}createWebpartSection(e){this.webpartSectionElement.className="applicationListSection_845cef2a",this.webpartSectionTitle.className="header_845cef2a",this.webpartSectionElement.appendChild(this.webpartSectionTitle),e&&this.webpartSectionElement.appendChild(this.appButtonsWrapper)}renderDisplayMode(){this.webpartSectionElement.ariaLabel=o.oz,this.webpartSectionTitle.textContent=o.oz,this.createWebpartSection(),this.domElement.appendChild(this.webpartSectionElement)}async renderEditMode(){this.webpartSectionElement.ariaLabel=o.Ne,this.webpartSectionTitle.textContent=o.Ne,this.createWebpartSection(!0),this.appButtonsContainer.className="appButtonsContainer_845cef2a",this.appButtonsContainer.innerHTML="",this.appButtonsWrapper.appendChild(this.appButtonsContainer),this.appButtonsWrapper.className="appButtonsWrapper_845cef2a",this.domElement.appendChild(this.webpartSectionElement),this.appAddedListenerRegistration||(this.appAddedListenerRegistration=window.__SPFxExtensions.AddAppEventListener("appAdded",e=>{e.isWebPartApp&&this.createAndAppendAppButtons(e)})),window.__SPFxExtensions.Apps.filter(e=>e.registrationCompleted).forEach(e=>{e.isWebPartApp&&this.createAndAppendAppButtons(e)});try{await window.__SPFxExtensions.Utils.spAppInitializationPromise,window.__SPFxExtensions.Utils.appManifestPromises.forEach(e=>{const t=document.createElement("div"),n=document.createElement("span");t.className="buttonLoader_845cef2a",n.className="loader_845cef2a",t.appendChild(n),this.appButtonsContainer.append(t),e.catch(()=>{}).finally(()=>{t.remove()})})}catch(e){return console.error(o.Lf,"Error while awaiting app initialization",e),new Error(`Error while awaiting app initialization: ${e}`)}}async renderEmptyApp(){if(this.domElement.innerHTML="",this.domElement.className="SPFxExtensionApp_845cef2a",this.displayMode!==a.DisplayMode.Read)return this.renderEditMode();this.renderDisplayMode()}async render(){let e;await this.coreInitPromise;try{if(this.SPFxExtensionInstance){if(!this.SPFxExtensionInstance.unmountOnRender)return void this.SPFxExtensionInstance.executeListeners("onRender",void 0);this.unmountApp()}if(this.properties.selectedApp&&!this.SPFxExtensionInstance)return void(e=await this.mountApp(this.properties.selectedApp));e=await this.renderEmptyApp()}finally{this.renderCompleted(e,!0)}}renderCompleted(e,t){super.renderCompleted(e,t)}get isRenderAsync(){return!0}get propertiesMetadata(){return{searchableText:{isSearchablePlainText:!0},searchableHtml:{isHtmlString:!0}}}CustomWebpartConfigurationField(e){return{type:i.PropertyPaneFieldType.Custom,targetProperty:e,properties:{key:e,onRender:(e,t,n)=>{this.configDomElement=e,this.SPFxExtensionInstance?.instanceLoadPromise.then(()=>{this.SPFxExtensionInstance?.executeListeners("onConfigurationRender",{domElement:e})}).catch(e=>{console.error(o.Lf,"Error while awaiting app to load",e)})},onDispose:(e,t)=>{this.SPFxExtensionInstance?.executeListeners("onConfigurationClose",{domElement:e}),this.configDomElement=void 0}}}}onPropertyPaneConfigurationStart(){window.__SPFxExtensions.AllAppAssetsLoadedPromise.then(()=>{const e=window.__SPFxExtensions.Apps.find(e=>e.id===this.properties.selectedApp);e&&(this.appDescription=e.description,this.hideAppSelectorWhenAppLoaded=e.hideAppSelectorWhenAppLoaded??!1,this.hideConfiguratorButton=e.hideConfiguratorButton??!1),this.dropDownProps.options?.splice(0,this.dropDownProps.options?.length);const t=window.__SPFxExtensions.Apps.filter(e=>e.isWebPartApp).map(e=>({key:e.id,text:e.name}));this.dropDownProps.options?.push(...t),this.dropDownProps.selectedKey=this.properties.selectedApp,this.dropDownProps.disabled=!1,this.context.propertyPane.refresh()}).catch(e=>{console.error(o.Lf,"Error while awaiting all app assets to load",e)})}getPropertyPaneConfiguration(){const e={groupFields:[(0,i.PropertyPaneLabel)("spfxExtensionLoaderLabel",{text:"App not working? Try refreshing the page. Or go to the configuration page."}),(0,i.PropertyPaneButton)("configuratorButton",{text:"Open Configurator",buttonType:1,onClick:()=>{window.open(`${this.configuratorUrl}?web=${this.context.pageContext.web.absoluteUrl}`,"_blank")}})]},t=this.hideConfiguratorButton?[]:[e],n={groupFields:[(0,i.PropertyPaneDropdown)("selectedApp",{label:"App",disabled:this.dropDownProps.disabled,options:this.dropDownProps.options,selectedKey:this.dropDownProps.selectedKey}),(0,i.PropertyPaneLabel)("selectedAppDecription",{text:this.appDescription})]};return{pages:[{groups:[...t,...this.hideAppSelectorWhenAppLoaded?[]:[n],{groupFields:[this.CustomWebpartConfigurationField("SPFxExtensionAppConfiguration")]}]}]}}getTopActionsConfiguration(){return{topActions:this.properties.topActions??[],onExecute:(e,t)=>{this.SPFxExtensionInstance?.executeListeners("onTopActionExecute",{actionName:e,updatedValue:t})}}}onPropertyPaneConfigurationComplete(){!this.context.propertyPane.isPropertyPaneOpen()&&this.SPFxExtensionInstance&&this.SPFxExtensionInstance.executeListeners("onConfigurationClose",{domElement:this.configDomElement})}onPropertyPaneFieldChanged(e,t,n){if("selectedApp"===e){if(t&&t!==n&&this.SPFxExtensionInstance){if(!confirm("You are about to switch app, this will erase all previous app configuration. Are you sure?"))return void(this.properties[e]=t);this.unmountApp()}n&&(this.webpartSectionElement.remove(),this.mountApp(n).catch(()=>{}))}}onDisplayModeChanged(e){const t=e===a.DisplayMode.Edit?"Read":"Edit";this.SPFxExtensionInstance?.executeListeners("onDisplayModeChange",t)}onAfterPropertyPaneChangesApplied(){this.SPFxExtensionInstance?.executeListeners("onPropertyPaneChangesApplied",void 0)}onAfterResize(e){this.SPFxExtensionInstance?.executeListeners("onAfterResize",{newWidth:e})}onDispose(){this.unmountApp(),this.appAddedListenerRegistration&&window.__SPFxExtensions.RemoveAppEventListener&&(window.__SPFxExtensions.RemoveAppEventListener(this.appAddedListenerRegistration),this.appAddedListenerRegistration=void 0),this.appButtonElements.forEach(e=>{e.remove()}),this.appButtonElements.splice(0,this.appButtonElements.length),this.webpartSectionElement.remove(),this.webpartSectionTitle.remove(),this.appButtonsWrapper.remove(),this.appButtonsContainer.remove()}onThemeChanged(e){this.SPFxExtensionInstance?.executeListeners("onThemeChange",e)}get dataVersion(){return a.Version.parse("1.0")}}})(),u})())})();
@@ -0,0 +1 @@
1
+ (async()=>{let s=document.currentScript,o="/sites/appcatalog/ClientSideAssets/7d56fff0-e90e-40a7-98cf-fcdbc63a9b01/",n="spfx-extensions-classicwrapper.js",e=s?.src??"/sites/appcatalog/ClientSideAssets/7d56fff0-e90e-40a7-98cf-fcdbc63a9b01/";if(!s?.src)console.warn("[SPFxExtensions/ClassicCustomAction] Could not determine script source, falling back to default url.","/sites/appcatalog/ClientSideAssets/7d56fff0-e90e-40a7-98cf-fcdbc63a9b01/");let r=e.slice(0,e.lastIndexOf("/")+1),t=Number(window.localStorage.getItem("SPFXEXT")),a=t>0?`https://localhost:${t}/spfx-extensions-classicwrapper.js?v=${Date.now()}`:`${r}spfx-extensions-classicwrapper.js?v=${Date.now()}`;try{(await import(a)).init()}catch(c){console.error("Error loading classic wrapper",c)}})();
@@ -0,0 +1 @@
1
+ var Y=Object.create;var{getPrototypeOf:Z,defineProperty:L,getOwnPropertyNames:$}=Object;var b=Object.prototype.hasOwnProperty;function A(j){return this[j]}var D,M,m=(j,k,q)=>{var B=j!=null&&typeof j==="object";if(B){var G=k?D??=/*@__PURE__*/new WeakMap:M??=/*@__PURE__*/new WeakMap,H=G.get(j);if(H)return H}q=j!=null?Y(Z(j)):{};let J=k||!j||!j.__esModule?L(q,"default",{value:j,enumerable:!0}):q;for(let K of $(j))if(!b.call(J,K))L(J,K,{get:A.bind(j,K),enumerable:!0});if(B)G.set(j,J);return J};var y=(j,k)=>()=>(k||j((k={exports:{}}).exports,k),k.exports);var f=(j)=>j;function w(j,k){this[j]=f.bind(null,k)}var z=(j,k)=>{for(var q in k)L(j,q,{get:k[q],enumerable:!0,configurable:!0,set:w.bind(k,q)})};async function N(j){let k=Number(localStorage.getItem("SPFXEXT")),q={core:"",configuratorUrl:""};if(k>0){let H=Date.now();return q.core=`https://localhost:${k}/spfx-extensions-core.js?v=${H}`,q.configuratorUrl=`https://localhost:${k}/spfx-extensions-coreconfigurator.js?v=${H}`,q}let{coreUrl:B,configuratorUrl:G}=await j();if(!B)throw Error("[SPFxExtensions/Core] Unable to resolve SPFx Core location");if(!G)throw Error("[SPFxExtensions/Core] Unable to resolve SPFx Core Configurator location");return q.core=B,q.configuratorUrl=G,q}function O(j,k){if(!window.__SPFxExtensions.__CorePromise){let{promise:q,resolve:B}=Promise.withResolvers();window.__SPFxExtensions.__CorePromise=q,window.__SPFxExtensions.__CorePromiseResolver=B}if(!window.__SPFxExtensions.Utils){let{promise:q,resolve:B}=Promise.withResolvers(),{promise:G,resolve:H}=Promise.withResolvers();window.__SPFxExtensions.Utils={environmentType:j,initializedThroughSPFX:k,placeHolderProviderPromise:q,placeHolderResolver:B,appManifestPromises:[],spAppInitializationPromise:G,spAppInitializationPromiseResolver:H,fluentIconsInitialized:!1,ConfiguratorPageUrl:"/sites/appcatalog/SPFxExtensionsData/SitePages/SPFxExtensionsConfigurator.aspx"}}}async function V(j,k,q){if(window.__SPFxExtensions.__CorePromise)return window.__SPFxExtensions.__CorePromise;O(k,q);let B=await N(j);window.__SPFxExtensions.__ConfiguratorUrl=B.configuratorUrl,console.info("[SPFxExtensions/Core]","Loading SPFxExtensions Core from",B);let G=document.createElement("script");return G.src=B.core,G.type="module",G.addEventListener("error",(H)=>{console.error("[SPFxExtensions/Core]","Catastrophic failure, cannot load SPFxExtensions Core from",B,H)}),document.head.appendChild(G),window.__SPFxExtensions.__CorePromise}var Q="[SPFxExtensions/Wrapper]",_=!window._spBodyOnLoadFunctions;async function W(){if(_){console.error(Q,"This module can only be initialized in classic mode");return}if(window.__SPFxExtensions?.__CoreInitializationPromise)return window.__SPFxExtensions.__CoreInitializationPromise;let{promise:j,resolve:k}=Promise.withResolvers();window.__SPFxExtensions={__CoreInitializationPromise:j,__CoreInitializationResolver:k},console.info(Q,"Initializing SPFxExtensions Core from Classic SharePoint page");let q=import.meta.resolve(`./spfx-extensions-core.js?v=${Date.now()}`),B=import.meta.resolve(`./spfx-extensions-coreconfigurator.js?v=${Date.now()}`);await V(async()=>{return{coreUrl:q,configuratorUrl:B}},"ClassicSharePoint",!1),window.__SPFxExtensions.__CoreInitializationResolver()}function d(){if(!window._spBodyOnLoadCalled&&window._spBodyOnLoadFunctions){window._spBodyOnLoadFunctions.push(W);return}if(window._spBodyOnLoadCalled){W();return}console.error(Q,"No _spBodyOnLoadFunctions or _spBodyOnLoadCalled object present. Can not initialize classic wrapper")}export{d as init};
@@ -0,0 +1 @@
1
+ var e1=Object.create;var{getPrototypeOf:xw,defineProperty:Kx,getOwnPropertyNames:ww}=Object;var $w=Object.prototype.hasOwnProperty;function yw(x){return this[x]}var _w,nw,d9=(x,w,$)=>{var y=x!=null&&typeof x==="object";if(y){var _=w?_w??=/*@__PURE__*/new WeakMap:nw??=/*@__PURE__*/new WeakMap,n=_.get(x);if(n)return n}$=x!=null?e1(xw(x)):{};let Q=w||!x||!x.__esModule?Kx($,"default",{value:x,enumerable:!0}):$;for(let V of ww(x))if(!$w.call(Q,V))Kx(Q,V,{get:yw.bind(x,V),enumerable:!0});if(y)_.set(x,Q);return Q};var S9=(x,w)=>()=>(w||x((w={exports:{}}).exports,w),w.exports);var Qw=(x)=>x;function Zw(x,w){this[x]=Qw.bind(null,w)}var h9=(x,w)=>{for(var $ in w)Kx(x,$,{get:w[$],enumerable:!0,configurable:!0,set:Zw.bind(w,$)})};var px="7d56fff0-e90e-40a7-98cf-fcdbc63a9b01",Jx="d6ca1fc2-0591-4c6d-8a25-cae3262c017b",A="45e75137-13c5-4bb2-a2b3-8ab6382682ee",ix="SPFxExtensionsConfigurator",T="SitePages/SPFxExtensionsConfigurator.aspx",G="manifest.txt",D="collectionconfig.txt",Wx="Loading...",h="SPFxExtensionsConfiguration",M="SPFxExtensionsWhiteList",v9="SPFxExtensions",v="/SPFxExtensions/",H="SPFxExtensionsData",X="[SPFxExtensionCore]",qx={appDefinitionMap:[],appRelativeEntryPointUrls:[],manualEntries:[]},C9={enabledEverywhere:!1,excludedHubIds:[],excludedIds:[],includedHubIds:[],includedIds:[]},Hx={enabledAppCollections:[],urlMap:[]},t="00000000-0000-0000-0000-000000000000";async function f9(){if(window.moduleLoaderPromise)return(await window.moduleLoaderPromise)?.context;console.error("Unable to retrieve Modern SP Context...")}async function sx(){if(window.moduleLoaderPromise){let x=await window.moduleLoaderPromise;if(x?.context?.pageContext)return{contextType:"SPOModernContext",context:x.context.pageContext};throw"It seems this is a modern page, however it was not possible to retrieve SP Context..."}if(window._spPageContextInfo)return{contextType:"ClassicContext",context:window._spPageContextInfo};throw"It was not possible to retrieve SP Context either through modern or through classic means..."}function B(x,w,$=x){return(y)=>{let _=""+y,n=_.indexOf(w,x.length);return~n?x+Vw(_,w,$,n)+w:x+_+w}}function Vw(x,w,$,y){let _="",n=0;do _+=x.substring(n,y)+$,n=y+w.length,y=x.indexOf(w,n);while(~y);return _+x.substring(n)}var N9=B("\x1B[0m","\x1B[0m"),u9=B("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),I9=B("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),T9=B("\x1B[3m","\x1B[23m"),t9=B("\x1B[4m","\x1B[24m"),c9=B("\x1B[7m","\x1B[27m"),p9=B("\x1B[8m","\x1B[28m"),i9=B("\x1B[9m","\x1B[29m"),s9=B("\x1B[30m","\x1B[39m"),l9=B("\x1B[31m","\x1B[39m"),r9=B("\x1B[32m","\x1B[39m"),a9=B("\x1B[33m","\x1B[39m"),e9=B("\x1B[34m","\x1B[39m"),x3=B("\x1B[35m","\x1B[39m"),w3=B("\x1B[36m","\x1B[39m"),$3=B("\x1B[37m","\x1B[39m"),y3=B("\x1B[90m","\x1B[39m"),_3=B("\x1B[40m","\x1B[49m"),n3=B("\x1B[41m","\x1B[49m"),Q3=B("\x1B[42m","\x1B[49m"),Z3=B("\x1B[43m","\x1B[49m"),V3=B("\x1B[44m","\x1B[49m"),z3=B("\x1B[45m","\x1B[49m"),B3=B("\x1B[46m","\x1B[49m"),Y3=B("\x1B[47m","\x1B[49m"),j3=B("\x1B[90m","\x1B[39m"),K3=B("\x1B[91m","\x1B[39m"),c=B("\x1B[92m","\x1B[39m"),J3=B("\x1B[93m","\x1B[39m"),W3=B("\x1B[94m","\x1B[39m"),q3=B("\x1B[95m","\x1B[39m"),H3=B("\x1B[96m","\x1B[39m"),b3=B("\x1B[97m","\x1B[39m"),k3=B("\x1B[100m","\x1B[49m"),F3=B("\x1B[101m","\x1B[49m"),D3=B("\x1B[102m","\x1B[49m"),P3=B("\x1B[103m","\x1B[49m"),R3=B("\x1B[104m","\x1B[49m"),O3=B("\x1B[105m","\x1B[49m"),G3=B("\x1B[106m","\x1B[49m"),X3=B("\x1B[107m","\x1B[49m");function Z(...x){console.error(c(X),(/*@__PURE__*/new Date()).toISOString(),...x)}function k(...x){console.warn(c(X),(/*@__PURE__*/new Date()).toISOString(),...x)}function j(...x){console.info(c(X),(/*@__PURE__*/new Date()).toISOString(),...x)}function J(...x){}function bx(x,w,$){Z("Error while executing onInstanceRequested for app",x.id,"with name",x.name,$?`Additional Data: ${$}`:"",w)}function C(){return k("The app instance event was called before app instance was initialized."),()=>{}}var kx=window.crypto.randomUUID();function p(){return kx}function lx(){return kx=window.crypto.randomUUID(),kx}function Fx(x){return x.replace("{","").replace("}","")}function d3(x){return JSON.parse(JSON.stringify(x))}function zw(x,w,$){let y=x.instances.findIndex((_)=>_.key===w);if(y>-1){let _=x.instances.splice(y,1);if(_.length<1)return;let n=_[0];n.executeListeners("onConfigurationClose",{domElement:void 0}),n.allEventListeners.splice(0,n.allEventListeners.length),$?.()}}async function rx(x){let w=window.__SPFxExtensions.Apps.filter(($)=>!$.isWebPartApp&&!$.keepOnContextChange&&$.id!==A);for(let $ of w)for(let y of $.instances.filter((_)=>_.contextId!==x))if(y.instanceExecuted)y.unmount()}function i(x,w){if(w.instanceRequested)return;try{w.instanceRequested=!0,x.onInstanceRequested(w).then(($)=>{w.unmount=()=>{zw(x,w.key,$)},w.instanceLoadPromiseResolver(),w.instanceExecuted=!0}).catch(($)=>{bx(x,$)})}catch($){bx(x,$)}}function Bw(x){J("Executing appAdded event for",x.id),window.__SPFxExtensions.AppEventListeners.filter((w)=>w.eventName==="appAdded").forEach((w)=>{try{w.handler(x)}catch($){Z("Error executing appAdded event",$)}})}function Dx(x){let w=window.__SPFxExtensions.Apps.find(($)=>$.id===x);if(!w)J("Registering new app",x),w={id:x,name:Wx,description:Wx,isWebPartApp:!1,unmountOnRender:!0,keepOnContextChange:!1,autoExecute:!1,maxInstances:1/0,hideAppSelectorWhenAppLoaded:!1,hideConfiguratorButton:!1,registrationCompleted:!1,isManual:!1,instances:[],async onInstanceRequested(){return C}},window.__SPFxExtensions.Apps.push(w);return w}function ax(){if(!window.__SPFxExtensions.Apps)window.__SPFxExtensions.Apps=[];if(!window.__SPFxExtensions.RegisterApp)window.__SPFxExtensions.RegisterApp=async(x)=>{let w=Dx(x.id);if(w.registrationCompleted)return w;return w.name=x.name,w.description=x.description,w.isWebPartApp=x.isWebPartApp,w.keepOnContextChange=x.keepOnContextChange??!1,w.autoExecute=x.autoExecute??!1,w.isManual=x.isManual??!1,w.unmountOnRender=x.unmountOnRender??!0,w.maxInstances=x.maxInstances??1/0,w.hideAppSelectorWhenAppLoaded=x.hideAppSelectorWhenAppLoaded??!1,w.hideConfiguratorButton=x.hideConfiguratorButton??!1,w.icon=x.icon,w.onInstanceRequested=x.onInstanceRequested,w.registrationCompleted=!0,Bw(w),w.instances.forEach(($)=>{i(w,$)}),w};if(!window.__SPFxExtensions.UnregisterApp)window.__SPFxExtensions.UnregisterApp=async(x)=>{let w=window.__SPFxExtensions.Apps.findIndex((y)=>y.id===x);if(w<0)return;let $=window.__SPFxExtensions.Apps.splice(w,1);if($.length<1)return;return J("Unregistering app",$[0].id,$[0].name),$[0].instances.forEach((y)=>{if(y.instanceExecuted)y.unmount()}),$[0]}}function Yw(x){let w=(_)=>{let n=x.allEventListeners.findIndex((Q)=>Q.key===_.key);if(n>-1)J("Removing event listener",_),x.allEventListeners.splice(n,1)},$=(_,n)=>{let Q={key:window.crypto.randomUUID(),eventName:_,handler:n};return x.allEventListeners.push(Q),()=>{w(Q)}},y=(_,n)=>{for(let Q of x.allEventListeners){if(Q.eventName!=_)continue;if(Q.handler)Q.handler(n)}};x.addEventListener=$,x.executeListeners=y}function jw(x,w){J("Executing instanceAdded event for app",x.id,"instance",w.key),window.__SPFxExtensions.AppEventListeners.filter(($)=>$.eventName==="instanceAdded").forEach(($)=>{try{$.handler({app:x,instance:w})}catch(y){Z("Error executing instanceAdded event",y)}})}function Kw(x){let{promise:w,resolve:$}=Promise.withResolvers(),y={...x,key:window.crypto.randomUUID(),contextId:p(),instanceRequested:!1,instanceExecuted:!1,unmountOnRender:!0,unmount:C,allEventListeners:[],addEventListener:C,executeListeners:C,instanceLoadPromise:w,instanceLoadPromiseResolver:$};return Yw(y),y}function ex(){if(!window.__SPFxExtensions.InstantiateApp)window.__SPFxExtensions.InstantiateApp=async(x,w)=>{let $=Dx(x);J("Creating app instance for app",x);let y=Kw(w);if(y.unmountOnRender=$.unmountOnRender??!0,$.instances.push(y),jw($,y),$.registrationCompleted)i($,y);return y}}async function U(x,w=0){let y=(/*@__PURE__*/new TextEncoder()).encode(x),_=await window.crypto.subtle.digest("SHA-1",y),Q=Array.from(new Uint8Array(_)).map((V)=>V.toString(16).padStart(2,"0")).join("");return w>0?Q.substring(0,w):Q}var Ox=(x,w)=>w.some(($)=>x instanceof $),x1,w1;function Jw(){return x1||(x1=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Ww(){return w1||(w1=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Gx=/*@__PURE__*/new WeakMap,Px=/*@__PURE__*/new WeakMap,s=/*@__PURE__*/new WeakMap;function qw(x){let w=new Promise(($,y)=>{let _=()=>{x.removeEventListener("success",n),x.removeEventListener("error",Q)},n=()=>{$(o(x.result)),_()},Q=()=>{y(x.error),_()};x.addEventListener("success",n),x.addEventListener("error",Q)});return s.set(w,x),w}function Hw(x){if(Gx.has(x))return;let w=new Promise(($,y)=>{let _=()=>{x.removeEventListener("complete",n),x.removeEventListener("error",Q),x.removeEventListener("abort",Q)},n=()=>{$(),_()},Q=()=>{y(x.error||new DOMException("AbortError","AbortError")),_()};x.addEventListener("complete",n),x.addEventListener("error",Q),x.addEventListener("abort",Q)});Gx.set(x,w)}var Xx={get(x,w,$){if(x instanceof IDBTransaction){if(w==="done")return Gx.get(x);if(w==="store")return $.objectStoreNames[1]?void 0:$.objectStore($.objectStoreNames[0])}return o(x[w])},set(x,w,$){return x[w]=$,!0},has(x,w){if(x instanceof IDBTransaction&&(w==="done"||w==="store"))return!0;return w in x}};function n1(x){Xx=x(Xx)}function bw(x){if(Ww().includes(x))return function(...w){return x.apply(Ex(this),w),o(this.request)};return function(...w){return o(x.apply(Ex(this),w))}}function kw(x){if(typeof x==="function")return bw(x);if(x instanceof IDBTransaction)Hw(x);if(Ox(x,Jw()))return new Proxy(x,Xx);return x}function o(x){if(x instanceof IDBRequest)return qw(x);if(Px.has(x))return Px.get(x);let w=kw(x);if(w!==x)Px.set(x,w),s.set(w,x);return w}var Ex=(x)=>s.get(x);function Q1(x,w,{blocked:$,upgrade:y,blocking:_,terminated:n}={}){let Q=indexedDB.open(x,w),V=o(Q);if(y)Q.addEventListener("upgradeneeded",(z)=>{y(o(Q.result),z.oldVersion,z.newVersion,o(Q.transaction),z)});if($)Q.addEventListener("blocked",(z)=>$(z.oldVersion,z.newVersion,z));return V.then((z)=>{if(n)z.addEventListener("close",()=>n());if(_)z.addEventListener("versionchange",(Y)=>_(Y.oldVersion,Y.newVersion,Y))}).catch(()=>{}),V}function Z1(x,{blocked:w}={}){let $=indexedDB.deleteDatabase(x);if(w)$.addEventListener("blocked",(y)=>w(y.oldVersion,y));return o($).then(()=>{return})}var Fw=["get","getKey","getAll","getAllKeys","count"],Dw=["put","add","delete","clear"],Rx=/*@__PURE__*/new Map;function $1(x,w){if(!(x instanceof IDBDatabase&&!(w in x)&&typeof w==="string"))return;if(Rx.get(w))return Rx.get(w);let $=w.replace(/FromIndex$/,""),y=w!==$,_=Dw.includes($);if(!($ in(y?IDBIndex:IDBObjectStore).prototype)||!(_||Fw.includes($)))return;let n=async function(Q,...V){let z=this.transaction(Q,_?"readwrite":"readonly"),Y=z.store;if(y)Y=Y.index(V.shift());return(await Promise.all([Y[$](...V),_&&z.done]))[0]};return Rx.set(w,n),n}n1((x)=>({...x,get:(w,$,y)=>$1(w,$)||x.get(w,$,y),has:(w,$)=>!!$1(w,$)||x.has(w,$)}));var Pw=["continue","continuePrimaryKey","advance"],y1={},Lx=/*@__PURE__*/new WeakMap,V1=/*@__PURE__*/new WeakMap,Rw={get(x,w){if(!Pw.includes(w))return x[w];let $=y1[w];if(!$)$=y1[w]=function(...y){Lx.set(this,V1.get(this)[w](...y))};return $}};async function*Ow(...x){let w=this;if(!(w instanceof IDBCursor))w=await w.openCursor(...x);if(!w)return;w=w;let $=new Proxy(w,Rw);V1.set($,w),s.set($,Ex(w));while(w)yield $,w=await(Lx.get($)||w.continue()),Lx.delete($)}function _1(x,w){return w===Symbol.asyncIterator&&Ox(x,[IDBIndex,IDBObjectStore,IDBCursor])||w==="iterate"&&Ox(x,[IDBIndex,IDBObjectStore])}n1((x)=>({...x,get(w,$,y){if(_1(w,$))return Ow;return x.get(w,$,y)},has(w,$){return _1(w,$)||x.has(w,$)}}));var m={SPFXEXT:"SPFXEXT_",SPFXEXT_CORE:"SPFXEXT"};function mx(){try{let x=typeof globalThis<"u"?globalThis:void 0;if(x&&x.localStorage)return x.localStorage}catch{}try{if(typeof window<"u"&&window.localStorage)return window.localStorage}catch{}return}function Gw(){let x=mx();if(!x)return[];try{let w=[];for(let $=0;$<x.length;$++){let y=x.key($);if(y)w.push(y)}return w}catch{return[]}}function Xw(x){let w=mx();if(!w)return null;try{return w.getItem(x)}catch{return null}}function Ew(){return Gw().some((x)=>x.indexOf(m.SPFXEXT)>-1&&Number(Xw(x))>0)}function z1(x){return x.hostname.toLowerCase()==="localhost"}function B1(x){try{let w=`${m.SPFXEXT}${x}`,$=mx(),y=$?$.getItem?$.getItem(w):$[w]:null;return Number(y)>0}catch{return!1}}var E=Ew();var K={AppFolderManifestCache:"AppFolderManifestCache",AppCollectionManifestCache:"AppCollectionManifestCache",AllowedApps:"AllowedApps",HubSiteData:"HubSiteData",SPFxExtensionConfig:"SPFxExtensionConfig"},Y1=`${m.SPFXEXT}COREDB`,Ax=Q1(Y1,1,{blocking(x,w,$){Ax.then((y)=>y.close()),alert("A new version of this page is ready. Please reload the page.")},async upgrade(x,w,$,y,_){if(w===0)x.createObjectStore(K.AppFolderManifestCache,{keyPath:"url"}),x.createObjectStore(K.AppCollectionManifestCache,{keyPath:"url"}),x.createObjectStore(K.AllowedApps,{keyPath:"Id"}),x.createObjectStore(K.HubSiteData,{keyPath:"SiteId"}),x.createObjectStore(K.SPFxExtensionConfig,{keyPath:"Title"})}});Ax.catch((x)=>{throw Z("Error opening database for Core, please contact your administrator."),Z1(Y1).then(()=>{window.location.reload()}),x});var F=await Ax;function f(x){let w="never";if(x!==1/0){let $=/*@__PURE__*/new Date;$.setMinutes($.getMinutes()+x),w=$.toISOString()}return{expires:w}}async function g(x,w){let $=await F.getAll(x),y=/*@__PURE__*/new Date,_=$.filter((Q)=>{if(Q.expires==="never")return!1;let V=new Date(Q.expires);return y>=V}),n=_.length;if(n>0){let Q=F.transaction(x,"readwrite"),V=Q.objectStore(x);_.forEach((z)=>V.delete(z[w])),await Q.done,k(`Evicted ${n} items from ${x} cache.`)}return n}async function ox(){return await g(K.SPFxExtensionConfig,"Title"),F.getAll(K.SPFxExtensionConfig)}async function d(x){return await g(K.SPFxExtensionConfig,"Title"),F.get(K.SPFxExtensionConfig,x)}async function L(x,w=60){await F.put(K.SPFxExtensionConfig,{...x,...f(w)})}async function j1(x,w){let $=F.transaction(K.SPFxExtensionConfig,"readwrite"),y=$.objectStore(K.SPFxExtensionConfig);return x.forEach((_)=>y.put({..._,...f(w)})),$.done}async function K1(){return F.getAll(K.AllowedApps)}async function dx(x){return F.get(K.AppFolderManifestCache,x)}async function Sx(x){return F.get(K.AppCollectionManifestCache,x)}async function J1(x){return F.get(K.HubSiteData,x)}async function W1(x,w=60){await F.put(K.HubSiteData,{...x,...f(w)})}async function Lw(x,w=60){await F.put(K.AppCollectionManifestCache,{...x,...f(w)})}async function mw(x,w=60){await F.put(K.AppFolderManifestCache,{...x,...f(w)})}async function q1(x,w=5){let $=f(w),y=F.transaction(K.AllowedApps,"readwrite"),_=y.objectStore(K.AllowedApps);return x.forEach((n)=>_.put({...n,...$})),y.done}async function Aw(x){return F.delete(K.AppCollectionManifestCache,x)}async function ow(x){return F.delete(K.AppFolderManifestCache,x)}async function dw(){return g(K.AppCollectionManifestCache,"url")}async function Sw(){return g(K.AppFolderManifestCache,"url")}async function H1(){return g(K.AllowedApps,"Id")}async function b1(){return g(K.HubSiteData,"SiteId")}async function l(x){if(x){let w=await dx(x.url);if(w){if(w.hash!==x.hash){await ow(x.url);let $=x.url.toLowerCase().replace(`/${G}`,"");await a([$],!1),k(`Evicted ${G} ${w.url} from cache. Because of hash mismatch.`)}}}return Sw()}async function r(x){if(x){let w=await Sx(x.url);if(w){if(w.hash!==x.hash)await Aw(x.url),await a([x.url],!1),k(`Evicted ${D} ${w.url} from cache. Because of hash mismatch.`)}}return dw()}async function k1(x){if(await l(),E)return;return dx(x)}async function F1(x,w){await l(x);let $=await dx(x.url);if($&&$.hash===x.hash&&!E)return;await mw(x,w)}async function D1(x,w){await r(x);let $=await Sx(x.url);if($&&$.hash===x.hash&&!E)return;await Lw(x,w)}async function P1(x){if(await r(),E)return;return Sx(x)}var hx=/*@__PURE__*/new Map;async function R1(x,w=!1){let $="";if(hx.has(x)&&!w)$=hx.get(x)||"";if($)return $;let y=await fetch(`${x}/_api/contextinfo`,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json"}});if(y.status===200){let n=(await y.json()).d.GetContextWebInformation.FormDigestValue;return hx.set(x,n),n}else Z("Error while getting digest",y.status);return""}var Mx=(x)=>{},e;async function xx(x=""){if(e)return e;e=new Promise((w)=>{Mx=w});try{let y=(await(await fetch(`${x}/_api/SP_TenantSettings_Current`,{headers:{Accept:"application/json;odata=verbose"}})).json()).d.CorporateCatalogUrl;Mx(y)}catch(w){Z("Error while getting app catalog url. Trying default /sites/appcatalog",w);let $=`${window.location.origin}/sites/appcatalog`;Mx($)}return e}async function O1(x=""){let w=await d("AppCatalogUrl");if(w?.Data)return w.Data;let $=await xx(x);return await L({Title:"AppCatalogUrl",Data:$},240),$}async function R(x=""){let $=`${await O1()}${x?`/${x}`:""}`;return R1($)}var hw=await O1(),W=`${hw}/${H}`;var X1={RootCDNLocation:"RootCDNLocation",InterceptHistory:"InterceptHistory",EnableAppWhiteList:"EnableAppWhiteList",AppCatalogUrl:"AppCatalogUrl",SPFxDataSite:"SPFxDataSite",ConfiguratorPageData:"ConfiguratorPageData",AppWhiteList:"AppWhiteList",Version:"2026-03-18T22:42:54.268Z"},G1=[{Title:"InterceptHistory",Data:"true"},{Title:"EnableAppWhiteList",Data:"false"},{Title:"RootCDNLocation",Data:`/sites/appcatalog/${H}`}];function E1(x){let w=G1.find(($)=>$.Title==="RootCDNLocation");if(w)w.Data=x;return G1}var Mw=Object.keys(X1).length,wx;async function vw(){let x=`${W}/_api/web/lists/GetByTitle('${h}')/fields`;try{let w=await fetch(x,{headers:{Accept:"application/json;odata=verbose"}});if(w.status===200){let y=(await w.json()).d.results,_=y.map((Q)=>Q.InternalName),n=y.find((Q)=>Q.InternalName==="Title");if(!n){Z("Title field not found.");return}if(!n.EnforceUniqueValues){let Q=await R(H);if((await fetch(`${W}/_api/web/lists/GetByTitle('${h}')/fields('${n.Id}')`,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":Q,"X-HTTP-Method":"MERGE","If-Match":"*"},body:JSON.stringify({__metadata:{type:"SP.Field"},Indexed:!0,EnforceUniqueValues:!0})})).status===204)j("Title field updated successfully.");else Z("Unable to update Title field.")}if(!_.includes("Data")){let Q=await R(H);if((await fetch(x,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":Q},body:JSON.stringify({__metadata:{type:"SP.Field"},Title:"Data",FieldTypeKind:2,Required:!0})})).status===201)j("Data field added successfully.");else Z("Unable to add Data field.")}}}catch(w){Z("Error while ensuring configuration list data fields.",w)}}async function Cw(){let x=!1;try{if(x=(await fetch(`${W}/_api/web/lists/GetByTitle('${h}')`)).status===404,x){let $=await R(H);if(j("Creating configuration list."),(await fetch(`${W}/_api/web/lists`,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":$},body:JSON.stringify({__metadata:{type:"SP.List"},BaseTemplate:100,Title:"SPFxExtensionsConfiguration",Description:"Configuration list for SPFxExtensions"})})).status===201)j("Configuration list created successfully.");else Z("Unable to create configuration list.")}await vw()}catch(w){Z("Error while ensuring configuration list.",w)}return x}async function L1(){let x=`${W}/_api/web/lists/GetByTitle('${h}')/items?$select=Title,Data`,$=await fetch(x,{...{headers:{Accept:"application/json;odata=verbose"}}});if($.status!==200)return Z("Unable to fetch configuration list items."),[];return(await $.json()).d.results}async function Uw(){let x=await R(H);for(let w of E1(W))if((await fetch(`${W}/_api/web/lists/GetByTitle('${h}')/items`,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":x},body:JSON.stringify({__metadata:{type:"SP.Data.SPFxExtensionsConfigurationListItem"},...w})})).status===201)j(`Item ${w.Title} added successfully.`);else Z(`Unable to add item ${w.Title}.`)}function m1(x=!1){if(x)return L1();if(wx)return wx;return wx=fw(),wx}async function fw(){let x=await ox();if(x.length<Mw){if(await Cw())await Uw();let $=await L1();await j1($,240),x=await ox()}return x}async function gw(x){let w=await xx(),$=await R(),y=await fetch(`${w}/_api/web/webs/add`,{method:"POST",headers:{Accept:"application/json;odata=nometadata","Content-Type":"application/json","X-RequestDigest":$},body:JSON.stringify({parameters:{Description:"Site that stores SPFxExtensions Data and global apps",Language:1033,Title:"SPFxExtensions Data",Url:x,UseSamePermissionsAsParentSite:!0,WebTemplate:"STS"}})});if(!y.ok)throw Error(`Failed to create SPFxExtensionsData web in ${w}`);return await y.json()}async function Nw(){let x=await xx(),w=await R(),$=await fetch(`${x}/${H}/_api/web`,{method:"GET",headers:{Accept:"application/json;odata=nometadata","X-RequestDigest":w}});if(!$.ok){if($.status===404)return{data:void 0,isError:!1,error:"",warnings:[`SPFxExtensionsData web not found in ${x}`]};return Z(`Failed to fetch data from ${x}/${H}/_api/web`),{data:void 0,isError:!0,error:`Failed to fetch data from ${x}/${H}/_api/web`,warnings:[]}}return{data:await $.json(),isError:!1,error:"",warnings:[]}}async function uw(){return(await d("SPFxDataSite"))?.Data}var $x;function A1(){if($x)return $x;return $x=Iw(),$x}async function Iw(){let x=await uw();if(!x){let w=await Nw();if(!w.isError&&!w.data){let $=await gw(H);w.data=$}return await L({Title:"SPFxDataSite",Data:w.data},240),w.data}return x}var vx="f3ab710f-2c08-422e-a7ad-5d93eb51e7a3",yx={accept:"application/json"},Tw={"Content-Type":"application/json"};async function tw(){let w={"X-RequestDigest":await R(H)};return(await(await fetch(`${W}/_api/sitepages/pages`,{headers:{...yx,...w,...Tw},body:JSON.stringify({PageLayoutType:"SingleWebPartAppPage",PromotedState:0}),method:"POST"})).json()).Id}async function Cx(){let x=await fetch(`${W}/_api/sitepages/pages/GetByUrl('${T}')`,{headers:{...yx},method:"GET"});if(x.status===404)return;return await x.json()}var cw=[{dataVersion:"1.4",description:"Title Region Description",id:"cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",instanceId:"cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",properties:{authorByline:[],authors:[],layoutType:"FullWidthImage",showPublishDate:!1,showTopicHeader:!1,textAlignment:"Left",title:"SPFx Extensions Configurator",topicHeader:"",enableGradientEffect:!0},reservedHeight:280,serverProcessedContent:{htmlStrings:{},searchablePlainTexts:{},imageSources:{},links:{}},title:"Title area"}],pw=[{addedFromPersistedData:!1,controlType:3,displayMode:2,emphasis:{},id:vx,position:{controlIndex:1,layoutIndex:1,sectionFactor:12,sectionIndex:1,zoneIndex:1},reservedHeight:500,reservedWidth:500,webPartData:{dataVersion:"1.0",description:"Allows you to add a custom developed app",id:Jx,instanceId:vx,properties:{description:"Select an app to load from the dropdown below",selectedApp:A,SPFxExtensionAppConfiguration:void 0},title:"SPFx Extension Loader"},webPartId:Jx},{controlType:0,pageSettingsSlice:{isDefaultDescription:!0,isDefaultThumbnail:!0}}],iw={CanvasContent1:`${JSON.stringify(pw)}`,LayoutWebpartsContent:`${JSON.stringify(cw)}`,Title:ix};async function o1(x){let $={"X-RequestDigest":await R(H)};await fetch(`${W}/_api/sitepages/pages(${x})/savepage`,{headers:{"Content-Type":"application/json",...yx,...$},body:JSON.stringify(iw),method:"POST"}),await fetch(`${W}/_api/sitepages/pages(${x})/publish`,{headers:{...yx,...$},method:"POST"})}async function sw(){let x=await tw();return await o1(x),Cx()}async function lw(){let x=await d("ConfiguratorPageData");if(x?.Data)return x.Data;let w=await Cx();if(w)await L({Title:"ConfiguratorPageData",Data:w},480);return w}async function d1(){let x=await lw();if(!x)return sw();if(x.CanvasContent1.indexOf(vx)===-1){await o1(x.Id);let w=await Cx();return await L({Title:"ConfiguratorPageData",Data:w},480),w}return x}async function rw(){let x=`${W}/_api/web/lists/GetByTitle('${M}')/fields`;try{let w=await fetch(x,{headers:{Accept:"application/json;odata=verbose"}});if(w.status===200){if(!(await w.json()).d.results.map((n)=>n.InternalName).some((n)=>n==="EntryPointUrl"))await aw(x,"EntryPointUrl","Full URL to the Entrypoint JS file, if * is specified all entries will be allowed.",!0)}}catch(w){Z("Error while ensuring list fields.",w)}}async function aw(x,w,$,y){let _=await R(H);if((await fetch(x,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":_},body:JSON.stringify({__metadata:{type:"SP.Field"},Title:w,FieldTypeKind:3,Required:y,Description:$})})).status===201)j(w,"field added successfully.");else Z(w,"Unable to add field.")}async function ew(){try{let x=await fetch(`${W}/_api/web/lists/GetByTitle('${M}')?$select=*`,{method:"GET",headers:{Accept:"application/json;odata=verbose"}});if(x.status===404){j("Creating app white list.");let $=await R(H),y=await fetch(`${W}/_api/web/lists`,{method:"POST",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":$},body:JSON.stringify({__metadata:{type:"SP.List"},BaseTemplate:100,Title:M,Description:"App whitelist for SPFxExtensions"})});if(y.status===201)return j("App whitelist created successfully."),y.json();else{Z("Unable to create app whitelist.");return}}return await rw(),x.json()}catch(x){Z("Error while ensuring app whitelist.",x)}return}async function S1(){let x=await d("AppWhiteList");if(x?.Data)return x.Data;let w=await ew();if(w)await L({Title:"AppWhiteList",Data:w},480);return w}var _x;async function Ux(){if(_x)return _x;return _x=x9(),_x}async function x9(){await A1(),await S1(),await d1(),window.__SPFxExtensions.Utils.ConfiguratorPageUrl=`${W}/${T}`}async function S(x=!1){return await Ux(),m1(x)}async function h1(){return`${`${(await S()).find((y)=>y.Title==="RootCDNLocation")?.Data??`${W}`}${v}`}${D}`}async function M1(){let x=await S(),w=[px];if(x.find(($)=>$.Title==="Version")?.Data!=="2026-03-18T22:42:54.268Z")await L({Title:"Version",Data:"2026-03-18T22:42:54.268Z"},1/0),await a(w,!0)}async function a(x,w){let $=await window.caches.keys(),y=!1;for(let _ of $){let n=await window.caches.open(_),Q=await n.keys(),V=[];for(let z of Q){let Y=z.url.toLowerCase();if(x.some((P)=>Y.indexOf(P.toLowerCase())>-1))j("Deleting cache key",z,"from",_),y=!0,V.push(n.delete(z,{ignoreMethod:!0,ignoreSearch:!0,ignoreVary:!0}))}await Promise.allSettled(V)}if(y&&w)window.location.reload()}function I4(){return U(`${Date.now()}`,13)}var w9=$9();async function $9(){try{let x=await H1(),w=await K1();if(w.length>0&&!x)return w;if(w.length>0)j("Cache mismatch, loading allowed apps data...");let $=await v1();return await q1($,5),$}catch(x){return Z("Unable to load allowed apps data...",x),[]}}async function v1(x=!1){if((await S(x)).find((y)=>y.Title==="EnableAppWhiteList")?.Data!=="true")return[{Id:1,Title:"All apps allowed",EntryPointUrl:"*",date:(/*@__PURE__*/new Date()).toISOString(),expires:(/*@__PURE__*/new Date()).toISOString()}];return y9()}async function y9(){let x=`${W}/_api/web/lists/getByTitle('${M}')/Items?$select=Id,Title,EntryPointUrl&$top=1000`;return await _9(x)}async function _9(x){let w=x,$=[];while(w){let _=await(await fetch(w,{method:"GET",headers:{Accept:"application/json;odata=verbose"}})).json();if(_.error)throw Error(JSON.stringify(_.error));$.push(..._.d.results),w=_.d.__next}return $}function n9(x,w){if(w.some((_)=>_.EntryPointUrl==="*"))return!0;let y=(x.origin+x.pathname).toLowerCase();return w.some((_)=>{try{let n=new URL(_.EntryPointUrl),Q=n.origin+n.pathname;return y===Q.toLowerCase()}catch(n){return Z("Error while parsing allowed entry URL",_.EntryPointUrl,n),!1}})}async function C1(x,w,$=!1){if(z1(x))return!0;let y=$?await v1($):await w9;if(!n9(x,y))return k("File",x,`is not allowed to be executed. Please add it to whitelist @ ${W}.`),k(`If you are a developer you can enable this app by adding window.localStorage item ${m.SPFXEXT}${w} with a number value corresponding to development port of the localhost server.`),!1;return!0}function U1(){return window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.web.id.toString():Fx(window.__SPFxExtensions.__CurrentContext.context.webId)}function fx(){return(window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.web.absoluteUrl:window.__SPFxExtensions.__CurrentContext.context.webAbsoluteUrl).replace(/\/$/,"")}function nx(){return window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.site.id.toString():Fx(window.__SPFxExtensions.__CurrentContext.context.siteId)}function gx(){return window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.site.absoluteUrl:window.__SPFxExtensions.__CurrentContext.context.siteAbsoluteUrl}function Qx(){return(window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.legacyPageContext.hubSiteId?.toString():window.__SPFxExtensions.__CurrentContext.context.hubSiteId)??t}function f1(){return window.__SPFxExtensions.__CurrentContext.contextType==="SPOModernContext"?window.__SPFxExtensions.__CurrentContext.context.legacyPageContext.isHubSite:window.__SPFxExtensions.__CurrentContext.context.isHubSite}function Q9(x){if(!Array.isArray(x.enabledAppCollections))throw`${X} ${D} enabledAppCollections should be an array`;if(!Array.isArray(x.urlMap))throw`${X} ${D} urlMap should be an array`}async function Zx(x,w,$,y,_=!1,n=60){let Q=Hx,V=x.toLowerCase();if(!_&&!E){let q=await P1(V);if(q)return q.isHubFetch=y,q}let z=`${V}?v=${Date.now()}`;try{J(`Fetching ${D} from`,z);let N=await(await fetch(z)).text();Q=JSON.parse(N)}catch(q){k(`Unable to fetch ${D} from`,z,q)}try{Q9(Q)}catch(q){Z(`Error while parsing ${D} from`,z,q),Q=Hx}let Y=await U(JSON.stringify(Q)),O={manifest:Q,...{name:w,url:V,type:$,hash:Y}};return await D1(O,E?1:n),O.isHubFetch=y,O}async function Vx(x,w,$,y=!1){let _=[],n=await h1();_.push(Zx(n,"apps","root",!0,y));let Q=x+v;if(_.push(Zx(`${Q}${D}`,"apps","site",!1,y)),$){let q=$+v;_.push(Zx(`${q}${D}`,"apps","site",!0,y))}let z=`${w+v}${D}`,Y=x.toLowerCase()===w.toLowerCase(),P=z.toLowerCase()===n.toLowerCase();if(!Y&&!P)_.push(Zx(z,"apps","web",!1,y));return await Promise.all(_)}function g1(x){if(!x.appDefinitionMap)x.appDefinitionMap=[];if(!x.appRelativeEntryPointUrls)x.appRelativeEntryPointUrls=[];if(!x.manualEntries)x.manualEntries=[];return x}function Z9(x){if(Array.isArray(x)||typeof x!=="object")throw`${X} App manifest has to be an object.`;if(!x.appRelativeEntryPointUrls)throw Z("Manifest does not have appRelativeEntryPointUrl property.",x),`${X} Manifest does not have appRelativeEntryPointUrl property.`;if(!x.appDefinitionMap)throw Z("Manifest does not have enabledApps property.",x),`${X} Manifest does not have enabledApps property.`}async function V9(x,w,$,y,_=!1,n=60){let Q={...qx},V=x.toLowerCase();if(!_&&!E){let q=await k1(V);if(q)return q.isHubFetch=y,q}let z=`${V}?v=${Date.now()}`;try{J(`Fetching ${G} from`,z);let N=await(await fetch(z)).text();Q=JSON.parse(N),g1(Q)}catch(q){k(`Unable to fetch ${G} from`,z,q)}try{Z9(Q)}catch(q){Z(`Error while parsing ${G} from`,z,q),Q={...qx}}let Y=await U(JSON.stringify(Q)),O={manifest:Q,...{name:w,url:V,type:$,hash:Y}};return await F1(O,E?1:n),O.isHubFetch=y,O}function z9(x,w){let $=`${x}${w}/${G}`,y=`${m.SPFXEXT}${w}`,_=Number(window.localStorage.getItem(y));if(_>0){let n=`https://localhost:${_}/${G}`;return j(`<${w}> App is in debug mode, loading from`,n),n}return $}function Nx(x,w=!1){if(x.length===0)return[];let $=[];for(let y of x){let _=y.url.toLowerCase().replace(D.toLowerCase(),"");for(let n of y.manifest.enabledAppCollections){let Q=z9(_,n);$.push(V9(Q,n,y.type,y.isHubFetch??!1,w))}}return $}function zx(x,w=!1){let $=x.filter((Y)=>Y.type==="root"),y=Nx($,w),_=x.filter((Y)=>Y.type==="site"),n=Nx(_,w),Q=x.filter((Y)=>Y.type==="web"),V=Nx(Q,w);return[...y,...n,...V]}var Ix=!1,Bx=[];async function B9(x,w,$){let y=$.appDefinitionMap.find((n)=>n.appId===w);if(!y){let n=`Could not find app configuration item for Manual app ${w}`;return Z(n),[]}if(!u1(y))return j(`App ${w} is not enabled in current context. Skipping...`),[];try{k("Manual module detected. Make sure to call window.__SPFxExtensions.RegisterApp and window.__SPFxExtensions.InstantiateApp in code.",x),await import(x)}catch(n){let Q=`Error while importing or executing ${x} ${n}`;Z(Q)}return[]}async function Y9(x,w){try{let y=(await import(x)).default;if(!y)return Z(`No default export found in ${x}, only ESM modules are supported.`),[];return J9(y,w,x)}catch($){return Z("Error while importing or executing",x,$),[]}}async function N1(x,w,$,y,_){let n=x.replace(/\.\.\/?/g,"./").replace(/^\.\//,""),Q=`${w}${n}`.toLowerCase();J("EntryPoint JS: ",Q);let V=new URL(Q);if($)V.searchParams.set("v",`${$}`);if(!await C1(V,y.name))return;let Y=`${V.origin}${V.pathname}`,P=`${V}`;if(Bx.includes(Y)){j("EntryPoint already loaded:",P);return}return Bx.push(Y),()=>{if(_)return B9(P,_,y.manifest);return Y9(P,y.manifest)}}async function ux(x){let w=[],$=x.url.replace(G,"");J("Parsing",x.type,"manifest:",x.manifest);let y="";if(x.manifest.cacheString&&x.manifest.enableCaching)y=B1(x.name)?`${(/*@__PURE__*/new Date()).getTime()}`:x.manifest.cacheString;for(let _ of x.manifest.appRelativeEntryPointUrls){let n=await N1(_,$,y,x);if(n)w.push(n())}for(let _ of x.manifest.manualEntries){let n=await N1(_.entryPoint,$,y,x,_.appId);if(n)w.push(n())}return w}async function Tx(x,w,$,y,_=!1){if(_)j9(y);if(Ix)return;Ix=!0;let n=await Vx(x,w,$),Q=zx(n);window.__SPFxExtensions.Utils.appManifestPromises=Q,window.__SPFxExtensions.Utils.spAppInitializationPromiseResolver();let z=(await Promise.allSettled(Q)).filter((b)=>b.status==="fulfilled"),Y=[],P=z.filter((b)=>b.value.type==="root"),O=z.filter((b)=>b.value.type==="site"),q=z.filter((b)=>b.value.type==="web");for(let b of P){let u=await ux(b.value);Y.push(...u)}J("Root apps loaded.");for(let b of O){let u=await ux(b.value);Y.push(...u)}J("Site apps loaded.");for(let b of q){let u=await ux(b.value);Y.push(...u)}J("SiteWeb apps loaded.");let N=(await Promise.allSettled(Y)).filter((b)=>b.status==="fulfilled").flatMap((b)=>b.value);await K9(N),window.__SPFxExtensions.AllAppAssetsLoadedResolver(),j("SPFx Extensions Core Components Loaded.")}function j9(x){Ix=!1,Bx.splice(0,Bx.length),rx(x);let{promise:w,resolve:$}=Promise.withResolvers();window.__SPFxExtensions.AllAppAssetsLoadedPromise=w,window.__SPFxExtensions.AllAppAssetsLoadedResolver=$}async function K9(x){let w=[];for(let $ of window.__SPFxExtensions.Apps)if(!x.find((_)=>_.id===$.id)&&!$.isManual&&$.id!==A)w.push($.id);for(let $ of w){let y=await window.__SPFxExtensions.UnregisterApp($);if(y)k(`Unregistered App ${y.id} (${y.name}) as it does not belong in this context`)}}async function J9(x,w,$){if(!Array.isArray(x))Z("Default export of entry point should be an array of App definitions. TODO: add documentation url",$);let y=[];for(let _ of x){if(!_.id){Z("App definition does not have an id. Make sure that returned array is in proper format. TODO: add documentation url",$,_);continue}let n=w.appDefinitionMap.find((Y)=>Y.appId.toLowerCase()===_.id.toLowerCase()),Q=`App with id ${_.id} (${_.name}) is not enabled for current web. Skipping...`;if(!n){j(Q);continue}if(!u1(n)){j(Q);continue}let z=await window.__SPFxExtensions.RegisterApp(_);if(y.push(_),!_.isWebPartApp&&_.autoExecute){if(z.instances.length<(_.maxInstances??1/0))window.__SPFxExtensions.InstantiateApp(_.id,{})}}return y}function u1(x){let w=U1().toLowerCase(),$=nx().toLowerCase(),y=Qx().toLowerCase(),_=x.config.enabledEverywhere,n=x.config.excludedIds.indexOf(w)===-1&&x.config.excludedIds.indexOf($)===-1&&x.config.excludedHubIds.indexOf(y)===-1,Q=x.config.includedIds.indexOf(w)!==-1||x.config.includedIds.indexOf($)!==-1||x.config.includedHubIds.indexOf(y)!==-1;return _?n:Q}var I1=!1;function t1(){if(window.moduleLoaderPromise&&!I1)I1=!0,window.moduleLoaderPromise.then((x)=>{let w=x.context.pageContext.initialize;x.context.pageContext.initialize=function($,y){let _=x.context.pageContext._initializationData;w.call(this,$,y);let n={initializationData:$,legacyContext:y};if(_.web.id===$.web.id){T1("contextRefresh",n);return}T1("contextChange",n)}})}function T1(x,w){let $=new CustomEvent(x,{detail:w});window.dispatchEvent($),window.__SPFxExtensions.Apps.forEach((y)=>{y.instances.forEach((_)=>{_.executeListeners(x,w)})})}function W9(x){let w=window.__SPFxExtensions.AppEventListeners.findIndex(($)=>$.key===x.key);if(w>-1)J("Removing event listener",x),window.__SPFxExtensions.AppEventListeners.splice(w,1)}function c1(){if(!window.__SPFxExtensions.AppEventListeners)window.__SPFxExtensions.AppEventListeners=[];if(!window.__SPFxExtensions.AddAppEventListener)window.__SPFxExtensions.AddAppEventListener=(x,w)=>{let $={key:window.crypto.randomUUID(),eventName:x,handler:w};return window.__SPFxExtensions.AppEventListeners.push($),()=>{W9($)}};if(!window.__SPFxExtensions.RemoveAppEventListener)window.__SPFxExtensions.RemoveAppEventListener=(x)=>{let w=window.__SPFxExtensions.AppEventListeners.findIndex(($)=>$.key===x.key);if(w>-1)window.__SPFxExtensions.AppEventListeners.splice(w,1)}}var q9=window.history.pushState,H9=window.history.replaceState,b9=window.history.back,k9=window.history.forward,F9=window.history.go;function D9(){let x=window.history.state,w=window.location.href;return{currentState:x,previousUrl:w}}function I(x,w){let $={...D9(),...w},y=new CustomEvent(x,{detail:$});window.dispatchEvent(y)}function P9(){function x(w,$,y){q9.call(this,w,$,y),I("historyPush",{newState:w,newUrl:y})}window.history.pushState=x}function R9(){function x(w,$,y){H9.call(this,w,$,y),I("historyReplace",{newState:w,newUrl:y})}window.history.replaceState=x}function O9(){function x(){b9.call(this),I("historyBack",{})}window.history.back=x}function G9(){function x(){k9.call(this),I("historyForward",{})}window.history.forward=x}function X9(){function x(w){F9.call(this,w),I("historyGo",{delta:w})}window.history.go=x}var p1=!1;function i1(){if(p1)return;p1=!0,R9(),P9(),G9(),O9(),X9()}async function tx(){if(f1())return"";let w=Qx(),$=nx();if(!w||w===t||w===$)return"";await b1();let y=await J1(w);if(!y){j("Getting Hub data for HubSiteId:",w);try{let n=await(await fetch(`/_api/hubsites/GetById?hubSiteId='${w}'`,{headers:{accept:"application/json;odata=nometadata"}})).json();return await W1(n),n.SiteUrl}catch(_){return Z("Error fetching hub site data.",_),""}}return y.SiteUrl}var s1="CORE_MANIFEST_CHECK",r1=Number(window.localStorage.getItem(m.SPFXEXT_CORE))>0?1e4:90000,Yx=0;function cx(x,w,$,y=!1){if(y)window.clearInterval(Yx),Yx=0;if(Yx>0)return;Yx=window.setInterval(l1,r1,x,w,$),l1(x,w,$)}async function l1(x,w,$){try{let _=window.localStorage.getItem(s1);if(_){let V=new Date(_),Y=(/*@__PURE__*/new Date()).getTime()-V.getTime(),P=r1;if(Y<P){J("Manifest check already performed recently, skipping.",`${Y} < ${P}`);return}}j("Checking for manifest updates across all locations..."),await Promise.all([r(),l()]);let n=await Vx(x,w,$,!0),Q=zx(n,!0);await Promise.allSettled(Q)}catch(_){Z("Error checking for manifest updates",_)}let y=(/*@__PURE__*/new Date()).toISOString();J("Setting next manifest check to",y),window.localStorage.setItem(s1,y)}var jx;async function E9(){if(jx)return jx;return jx=m9(),jx}async function L9(){window.__SPFxExtensions.__CurrentContext=await sx()}async function m9(){if(await Ux(),(await S()).find((_)=>_.Title==="InterceptHistory")?.Data==="true")i1();t1(),c1(),ax(),ex();let{promise:$,resolve:y}=Promise.withResolvers();if(!window.__SPFxExtensions.AllAppAssetsLoadedPromise)window.__SPFxExtensions.AllAppAssetsLoadedPromise=$,window.__SPFxExtensions.AllAppAssetsLoadedResolver=y}async function a1(){await M1(),await E9(),await L9(),window.__SPFxExtensions.__CorePromiseResolver();let x=gx(),w=fx(),$=await tx();await Tx(x,w,$,p()),window.addEventListener("contextChange",async(y)=>{j("Context changed, reloading apps...");let _=y.detail?.initializationData?.site?.absoluteUrl||gx(),n=y.detail?.initializationData?.web?.absoluteUrl||fx(),Q=await tx(),V=lx();await Tx(_,n,Q,V,!0),cx(_,n,Q,!0)}),cx(x,w,$),j("SPFx Extensions Core Has Been initialized.")}var A9={id:A,description:"Allows configuring custom apps",isWebPartApp:!1,hideAppSelectorWhenAppLoaded:!0,hideConfiguratorButton:!0,name:"SPFx Extensions Configurator",async onInstanceRequested(x){let w=import.meta.url.indexOf("localhost")>-1;if(w)J("Core is in debug mode");let $=w?import.meta.resolve(`./spfx-extensions-coreconfigurator.js?v=${Date.now()}`):window.__SPFxExtensions.__ConfiguratorUrl;try{return(await import($)).launch(x)}catch(y){if(Z("Error launching configurator app",y),x.domElement)x.domElement.innerHTML=`<div style="text-align: center; padding: 20px; color: red;">Error launching configurator app. ${y}</div>`;return()=>{}}}},o9="2026-03-18T22:42:54.268Z";j("Initializing SPFxExtensions Core Built:",o9);await a1();try{await window.__SPFxExtensions.RegisterApp(A9)}catch(x){Z("Error registering configurator app",x)}