@spfx-extensions/package 1.6.2 → 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.
- package/.npmignore +16 -16
- package/.nvmrc +1 -1
- package/LICENSE +674 -674
- package/README.md +166 -166
- package/config/config-scripts/rename-solution.mjs +22 -0
- package/config/config-scripts/update-version.mjs +23 -0
- package/config/config-scripts/webpack-patch.mjs +134 -0
- package/config/config.json +27 -27
- package/config/deploy-azure-storage.json +6 -6
- package/config/heft.json +58 -0
- package/config/package-solution.json +3 -3
- package/config/rig.json +7 -0
- package/config/sass.json +3 -2
- package/config/serve.json +18 -18
- package/config/typescript.json +7 -0
- package/config/webpack-patch.json +6 -0
- package/config/write-manifests.json +3 -3
- package/dist/8d1029da-85e6-48cc-aaaf-37a5bbc0b9be.manifest.json +3 -3
- package/dist/d6ca1fc2-0591-4c6d-8a25-cae3262c017b.manifest.json +6 -6
- package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/ClientSideInstance.xml +8 -8
- package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/Extension_8d1029da-85e6-48cc-aaaf-37a5bbc0b9be.xml +1 -1
- package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/WebPart_d6ca1fc2-0591-4c6d-8a25-cae3262c017b.xml +1 -1
- package/dist/debug/83e13c11-682e-4eaa-9ae0-74617ca28f96/elements.xml +8 -8
- package/dist/debug/AppManifest.xml +1 -1
- package/dist/debug/ClientSideAssets/spfx-extension-application-customizer_a3a347c8bd029396ec50.js +2 -0
- package/dist/debug/ClientSideAssets/spfx-extensionloader-web-part_3b393b3ec530c336b801.js +2 -0
- package/dist/debug/ClientSideAssets/spfx-extensions-classiccustomaction.js +1 -0
- package/dist/debug/ClientSideAssets/spfx-extensions-classicwrapper.js +1 -0
- package/dist/debug/ClientSideAssets/spfx-extensions-core.js +1 -0
- package/dist/debug/ClientSideAssets/spfx-extensions-coreconfigurator.js +175 -0
- package/dist/debug/ClientSideAssets/spfx-extensions-loader_6e8eb68a4b27d7c6f742.js +2 -0
- package/dist/debug/ClientSideAssets.xml +1 -1
- package/dist/debug/ClientSideAssets.xml.config.xml +1 -1
- package/dist/debug/_rels/AppManifest.xml.rels +1 -1
- package/dist/debug/_rels/ClientSideAssets.xml.rels +1 -1
- package/dist/debug/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml +1 -1
- package/dist/debug/feature_83e13c11-682e-4eaa-9ae0-74617ca28f96.xml.config.xml +1 -1
- package/dist/deploy/sp-fx-extensions.sppkg +0 -0
- package/dist/spfx-extension-application-customizer_a3a347c8bd029396ec50.js +2 -0
- package/dist/spfx-extensionloader-web-part_3b393b3ec530c336b801.js +2 -0
- package/dist/spfx-extensions-classiccustomaction.js +1 -0
- package/dist/spfx-extensions-classicwrapper.js +1 -0
- package/dist/spfx-extensions-core.js +1 -0
- package/dist/spfx-extensions-coreconfigurator.js +175 -0
- package/dist/spfx-extensions-loader_6e8eb68a4b27d7c6f742.js +2 -0
- package/gulpfile.js +80 -196
- package/package.json +68 -63
- package/sharepoint/assets/ClientSideInstance.xml +8 -8
- package/sharepoint/assets/elements.xml +8 -8
- package/src/@types/globals.d.ts +17 -14
- package/src/extensions/spfxExtension/SpfxExtensionApplicationCustomizer.manifest.json +17 -17
- package/src/extensions/spfxExtension/SpfxExtensionApplicationCustomizer.ts +70 -70
- package/src/extensions/spfxExtension/loc/en-us.js +4 -4
- package/src/extensions/spfxExtension/loc/myStrings.d.ts +8 -8
- package/src/index.ts +1 -1
- package/src/services/initCoreService.ts +68 -60
- package/src/utilities/constants.ts +3 -3
- package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.manifest.json +34 -34
- package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.module.scss +185 -185
- package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.ts +767 -767
- package/src/webparts/spfxExtensionloader/ai.json +37 -37
- package/src/webparts/spfxExtensionloader/loc/en-us.js +15 -15
- package/src/webparts/spfxExtensionloader/loc/mystrings.d.ts +19 -19
- package/tsconfig.json +25 -25
- package/dist/debug/ClientSideAssets/spfx-extension-application-customizer_2f30086b4bcdf92ad9a2.js +0 -2
- package/dist/debug/ClientSideAssets/spfx-extension-core.js +0 -1
- package/dist/debug/ClientSideAssets/spfx-extension-coreconfigurator.js +0 -175
- package/dist/debug/ClientSideAssets/spfx-extension-loader_b4583689ca9ee8de6592.js +0 -2
- package/dist/debug/ClientSideAssets/spfx-extension-wrapper.js +0 -1
- package/dist/debug/ClientSideAssets/spfx-extensionloader-web-part_e3a6a93dc899524b9f3f.js +0 -3
- package/dist/spfx-extension-application-customizer_2f30086b4bcdf92ad9a2.js +0 -2
- package/dist/spfx-extension-core.js +0 -1
- package/dist/spfx-extension-coreconfigurator.js +0 -175
- package/dist/spfx-extension-loader_b4583689ca9ee8de6592.js +0 -2
- package/dist/spfx-extension-wrapper.js +0 -1
- package/dist/spfx-extensionloader-web-part_e3a6a93dc899524b9f3f.js +0 -3
- package/src/webparts/spfxExtensionloader/SpfxExtensionloaderWebPart.module.scss.ts +0 -24
- /package/dist/debug/ClientSideAssets/{3be36e80-4431-4b52-99c5-0a339b4e696e_color.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_color.png} +0 -0
- /package/dist/debug/ClientSideAssets/{3be36e80-4431-4b52-99c5-0a339b4e696e_outline.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_outline.png} +0 -0
- /package/teams/{3be36e80-4431-4b52-99c5-0a339b4e696e_color.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_color.png} +0 -0
- /package/teams/{3be36e80-4431-4b52-99c5-0a339b4e696e_outline.png → d6ca1fc2-0591-4c6d-8a25-cae3262c017b_outline.png} +0 -0
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BaseApplicationCustomizer,
|
|
3
|
-
PlaceholderProvider
|
|
4
|
-
} from '@microsoft/sp-application-base';
|
|
5
|
-
import { SPFXPREFIX } from '../../utilities/constants';
|
|
6
|
-
//import * as strings from 'SpfxExtensionApplicationCustomizerStrings';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* If your command set uses the ClientSideComponentProperties JSON input,
|
|
10
|
-
* it will be deserialized into the BaseExtension.properties object.
|
|
11
|
-
* You can define an interface to describe it.
|
|
12
|
-
*/
|
|
13
|
-
export interface ISpfxExtensionApplicationCustomizerProperties {
|
|
14
|
-
// This is an example; replace with your own property
|
|
15
|
-
_noProps: boolean;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** A Custom Action which can be run during execution of a Client Side Application */
|
|
19
|
-
export default class SpfxExtensionApplicationCustomizer
|
|
20
|
-
extends BaseApplicationCustomizer<ISpfxExtensionApplicationCustomizerProperties> {
|
|
21
|
-
|
|
22
|
-
corePromise = new Promise((resolve) => {
|
|
23
|
-
import(/* webpackChunkName: "spfx-
|
|
24
|
-
initCore("SharePoint").then(() => {
|
|
25
|
-
registerPlaceHolderProvider(this.context.placeholderProvider, this);
|
|
26
|
-
resolve(true);
|
|
27
|
-
}).catch((e) => {
|
|
28
|
-
console.error(SPFXPREFIX, "Error while initializing core from application customizer", e);
|
|
29
|
-
})
|
|
30
|
-
}).catch((e) => {
|
|
31
|
-
console.error(SPFXPREFIX, "Error while importing core from application customizer", e);
|
|
32
|
-
})
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// private async ensureCoreAndRegister() {
|
|
37
|
-
// const { initCore, registerPlaceHolderProvider } = await import(/* webpackChunkName: "spfx-extension-loader" */"../../services/initCoreService");
|
|
38
|
-
// await initCore("SharePoint");
|
|
39
|
-
// registerPlaceHolderProvider(this.context.placeholderProvider, this);
|
|
40
|
-
// }
|
|
41
|
-
|
|
42
|
-
public async onInit(): Promise<void> {
|
|
43
|
-
await this.corePromise;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
waitAndNotifyPlaceholderChanged(placeholderProvider: PlaceholderProvider) {
|
|
47
|
-
this.corePromise!.then(() => {
|
|
48
|
-
window.__SPFxExtensions.Apps.forEach((app) => {
|
|
49
|
-
app.instances.forEach((instance) => {
|
|
50
|
-
instance.executeListeners("onPlaceholdersChanged", placeholderProvider)
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}).catch(() => {
|
|
54
|
-
//swallow
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
protected onPlaceholdersChanged(placeholderProvider: PlaceholderProvider) {
|
|
59
|
-
// this fires before onInit
|
|
60
|
-
this.waitAndNotifyPlaceholderChanged(placeholderProvider);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
protected onDispose(): void {
|
|
64
|
-
window.__SPFxExtensions?.Apps?.forEach((app) => {
|
|
65
|
-
app.instances.forEach((instance) => {
|
|
66
|
-
instance.executeListeners("onAppCustomizerDisposed", undefined);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
BaseApplicationCustomizer,
|
|
3
|
+
PlaceholderProvider
|
|
4
|
+
} from '@microsoft/sp-application-base';
|
|
5
|
+
import { SPFXPREFIX } from '../../utilities/constants';
|
|
6
|
+
//import * as strings from 'SpfxExtensionApplicationCustomizerStrings';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* If your command set uses the ClientSideComponentProperties JSON input,
|
|
10
|
+
* it will be deserialized into the BaseExtension.properties object.
|
|
11
|
+
* You can define an interface to describe it.
|
|
12
|
+
*/
|
|
13
|
+
export interface ISpfxExtensionApplicationCustomizerProperties {
|
|
14
|
+
// This is an example; replace with your own property
|
|
15
|
+
_noProps: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** A Custom Action which can be run during execution of a Client Side Application */
|
|
19
|
+
export default class SpfxExtensionApplicationCustomizer
|
|
20
|
+
extends BaseApplicationCustomizer<ISpfxExtensionApplicationCustomizerProperties> {
|
|
21
|
+
|
|
22
|
+
corePromise = new Promise((resolve) => {
|
|
23
|
+
import(/* webpackChunkName: "spfx-extensions-loader" */"../../services/initCoreService").then(({ initCore, registerPlaceHolderProvider }) => {
|
|
24
|
+
initCore("SharePoint").then(() => {
|
|
25
|
+
registerPlaceHolderProvider(this.context.placeholderProvider, this);
|
|
26
|
+
resolve(true);
|
|
27
|
+
}).catch((e) => {
|
|
28
|
+
console.error(SPFXPREFIX, "Error while initializing core from application customizer", e);
|
|
29
|
+
})
|
|
30
|
+
}).catch((e) => {
|
|
31
|
+
console.error(SPFXPREFIX, "Error while importing core from application customizer", e);
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// private async ensureCoreAndRegister() {
|
|
37
|
+
// const { initCore, registerPlaceHolderProvider } = await import(/* webpackChunkName: "spfx-extension-loader" */"../../services/initCoreService");
|
|
38
|
+
// await initCore("SharePoint");
|
|
39
|
+
// registerPlaceHolderProvider(this.context.placeholderProvider, this);
|
|
40
|
+
// }
|
|
41
|
+
|
|
42
|
+
public async onInit(): Promise<void> {
|
|
43
|
+
await this.corePromise;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
waitAndNotifyPlaceholderChanged(placeholderProvider: PlaceholderProvider) {
|
|
47
|
+
this.corePromise!.then(() => {
|
|
48
|
+
window.__SPFxExtensions.Apps.forEach((app) => {
|
|
49
|
+
app.instances.forEach((instance) => {
|
|
50
|
+
instance.executeListeners("onPlaceholdersChanged", placeholderProvider)
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}).catch(() => {
|
|
54
|
+
//swallow
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
protected onPlaceholdersChanged(placeholderProvider: PlaceholderProvider) {
|
|
59
|
+
// this fires before onInit
|
|
60
|
+
this.waitAndNotifyPlaceholderChanged(placeholderProvider);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
protected onDispose(): void {
|
|
64
|
+
window.__SPFxExtensions?.Apps?.forEach((app) => {
|
|
65
|
+
app.instances.forEach((instance) => {
|
|
66
|
+
instance.executeListeners("onAppCustomizerDisposed", undefined);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
define([], function() {
|
|
2
|
-
return {
|
|
3
|
-
"Title": "SpfxExtensionApplicationCustomizer"
|
|
4
|
-
}
|
|
1
|
+
define([], function() {
|
|
2
|
+
return {
|
|
3
|
+
"Title": "SpfxExtensionApplicationCustomizer"
|
|
4
|
+
}
|
|
5
5
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
declare interface ISpfxExtensionApplicationCustomizerStrings {
|
|
2
|
-
Title: string;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
declare module 'SpfxExtensionApplicationCustomizerStrings' {
|
|
6
|
-
const strings: ISpfxExtensionApplicationCustomizerStrings;
|
|
7
|
-
export = strings;
|
|
8
|
-
}
|
|
1
|
+
declare interface ISpfxExtensionApplicationCustomizerStrings {
|
|
2
|
+
Title: string;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare module 'SpfxExtensionApplicationCustomizerStrings' {
|
|
6
|
+
const strings: ISpfxExtensionApplicationCustomizerStrings;
|
|
7
|
+
export = strings;
|
|
8
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
// A file is required to be in the root of the /src directory by the TypeScript compiler
|
|
1
|
+
// A file is required to be in the root of the /src directory by the TypeScript compiler
|
|
@@ -1,60 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
} from "@
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return Promise.resolve({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
1
|
+
import { CompatibleEnvironmentType } from "@spfx-extensions/core";
|
|
2
|
+
import { PlaceholderProvider } from "@microsoft/sp-application-base";
|
|
3
|
+
import { ISPEventObserver } from "@microsoft/sp-core-library";
|
|
4
|
+
import { SPFXPREFIX } from "../utilities/constants";
|
|
5
|
+
import { loadCoreForSPFxOrClassic } from "@spfx-extensions/core/spfx-extensions-loader";
|
|
6
|
+
import coreUrl from "@spfx-extensions/core/spfx-extensions-core";
|
|
7
|
+
import configuratorUrl from "@spfx-extensions/core/spfx-extensions-coreconfigurator";
|
|
8
|
+
import wrapperUrl from "@spfx-extensions/core/spfx-extensions-classicwrapper";
|
|
9
|
+
import customActionUrl from "@spfx-extensions/core/spfx-extensions-classiccustomaction";
|
|
10
|
+
|
|
11
|
+
let placeHolderResolved = false;
|
|
12
|
+
|
|
13
|
+
async function getSuggestedCoreUrl() {
|
|
14
|
+
// return Promise.resolve({ coreUrl, configuratorUrl, wrapperUrl });
|
|
15
|
+
return Promise.resolve({
|
|
16
|
+
coreUrl: coreUrl as string,
|
|
17
|
+
configuratorUrl: configuratorUrl as unknown as string,
|
|
18
|
+
wrapperUrl: wrapperUrl as unknown as string,
|
|
19
|
+
customActionUrl: customActionUrl as unknown as string,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* WILL FAIL IF CALLED BEFORE `initCore`
|
|
25
|
+
*
|
|
26
|
+
* Registers a placeholder provider to be used by the core library
|
|
27
|
+
* @returns void
|
|
28
|
+
*/
|
|
29
|
+
export function registerPlaceHolderProvider(
|
|
30
|
+
placeHolderProvider: PlaceholderProvider,
|
|
31
|
+
eventObserver: ISPEventObserver,
|
|
32
|
+
) {
|
|
33
|
+
//resolve once, i.e. modern webpart was loaded before app customizer
|
|
34
|
+
if (!placeHolderResolved) {
|
|
35
|
+
placeHolderResolved = true;
|
|
36
|
+
window.__SPFxExtensions.Utils.placeHolderResolver({
|
|
37
|
+
//eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
placeHolderProvider: placeHolderProvider as any,
|
|
39
|
+
//eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
eventObserver: eventObserver as any,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export async function initCore(envType: CompatibleEnvironmentType) {
|
|
46
|
+
if (window.__SPFxExtensions?.__CoreInitializationPromise) {
|
|
47
|
+
//only repopulate if these were not initialized through modern context
|
|
48
|
+
if (
|
|
49
|
+
window.__SPFxExtensions.Utils &&
|
|
50
|
+
!window.__SPFxExtensions.Utils.initializedThroughSPFX
|
|
51
|
+
) {
|
|
52
|
+
window.__SPFxExtensions.Utils.environmentType = envType;
|
|
53
|
+
window.__SPFxExtensions.Utils.initializedThroughSPFX = true;
|
|
54
|
+
}
|
|
55
|
+
return window.__SPFxExtensions.__CoreInitializationPromise;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const { promise, resolve } = Promise.withResolvers<void>();
|
|
59
|
+
//eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
+
(window.__SPFxExtensions as any) = {
|
|
61
|
+
__CoreInitializationPromise: promise,
|
|
62
|
+
__CoreInitializationResolver: resolve,
|
|
63
|
+
};
|
|
64
|
+
const buildDate = BUILD_DATE;
|
|
65
|
+
console.info(SPFXPREFIX, "Initializing Core from SPFx Built:", buildDate);
|
|
66
|
+
await loadCoreForSPFxOrClassic(getSuggestedCoreUrl, envType, true);
|
|
67
|
+
window.__SPFxExtensions.__CoreInitializationResolver();
|
|
68
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const SELECT_WEBPART = "Select one of these web parts for this column.";
|
|
2
|
-
export const EDIT_PAGE_AND_SELECT_WEBPART = "Edit page and select webpart.";
|
|
3
|
-
export const APP_BUTTON_LABEL = "Webpart that loads an app of your choice.";
|
|
1
|
+
export const SELECT_WEBPART = "Select one of these web parts for this column.";
|
|
2
|
+
export const EDIT_PAGE_AND_SELECT_WEBPART = "Edit page and select webpart.";
|
|
3
|
+
export const APP_BUTTON_LABEL = "Webpart that loads an app of your choice.";
|
|
4
4
|
export const SPFXPREFIX = "[SPFxExtensions]";
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json",
|
|
3
|
-
"id": "d6ca1fc2-0591-4c6d-8a25-cae3262c017b",
|
|
4
|
-
"alias": "SpfxExtensionloaderWebPart",
|
|
5
|
-
"componentType": "WebPart",
|
|
6
|
-
"version": "*",
|
|
7
|
-
"manifestVersion": 2,
|
|
8
|
-
"requiresCustomScript": false,
|
|
9
|
-
"supportedHosts": [
|
|
10
|
-
"SharePointWebPart",
|
|
11
|
-
"TeamsPersonalApp",
|
|
12
|
-
"TeamsTab",
|
|
13
|
-
"SharePointFullPage"
|
|
14
|
-
],
|
|
15
|
-
"supportsThemeVariants": true,
|
|
16
|
-
"supportsFullBleed": true,
|
|
17
|
-
"preconfiguredEntries": [
|
|
18
|
-
{
|
|
19
|
-
"groupId": "5c03119e-3074-46fd-976b-c60198311f70",
|
|
20
|
-
"group": {
|
|
21
|
-
"default": "Advanced"
|
|
22
|
-
},
|
|
23
|
-
"title": {
|
|
24
|
-
"default": "SPFx Extension Loader"
|
|
25
|
-
},
|
|
26
|
-
"description": {
|
|
27
|
-
"default": "Allows you to add a custom developed app"
|
|
28
|
-
},
|
|
29
|
-
"officeFabricIconFontName": "Page",
|
|
30
|
-
"properties": {
|
|
31
|
-
"description": "Select an app to load from the dropdown below"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json",
|
|
3
|
+
"id": "d6ca1fc2-0591-4c6d-8a25-cae3262c017b",
|
|
4
|
+
"alias": "SpfxExtensionloaderWebPart",
|
|
5
|
+
"componentType": "WebPart",
|
|
6
|
+
"version": "*",
|
|
7
|
+
"manifestVersion": 2,
|
|
8
|
+
"requiresCustomScript": false,
|
|
9
|
+
"supportedHosts": [
|
|
10
|
+
"SharePointWebPart",
|
|
11
|
+
"TeamsPersonalApp",
|
|
12
|
+
"TeamsTab",
|
|
13
|
+
"SharePointFullPage"
|
|
14
|
+
],
|
|
15
|
+
"supportsThemeVariants": true,
|
|
16
|
+
"supportsFullBleed": true,
|
|
17
|
+
"preconfiguredEntries": [
|
|
18
|
+
{
|
|
19
|
+
"groupId": "5c03119e-3074-46fd-976b-c60198311f70",
|
|
20
|
+
"group": {
|
|
21
|
+
"default": "Advanced"
|
|
22
|
+
},
|
|
23
|
+
"title": {
|
|
24
|
+
"default": "SPFx Extension Loader"
|
|
25
|
+
},
|
|
26
|
+
"description": {
|
|
27
|
+
"default": "Allows you to add a custom developed app"
|
|
28
|
+
},
|
|
29
|
+
"officeFabricIconFontName": "Page",
|
|
30
|
+
"properties": {
|
|
31
|
+
"description": "Select an app to load from the dropdown below"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
35
|
}
|